繁体   English   中英

用Javascript减去两个字符串并键入强制

[英]Subtracting two strings in Javascript and type coercion

为什么Javascript会为-运算符而不是+键入强制类型?

 str = "2" console.log(str+str) console.log(typeof(str+str)) console.log(str-str) console.log(typeof(str-str)) 

因为只有数据类型,这-是有道理的数量。 +运算符对字符串和数字操作数具有含义。

在JavaScript中,通常情况下,像x + y这样的表达式必须推迟到运行时才能弄清楚它的含义。 这就是类型转换规则的来源。对于- ,它知道操作数必须是数字,因此在运行时要做的工作较少。

-运算符仅用于数字减法

如果是字符串+表示串联。 而所有其他数学运算符的工作方式与普通数学运算符相同(因此,这些字符串的类型被强制了)

 let str = '2' console.log( str + str ) console.log( str - str ) // 2 - 2 = 0 console.log( str * str ) // 2 * 2 = 4 console.log( str / str ) // 2 / 2 = 1 

链接以供进一步阅读:

你不懂js

强制解释

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM