Javascript 下划线.js中的加号运算符是什么意思?
当我看到Underline.js(1.4.3版)代码时,我看到了以下几行(79行)Javascript 下划线.js中的加号运算符是什么意思?,javascript,underscore.js,Javascript,Underscore.js,当我看到Underline.js(1.4.3版)代码时,我看到了以下几行(79行) if(obj.length===+obj.length){ 对于(变量i=0,l=obj.length;i
if(obj.length===+obj.length){
对于(变量i=0,l=obj.length;i
我不明白为什么在if语句中使用+
运算符。(+物体长度)而且,这句话不是总是正确的吗
我不认为这是打字错误。使用它一定有一定的目的。如果有人知道这种用法的好处,我想在将来使用它。
谢谢。加号运算符将值转换为数字
基本上,
a===+a
确保a是数字而不是字符串。加号运算符将值转换为数字
基本上,
a===+a
确保a是数字而不是字符串。obj.length
可以是任何类型-例如未定义的<代码>+obj。长度始终是一个数字
因此,代码基本上检查length
属性是否存在并且是一个数字。进行此检查的原因是。.each()
同时接受数组和非数组对象。对于数组而言,length
属性是迭代其元素所必需的,而对于非数组对象而言,for..In
循环是可行的方法。obj.length
可以是任何类型-例如未定义的
<代码>+obj。长度始终是一个数字
因此,代码基本上检查length
属性是否存在并且是一个数字。进行此检查的原因是。.each()
同时接受数组和非数组对象。对于数组而言,length
属性是迭代其元素所必需的,而对于非数组对象而言,for..In
循环是一种方法。它将值转换为数字。我发现这篇文章很有帮助:
干杯!:) 它将值转换为数字。我发现这篇文章很有帮助:
干杯!:) 一元+
运算符生成其操作数的数值等效值,如果操作数无法转换为数字,则生成NaN
这是Javascript中存在的许多小“技巧”之一:
!!foo
-将foo
转换为布尔值
~~foo
-将foo
转换为32位有符号整数
一元+
运算符生成其操作数的数值等效值,如果操作数无法转换为数字,则生成NaN
这是Javascript中存在的许多小“技巧”之一:
!!foo
-将foo
转换为布尔值
~~foo
-将foo
转换为32位有符号整数
可能的副本
if (obj.length === +obj.length) {
for (var i = 0, l = obj.length; i < l; i++) {
if (iterator.call(context, obj[i], i, obj) === breaker) return;
}
}