JavaScript +new Array(017)

問題

某龍的筆試題,問console.log(+new Array(017));輸出什麼

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

其實考察的是+

+運算符作爲二元運算符時,有兩個功能

  • 數字相加
  • 連接字符串

數字相加沒啥好說的,連接字符串時,會先把兩個參數都轉換成字符串再進行連接。

+作爲一元運算符時,會將參數轉換爲數字返回

結果

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

其他

類似的還有-運算符,輸出一個轉換後的負數

附上一些其他的輸出

console.log(+new Array());
//0
console.log(+new Array(0));
//0
console.log(+new Array(1));
//0
console.log(+new Array(2));  //2以上都是NaN
//NaN

console.log(+[]);
//0
console.log(+[1]);
//1
console.log(+[1, 2]);
//NaN
console.log(+[undefined]);
//0
console.log(+[undefined, undefined]);
//NaN

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章