Javascript || && 运算符

来源:互联网 发布:技术导航网源码 编辑:程序博客网 时间:2024/05/02 02:33

1.

a = a || "defaultValue";  

2.

if(!a){      a = "defaultValue";  }

3.

if(a == null || a == "" || a == undefined){      a = "defaultValue";  }  
这三种写法是等价的

在javascript中,数据类型可以分为“真值“和”假值“。下表罗列一些常见的数据类型转换为bool时的值

数据类型转换为bool后的值

null
falseundefinedfalse0false""(空字符串)falseObjecttruefunctiontrue1true0、1之外的数字true字符串true由于javascript是弱类型语言,所以在javascript中这两个表达式可能跟其他语言(比如java)中不太一样。

在javascript中

"&&"运算符运算法则如下:

如果&&左侧表达式的值为真值,则返回右侧表达式的值,否则返回左侧表达式的值。

var i = "" && "真值";     //i=""i = "真值" && "其他真值"; //i="其他真值"i = "真值" && "";         //i=""


"||"运算符的运算法则如下:

如果||左侧表达式的值为真值,则返回左侧表达式的值,否则返回右侧表达式的值。

var i = "" || "真值";     //i="真值"i = "真值" || "其他真值"; //i="真值"i = "真值" || "";         //i="真值"


下面运用||、&&来简化程序:

var parameter = "";function test(parameter){//return 真值return true;}//真值操作function operate1(parameter){return "真值操作";}//假值操作function operate2(parameter){return "假值操作";}var result = test(parameter) && operate1(parameter);result = test(parameter) || operate2(parameter);//等价于result = test(parameter) ? operate1(parameter) : operate2(parameter);alert(result);//真值操作//也等价于if(test(parameter)){result = operate1(parameter);}else{result = operate2(parameter);}alert(result);//真值操作
以上主要介绍了javascript的主要逻辑值

1.数字除了1,0外都是true2.字符串除了空字符串外都是true3.function 和 object都是true4.null 和 undefined都是false5.1是true 0是false

原创粉丝点击