搜索
这句Javascript语句如何解释?
怪我咯
怪我咯 2017-04-10 16:24:50
[JavaScript讨论组]

在蝴蝶书中阅读到这样一段代码,通过定义is_array函数来区别数组和对象。

var is_array = function(value){
    return value &&
        typeof value === 'object' &&
        value.constructor === Array;
        };

请问这种件的连等如何解释,新人求教。。。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(4)
伊谢尔伦
return value &&
typeof value === 'object' &&
value.constructor === Array;

value 如果value为空的话&&的结果是false,就是判断是否有值
typeof 函数返回的是参数类型,数组和对象均返回object,
constructor用来返回对象属性创建的函数,数组的话是Array
只并上前两个的话,是无法判断是不是数组,因为还有对象的可能性。
因此需要最后一个。当3个条件都为true的话,那么其结果便是array。

天蓬老师

从前读到后就可以了
&&与表示符,前面表反就直接不会向后判断返回false
||或表示符,前面不表反就直接返回前面的不会向后判断
条件?真:假 ;三元表示符

看不懂这样的就给前面的条件一个个加括号就懂了
(value && typeof value === 'object' )&& value.constructor === Array
一层一层向后执行

伊谢尔伦

==会类型转换,===不会。
比如var a=0;
if(a==false)//成立
if(a===false)//不成立

迷茫

关键字:短路操作符

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号