我在阅读Douglas Crockford的代码(这里)时,看到了这样一行:
var value = +node.getValue();
但是我在http://www.w3schools.com/js/js_operators.asp上没有看到任何与
= +
对应的内容,也没有找到+
作为一元运算符的用法。那么这是什么意思呢?我在阅读Douglas Crockford的代码(这里)时,看到了这样一行:
var value = +node.getValue();
= +
对应的内容,也没有找到+
作为一元运算符的用法。那么这是什么意思呢?-
和+
操作符都是一元的,在强制改变值的符号之前,必须将该值转换为数字。显然,-
会将其转换为数字并翻转符号,但是+
只执行第一步。运行+"100"
将返回数字100
。这种行为在规范的11.4.6节中明确说明了一元+
操作符的定义: "一元+操作符将其操作数转换为数字类型"。点击此处查看
仅仅是为了补充之前所说的,执行以下操作:
var a = +'4';
var b = '4';
console.log(typeof(a));//Number
console.log(typeof(b));//String
这只是一种快速确保变量为INT(而不是STR或BOOL等)的方法。