javascript - js中"!!"这个是什么意思呢?
PHP中文网
PHP中文网 2017-04-11 13:10:59
[JavaScript讨论组]

看到这段代码, 没明白是什么意思, 这里面的!!是什么语法呢?

export function isLogin() {
  return !!cookie.load('token')
}

是两次做非运算吗? 负负得正, 为什么要写两个!号呢?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(7)
巴扎黑

这是套路 , 如何把一个任意类型的值转换为布尔类型?
用!! 一个!是取非 再一个!又取非 相当于把这个数据转换为boolen类型了

怪我咯

第一个"!"是转为布尔数据类型,第二个自己猜猜就知道是什么意思了

大家讲道理

都是套路,转换为布尔值

PHP中文网

同上都是套路。
下面我列举一下相关常用套路:

// 强制转换为Boolean 用 !!
var bool = !!"c";
console.log(typeof bool); // boolean

// 强制转换为Number 用 +
var num = +"1234";
console.log(typeof num); // number

// 强制转换为String 用 ""+
var str = ""+ 1234;
console.log(typeof str); // string


这只是部分也是比较取巧的方法,为了可读性建议还是按照官方语法写。我刚接触前端,回答得不对的请大家及时指正。刚到Segmentfault,还求个赞,谢谢

高洛峰

转化为boolean类型,另外你看这句代码不是更有趣

(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]
大家讲道理

!!相当于Boolean()
var a = 1;
!!a ==Boolean(a)

阿神

js 套路太深了

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

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