javascript - 关于js的typeof的疑问
学习ing
学习ing 2017-06-15 09:23:38
[JavaScript讨论组]

今天居然看到的typeof的返回结果居然是整数。还有图中results的结果为什么是1.

学习ing
学习ing

全部回复(5)
天蓬老师

1、因为typeof优先级更高
2、还是因为加法运算符优先级更高

大家讲道理
var a=true;
console.log(a);//返回true
console.log(typeof a);//返回boolean
console.log(typeof(typeof a));//返回"string"

实质上typeof a ? 1 : 2可以写成这样:

"boolean" ? 1:2

而这个三元表达式调用Boolean()对字符串进行类型转换,即:
Boolean("boolean") ====>true
所以返回是1。
你可以试下将a赋值为false,返回还是1:

var a=false;
typeof a ? 1 : 2
代言

这段语句是这么编译的
(typeof a)? 1 : 2
编译的时候,换成了这种形式,就是这个结果。三元运算符

学习ing

没毛病

Boolean('string') => true
伊谢尔伦

接你的例子,
三元运算符,当typeof a 为true时,返回的是 1,
typeof a 为false的时候,返回的是2。
前面100 + a;进行了类型转换,所以100 + a = 101,
所以results 也返回1

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

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