今天看到一个判断语句非常奇怪:

1 if(!!selected){} //为什么是双'!'号呢?

自己查了下资料终于明白了这其中的原理:

原来'!!'会将表达式转为Boolean类型的数据。

如果'!undefined' //得到的是true但是为了防止值等于undefined的时候不为true的话我们可以使用'!!'进行判断;

其实'!!'就是为了排除{非null/undefined/0/''} 等值;

var obj = {flag:true};
var demo = !!obj.flag; // demo 等于true

  

转载于:https://www.cnblogs.com/leungUwah/p/5548041.html

js !!条件判断或运算的作用相关推荐

  1. js条件判断时隐式类型转换

    Javascript 中,数字 0 为假,非0 均为真 在条件判断运算 == 中的转换规则是这样的: 如果比较的两者中有布尔值(Boolean),会把 Boolean 先转换为对应的 Number,即 ...

  2. JavaScript条件判断true详解? true VS Truthy(真值)

    背景 写js 条件判断语句的时候,经常会困惑 到底什么情况下if()括号内会返回真,空字符串.空数组.数字会返回什么.这里MDN已经有专门的的解释,区别与布尔值的true,对于表达式返回真值统称为Tr ...

  3. less-用法:简介、变量、混合、嵌套、运算、转义、函数、映射、作用域、注释、导入、继承、条件判断

    简介: 什么是css预处理器? 用某一种语言用来为css增加一些动态语言的特性(变量.函数 .继承等),具有使css更简洁.适应性更强,代码更直观等诸多好处 常见的css预处理器 less.scss. ...

  4. java中数字作为布尔值_day50 java Script 数字和字符串 布尔值和数组 运算符 条件判断和三元运算...

    上节回顾: day501.前情回顾 CSS属性: float浮动的规则1. 浮动规则: 浮动只控制自己 如果前面的标签也是浮动的,就挨着放 如果前面的标签不浮动,则下方摆放 如果把块级标签设置成浮动, ...

  5. js,if语句(条件判断语句)

    代码块 在js中可以使用代码块来进行分组     -代码块只有分组的作用,可以使文档更加简洁     -对代码本身没有任何影响.     -代码块会影响到let赋值的代码 let a; { a=1; ...

  6. 3.Vue.js前端框架:条件判断与列表渲染

    3.1 条件判断 在视图中,经常需要控制某些DOM元素的显示或隐藏.Vue.js提供了多个指令来实现条件的判断,包括 v-if.v-else.v-else-if.v-show指令.下面分别进行介绍. ...

  7. smali to java_Smali —— 数学运算,条件判断,循环

    通过上一篇 Smali 语法解析--Hello World 的学习,了解了 Smali 文件的基本格式.这一篇从最基本的数学运算,条件判断,循环等开始,更加详细的了解 Smali 语法. 数学运算 加 ...

  8. Sass学习笔记 -- 初步了解函数、运算、条件判断及循环

    函数 sass定义了很多函数可供使用,当然你也可以自己定义函数,以@fuction开始.sass的官方函数链接为:sass fuction,实际项目中我们使用最多的应该是颜色函数,而颜色函数中又以li ...

  9. JS基础--条件判断(3)

    1. if(条件){ //条件成立走代码体,不成立跳过: 代码体: } // 当只做一个条件判断,并且只走一个代码体时,使用这种: 2. if(条件){ //条件成立走,代码体1,不成立走else里的 ...

  10. js if判断多个条件_JS条件判断小技巧(一)

    经常code review,我发现JS newbie很容易写出一堆冗长的代码.今天就列几个比较常见的"解决之道",看看如何减少JS里的条件判断. 提前返回,少用if...else ...

最新文章

  1. ecplise SpringCould搭建过程---创建SpringCould父工程
  2. python 天气预报
  3. 你为什么“啃不动”你手中的技术书?
  4. 查询ms sql 2005版本号
  5. HashMap 的设置值,取值,遍历等
  6. net start mysql 发生系统错误2 系统找不到指定的文件
  7. Oracle Vm VirtualBox中安装Ubantu
  8. linux中退格出现乱码,SSH中的SQL命令按退格键出现乱码的问题解决
  9. 遇上放养型导师,论文就业该咋办?
  10. 计算机应用技术专业盲打键盘,一种双手八指轨道定键位盲打器与盲打键盘
  11. 快速学习javascript 整体架构方法
  12. angular发布代码有缓存_如何在Angular应用程序中执行请求?
  13. c++在数组中添加元素_39. 数组中数值和下标相等的元素
  14. MindManager思维导图中文版免费下载使用教程
  15. 自动操作: mac新建文本文档
  16. WordPress收费下载插件Erphpdown 免费下载(更新至v9.6.2)
  17. html的外部调用函数,如何在HTML中调用外部JavaScript函数
  18. git基本命令、提交pr
  19. 我国高等教育财政投入效率分析与对策
  20. steam游戏开发_如何从Steam Cloud下载保存的游戏

热门文章

  1. node.js 处理 http 请求
  2. 在线pdf转word
  3. sql两张表,分组或row_number()取最新的记录SQL
  4. C# List集合排序、去重方法小结
  5. 去除datatable列中重复的值
  6. C# dataGridView选中一行右键出现菜单,对数据进行操作(datatable的操作)
  7. Go Token获取异常:token contains an invalid number of segments
  8. onfigure: error: cannot find install-sh, install.sh, or shtool in
  9. 全网首发:FFMpeg使用NVIDIA DECODER,解码后的数据是NV12,不是YUV420P
  10. 集成电路的技术极限之后,怎么办?