美文网首页
=== 和 +的意思

=== 和 +的意思

作者: thekings | 来源:发表于2017-12-25 10:21 被阅读0次

if(obj.length===+obj.length){

for(vari=0,length=obj.length;i

if(iterator.call(context,obj[i],i,obj)===breaker)

return;

}

}

源码如上,请注意if判断,看上去很奇怪很难懂,先把这句话的意思表达一起,如果换一种写法你肯定就会明白了,其实这句话等价于另外一种写法 :

if(typeofobj.length===“number”&&!isNaN(obj.length))

看上去这样写似乎更能够让人看懂,而且也能达到效果,但为什么作者要这样写呢,接下来我们需要关注两个地方:

第一个就是‘===’,全等符号

第二个就是‘+’ 加号

先说一下全等号的作用,在一般的if判断中,我们更多的是使用‘==’,这种模式比如if(2 == ‘2’),这时候我们得到的返回结果为true,但在‘===’,这种模式下,我们得到的结果是false。这是因为全等符号是不会将比较的对象进行类型转换的。

再说一下‘+’,在此处说所起到的作用,你可以动手做一个实验,在控制台中执行下面这句话+’2’,你可以看到返回值为数字类型的2,其实不难理解,’+’号其实是将后面跟的操作数转型成了数字类型。

我们在是想一下作者这样写的目的,如果obj是一个string类型,如”abc”,我们可以拿到length属性,如果是一个function,或者一个数组,我们都可以拿到他们的length属性,但如果是一个object类型的数据,它可能是不包含length属性的。对于非数组、非字符串、非函数类型的数据,我们可以尝试使用for

in循环来遍历数据。这样看来其实作者这样的写法,更是想能区分数组类型的数据或者类数组数据如字符串等。

相关文章

  • === 和 +的意思

    if(obj.length===+obj.length){ for(vari=0,length=obj.lengt...

  • 有意思和没意思

    我一直想做一个有意思的人,没有太多的想法,很简单的过着自己喜欢的生活,很安静的过活。我喜欢漳州的夜晚,把自己包裹在...

  • 意思和意义

    意义——宏大而沉重 意思——具体而轻松

  • RTFM和STFW的意思。

    RTFM是Read The Fucking Manual的意思,STFW是Search The Fucking W...

  • JavaScript中??和?.的意思

    空值合并操作符(??) 只有当左侧为null和undefined时,才会返回右侧的数 空值合并操作符(??)是一个...

  • 《人物》-有意思和没意思

    图画作者—Siran Liu 每次社会的进步与科技的变革都是对艺术家的一次考验。到底要把这些变更怎样呈现在大众面前...

  • 如何理解文章的表面意思和隐含的意思

    一篇好的文章和我们平日里说话是一样的,越是那些值得反复咀嚼的文章,越是除表面意思之外,有更深层次的含义。 作为一个...

  • “和平”的“和”到底啥意思?

    对我稍微了解的人都知道我是一个比较理智的人,或者换种说法就是跟人比较有距离感比较冷漠。我一直不太喜欢读小说,这总是...

  • 意思意思?

    亲戚家的孩子九月份要入读小学一年级了,可今年不比往年容易报读,为啥呢?原来是这里九月份开始实行小班制,派学位得有城...

  • 意思意思

    虽然喜欢去远方看看,但终究要稳定下来,也许现在是对的;每一天过的都很实在,哪怕每一天只有一丝丝的进步吧。 ...

网友评论

      本文标题:=== 和 +的意思

      本文链接:https://www.haomeiwen.com/subject/isakgxtx.html