a===+a这种写法是什么意思?

if (length === +length) {
      for (i = 0; i < length; i++) { 
        iteratee(obj[i], i, obj);
      }
阅读 3.6k
3 个回答

判断 length 是不是数值类型

+a 会将 a 强制转换为数值类型
=== 判断值和类型均相等

a === +a 就是判断 a 是不是数值类型

我并不建议这么写,可读性太差了,建议改成如下的样子:

if (typeof length === 'number') {
}

or

if (isNumber(length)) {
}

function isNumber(a) {
  return a === +a;
}
+length

可以吧字符串转变为数字:例如 :a='1';a是字符串;a=+'1';a是数字类型;
a===+a 这个写法是确保这个a是数字类型;而不是字符串类型;

换个写法你就明白了
if (typeof length === “number” && !isNaN(length))
=== 全等:就是也要比较他的数据类型

  • 加号:他是把他后面的数据类型转化成 数字类型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题