javascript 中的 || 和 &&
来源:互联网 发布:mac系统重装 编辑:程序博客网 时间:2024/06/16 06:52
1、在学习写jquery插件的时候,发现了有类似这样的代码 test = test || "",无法理解,查阅资料,看到如下释解。
a = a || "defaultValue";
其实上面的代码与如下的两种方式写法的代码表达的意义是一致的。
第一种:
if(! a){
a="defaultValue";
}
第二种:
if(a == null || a == "" || a == undefined){
a = "defaultValue";
}
以上的三种是等价,为了弄明白这个问题,我们需要了解javascript 中数据类型在转换的过程中bool类型的时候,发生了什么,
在javascript 中,数据类型可以分为“真值”和“假值”,顾名思义,真值转为bool时的值为true;假值转换为bool的时候,会变成false;
下面罗列一些常见的数据类型转换为bool时候的值:
数据类型 转换为bool后的值
null false
undefined false
Object true
function true
0 false
1 true
0、1之外的数字 true
字符串 true
“”(空字符串) false
在if表达式中,首先javascript将条件表达式转换为bool类型,表达式中为真值的时候,执行if中的逻辑,否则跳过;
下面来看看 && 和 || 这两个表达式
如果 && 左侧表达式的值为真值,则返回右侧表达式的值,否则返回左侧表达式的值
如果 || 左侧表达式的值为真值,则返回左侧表达式的值;否则返回右侧表达式的值
如此就可以理解 a=a ||"defaultValue";的逻辑了,如果a为假值,那么就将“defaultValue”赋值给a,否则将a的值赋给a本身。
- Javascript 中的 && 和 ||
- javascript中的()和{}
- Javascript 中的 && 和 ||
- Javascript 中的 && 和 ||
- javascript 中的 || 和 &&
- javascript中的||和&&
- JavaScript中的[]和{}
- javascript中的+和C#中的+
- 【javascript】浅谈javascript中的对象和类型
- JavaScript中的null和undefined
- JavaScript中的null和undefined
- javascript中的location和history
- JavaScript中的call和apply
- JavaScript中的null和undefined
- javascript中的null和undefined
- javascript中的Function和Object
- javascript中的display和visible
- JavaScript中的preventDefault和 stopPropagation
- svn命令
- 搭建nginx+registry的private registry
- input与select相结合使用
- Android Studio 引入ButterKnief
- spring整合ehcache实现缓存
- javascript 中的 || 和 &&
- 按照左右半区的方式重新组合单链表----BAT实习内推笔试卷(第二场)
- 【swing】UIManager样式的处理(参数详解)
- Objective-C加密算法
- Implicit conversion of an Objective-C pointer to '__autoreleasing instancetype *' (aka '__autoreleas
- lsd:optimizationThreadLoop线程
- 高通mipi dsi代码理解
- Java 时间格式化,时间解析和时间计算的记录
- Educational Codeforces Round 16 E. Generate a String (dp)