2011-08-23 358 views
3

我遇到了一个JavaScript语法的引用,我不明白,也找不到任何在线引用。JavaScript [+ num]语法的作用是什么?

[+num] 

这个语法做什么,它在什么时候使用?

+0

我的回答回答了您的问题吗?如果是这样,请标记为这样。 http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work – Joe

回答

4

它强制转换为数字。

+'0'; // 0 
    +[]; // 0 
    +true; // 1 
    +false; // 0 
    +"I'm Not A Number"; // NaN 

从运营商:https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators#.2b_(Unary_Plus

+(一元加号)

的一元加运算先于其操作数,并评估其 操作数,而是试图将其转换成数,如果它不是 已经。例如,y = + x取x的值,并将其赋值给 y;也就是说,如果x是3,y会得到值3,x会保留 的值3;但如果x是字符串“3”,y也会得到值 3.尽管一元否定( - )也可以转换非数字,但一元 plus是将某物转换为 数字的最快和首选方式,因为它不会对 号码执行任何其他操作。它可以转换整数和浮点数的字符串表示形式, 以及非字符串值true,false和null。 中的整数支持十进制和十六进制(“0x” - 前缀)格式。 支持负数(尽管不适用于十六进制)。如果 解析不了某个值,则它将评估为NaN。

+2

这里是它的参考:https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators #.2b_(Unary_Plus) –

+0

不要忘记,“非显而易见的”变成了“NaN”,例如'+'abc'','+({})','+(function(){})'等等。 – maerics

+1

@maerics NaN具有讽刺意味的'number'类型,所以它仍然是一个转换为数字:)但是,是的,这是一个重要的观察要注意的:)我认为OP也在问方括号,在这种情况下,它会创建一个包含数字的元素的数组。 – Paulpro