22届应届生
面试复习!!! 可能问的问题 ** 方法不熟悉的**
**** 方法不熟悉的***
1.
数学运算符中的类型转换
比如 [] + {} == ?,
因为 JS 并没有类型声明,所以任意两个变量或字面量,都可以做加减乘除
(1) 减、乘、除
我们在对各种非Number类型运用数学运算符(- * /)时,会先将非Number类型转换为Number类型。
加法过程中,遇到字符串,则会被处理为字符串拼接
如下
1 + "1" === "11"
1 + 1 === 2
"1" + 1 === "11"
"1" + "1" === "11"
小细节哦
1 + true === 2
1 + false === 1
1 + null === 1
1 + undefined // NaN
(2)减法操作时,一律需要把类型转换为Number,进行数学运算
3 - 1 === 2
3 - '1' === 2
'3' - 1 === 2
// [ ].toString() => "" => Number(...) => 0 3 - [] === 3
// {}.toString() => "[object Object]" => Number(...) => NaN
3 - {} // NaN
(2)特殊值转换为数字
Number(false) === 0;
Number(true) === 1;
Number(undefined); // NaN
Number("x"); // NaN
原文
mp.weixin.qq.com/s?src=11&ti…
最经典的来了哦
[]+{}=?? object object
{a:3}+[]=?? 0 {}被当作代码片段了 +[] 相当于+0 ===0