var a = [] 和 var a = +[] 和 var a = 0

  1. 首先,根据Javascript的类型转换规则,数组前有加减号(正负号),则该数组将先被转换为“数值类型”后才参与运算

  2. 然后,参照Javascript的类型转换表,空数组向“数值类型”转换时将会转换成数字0。如图


var a = [] 和 var a = +[] 和 var a = 0_第1张图片

  • 上图是《Javascript权威指南 第6版》P49页 Javascript类型转换表的一部分


所以,

1
2
3
4
5
var  a = +[];
//相当于先把空数组 [] 转换为数字 0 后,再运算。结果就是
var  a = +0;
//即
var  a = 0;

你可能感兴趣的:(JavaScript)