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本身。




0 0
原创粉丝点击