javascript中 \"||\" 和\"&&\" 的灵活运用

来源:互联网 发布:数据挖掘 十大算法 bp 编辑:程序博客网 时间:2024/05/16 14:00

在js代码中,经常会看见a=a||""这样的语句,下面就介绍几个||和&&的用法

a=a||"defaultValue";

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

if(a==null || a=="" a==undefined){
a = "defaultValue";
}
是等价的,要了解这个问题,就必须弄明白javascript中数据类型转换为布尔类型时的机制。

在javascript中数据类型分为"真值"和"假值",真值转换布尔类型时值为true,假值转换布尔类型时值为false,下面

是一些常见数据类型转换布尔型时的值:

布尔值

nullFALSE
undefinedFALSE
ObjectTRUE
functionTRUE
0FALSE
1TRUE
0、1之外的数字TRUE
字符串TRUE
""(空字符串)FALSE

下面分析下"||" 和 "&&"运算符,在javascript中和java等其他语言中不太一样


在javascript中

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

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

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

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

实例:
var a = "123" || "456"; //a的值为123  
var b = "123" && "456"; //b的值为456
var c = "" || "abc";//c的值为abc
var c = "" && "abc";//c的值为""
var d = null || "abc";//d的值为abc
var d = null && "abc";//d的值为null
var e = 0 || "abc";//e的值为abc
var e = 0 && "abc";//e的值为0

原创粉丝点击