标签:结果 一个 define margin 字符串 代码 eof 输出 换问题
1 console.log(1 + "2" + "2");
很明显输出的是122,并且:
console.log(typeof (1 + "2" + "2"));
输出的是string类型.上面的结果是毫无疑问的.
console.log(1 + +"2" + "2"); console.log(typeof (1 + +"2" + "2"));//string
代码2中的第一个输出的是32, 因为+"2"会默认把字符串2转成number类型的2,所以再跟后面的字符串相加等到最终的32,并且,输出的仍然是字符串类型.
1 console.log( "A" - "B" + "2");//NaN2 2 console.log( "A" - "B" + 2);//NaN
第一行输出的是NaN2,是因为 "A" - "B"输出的是NaN, 当NaN与字符相加的是,NaN会默认转成字符串类型,即"NaN",所以最终结果是NaN2
第二行输出的是NaN,毫无疑问,只是为了跟第一行做对比.
1 console.log(undefined + 2); 2 console.log(null + 2);
这里也涉及到了默认转换问题, undefined和null与数字相加会先默认转成数字类型,然后再进行相加.此时,我们需要看一个代码:
1 console.log(Number(undefined));//NaN 2 console.log(Number(null));//0
结果就出来了,要记住,undefined默认转成数字类型是NaN,而null默认转成数字类型是0,这也是undefined和null的其中一个区别.
所以,综上所述,代码4分别输出的是NaN 和 2.
标签:结果 一个 define margin 字符串 代码 eof 输出 换问题
原文地址:http://www.cnblogs.com/hollyZ/p/7582415.html