当我想要做的时候
console.log("100" * null) // (1)
console.log("100" + null) // (2)
它给我的结果" 0"和" 100null"我只是想知道在这种情况下如何运行javascript类型转换。
答案 0 :(得分:1)
在第一种情况下"100"
转换为100
,因为*
是一个作用于Numbers的数学运算符。
所有操作数都转换为数字
(+"100") * (+null) // +null = 0; 100 * 0 = 0
并且在第二种情况下,+
不被视为数学运算符,而是作为连接运算符(由于第一个操作数是String)
因为调用它的内部null
方法,所以ToString
会转换为它的字符串表示形式,所以它只是连接("100" + "null"
})