为什么JavaScript中执行console.log(typeof 4+5)会返回number5?
为什么执行
console.log(typeof 4+5)会返回number5 - 首先由JavaScript运算符优先级规则决定执行顺序:
typeof是一元运算符,优先级高于作为二元算术运算符的+,代码不会先计算4+5的算术结果,而是优先执行typeof 4的计算。 typeof 4的返回值是字符串类型的"number",此时原代码的实际计算逻辑已等价于"number" + 5。- 触发
+运算符的字符串拼接规则:JavaScript中如果+的任意一侧操作数是字符串,会自动将另一侧的操作数隐式转换为字符串,执行字符串拼接而非算术加法。这里数字5会被隐式转为字符串"5",和前面的"number"拼接,最终得到字符串"number5"。
如果想要获取
4+5计算结果的数据类型,需要给加法逻辑加上括号调整优先级,对应代码为console.log(typeof (4 + 5)),此时会先计算得到数字9,再判断类型,最终返回字符串"number"。
内容的提问来源于stack exchange,提问作者Stephen
相关产品推荐
相关产品推荐

