JavaScript +new Array(017)

来源:互联网 发布:九九乘法表算法流程图 编辑:程序博客网 时间:2024/06/05 20:59

问题

某龙的笔试题,问console.log(+new Array(017));输出什么

第一反应是考察new Array()跟017

其实考察的是+

+运算符作为二元运算符时,有两个功能

  • 数字相加
  • 连接字符串

数字相加没啥好说的,连接字符串时,会先把两个参数都转换成字符串再进行连接。

+作为一元运算符时,会将参数转换为数字返回

结果

所以console.log(+new Array(017));输出的是NaN

其他

类似的还有-运算符,输出一个转换后的负数

附上一些其他的输出

console.log(+new Array());//0console.log(+new Array(0));//0console.log(+new Array(1));//0console.log(+new Array(2));  //2以上都是NaN//NaNconsole.log(+[]);//0console.log(+[1]);//1console.log(+[1, 2]);//NaNconsole.log(+[undefined]);//0console.log(+[undefined, undefined]);//NaN

参考

  • ECMAScript® 2016 Language Specification
0 0
原创粉丝点击