大家都知道,不论是.NET还是java或是其他语言都会有 或 与 非的操作,这里我要讨论的是 JS里面的 || 和 && 操作。因为项目里面用到了 || 的操作,本来也不是用不到,只是突然想用一下,然后看了看其他的博客,发现原来这个东西没那么简单,JS真是高深,还是好好研究的好。书归正传:
文章参考:http://www.jb51.net/article/21339.htm
||操作 :首先声明:在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false。||操作就是如果前边的表达式为false那么就取后边的值。比如 <a>||<b> 如果<a>是false,那么取<b>的值,同理:<a>||<b>||<c>只要<a><b>都为false 那么取<c>。所以我们看比较高级的js代码里经常会有这种代码: var obj=obj||{};(如果obj为undefined或者空,那么重新定义为{})
&&操作:如果前边的表达式为true,那么取后边的值,如果前边任意一个表达式为false,那么取false这个值。这句话用代码表示吧:
alert(typeof ("11" && undefined && "test" && {})); //结果 undefined alert(typeof([] && "test" && 5)); //结果 number 取值 5
那么 ||操作和 &&操作有什么用呢。它可以精简代码。例如:
function test() { var a = 4; //if (a > 5) { alert("a是大于5的"); } else { alert("a是小于5的"); } var result = a > 5 && "a是大于5的" || "a是小于5的"; alert(result);//结果 a是小于5的,如果看不懂,在仔细看一下他们(|| &&)的定义 }
结尾:你知道这些值是什么吗?
alert(undefined); //undefined alert(typeof (null)); //object alert(typeof (undefined));//undefined alert(typeof (NaN)); //number alert(typeof (5)); //number alert(typeof (!!5)); //boolean alert(parseInt("aa123")); //NaN alert(parseInt("123aa")); //123
以上代码验证地址http://imfyp.com/jsdemo/jstest.html
【JS】 || 和 &&和 ! 操作的那些事
时间: 2024-10-11 00:22:10