JS中“!!”的用法

var o={flag:true};  
var m=!!o.flag;//等效于var test=o.flag||false;
var n=!!o.test;

console.log(m);//true
console.log(o.flag);//true

console.log(n);//false
console.log(o.test);//undefined

由于对null与undefined用!操作符时都会产生true的结果,
两个感叹号的作用:
如果明确设置了o中flag的值(非 null/undefined/0""/等值);自然m就会取跟o.flag一样的值;
如果o中没有test值;o.test的值是undefined;自然n会取false;而不是 null或undefined。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • //一个非常有意思的语法 var a = 1 && 2; alert(a); //2 var a = nu...
    靳刘杰阅读 339评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,789评论 0 33
  • 他们说爱情就是烛火 很危险,会灼伤 可我还是义无反顾地扑了上去
    慕星读者OR独者阅读 155评论 0 0
  • 原来,爱情是需要两个人一起经营的。一个人付出的多了,难免会感觉到倦了,累了。我不知道,我和她之间到底是不是爱情。两...
    黑泽进阅读 353评论 5 5