前端基础之 js 加法隐式转换
先做个小测试,不要百度和写代码测试
下面的输出都是什么
1 + 1
'1' + 1
1 + true
NaN + 1
NaN + '1'
null + 1
null + '1'
[1] + 1
[1,2] + [1]
[1] + {n : 1}
如果说你对上面这些运算有一些模糊不清的地方,那么估计你加法隐式转换没有搞清楚
加法运算的规则到底是什么呢
一张图让你明明白白
ok,我们来看个例子
看着上面的图来捋一捋
两边都是原始类型,都不是字符串,所以都要转为数字类型
相当于 0 + NaN,所以最后结果是NaN
再比如上面里的 [1] + 1
是含有对象类型的,要调用valueOf
调用之后不是原始类型,那就要调用toString
转成原始类型了,走上面的步骤,含有字符串,全部转为字符串相加,所以结果是'11'
再看一个例子
它这里报错了,提示无法把这个对象转换为原始类型,这是因为valueOf和toString无法把obj转换为原始类型
这些东西,往往会出现在面试题里面,考察你对知识点有没有理解到位,大家努力吧
-
JavaScript
-
面试
-
前端
-
web
好!好活当赏!