javascript - 一个简单问题
PHP中文网
PHP中文网 2017-04-11 11:23:23
[JavaScript讨论组]

群里一位管理员提出了一个入群提问:
var a = [] == [] === !!('i love javascript');
问a的值?
我用控制台输出得到结果为false,却没有理解。请问怎么理解这个题目?

PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
大家讲道理

根据运算符优先级 ==》===》=
那么先比[ ]==[ ] ,数组是引用类型变量,双等号会隐式转换为比较地址值,两个字面量相等的引用类型变量也是不等的。返回false
第二步 先计算!!("I love js") 这是进行布尔运算,bool 运算中返回false的只有 0 undefined,null,NaN和空字符串,所以这里bool两次返回true
第三步 false===true吗?返回false
所以a是false

PHP中文网
[] == [] //false;
!!('i love javascript') // true

false === true
PHP中文网
var a = (([] == []) === (!!'I love JavaScript'));
PHPz
  1. 运算符优先级 == > === > =

  2. 对象的比较(复杂类型无法直接用==比较,因为没有重载==运算符)
    因此翻译如下

var a= (obj1==obj2);//false
var b= !true;//false
b=!b;//true
a= a===b;//false===true?false!
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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