在编程世界中,一个非常基础和重要的运算是逻辑运算,也就是通过判断条件来进行的运算。 在很多代码中,奇怪的赋值方法很常见:
var a=a || {};
这是什么意思? 其实很简单。 那个和下面的一样。
var a=a? a : {};
但是,为了深入挖掘,为了在今后的编程中更好地使用这个方法,我们将详细说明这个方法。
或运算的解释
或者运算有几种理解方法。 其中一个||如果左侧表达式的值为真,则返回左侧表达式的值;否则,返回右侧表达式的值。 简单来说,程序从左向右运行,如果左为真,则不向右运行。 如果左侧为假,则右侧执行。 但是,执行的目的是得到布尔值,如果左边是式,则执行的结果只能是null、undefined、Object、function、0、0以外的其他数、字符串、''空字符串。 除非是函数或逻辑运算,否则很少直接得到true/false。 上面的值在进行逻辑运算之前,会转换为true/false进行判断。 简单的||运算可以重写为if.else .的形式。
总之,||是通过运算左边为假来执行右边,||的返回结果是最后执行公式的返回值。
或运算的运用
因为上述表达方式涉及表达式,所以不仅仅是赋值的形式,还会使用很多形式。
1 .逻辑判断
if(a===0||a===' ) {}
2 .相当于第三轮运算的赋值用法
var a=a || b; //var a=a? a : b;
3 .相当于第三轮运算
var a=10; wile(1) {
a -- || break; }
4 .运算整合
udate(key )、value|add、value; //更新,如果不存在则添加
同样,可以进行同样的操作
add(key )、val1(add )、val2(add )、val3); //前一个添加成功后才添加后一个,否则不添加后一个
总结
我们之所以能这样改变||运算的用法,最重要的原因是JavaScript在运算中处理起来和其他语言不同。 例如,在PHP中$a=$a || 'value '; 此格式$a得到布尔值。 PHP在运算表达式后再次执行逻辑运算并返回逻辑运算的结果,而JavaScript在运算表达式后确定表达式的结果,并根据逻辑运算符返回参与逻辑运算的表达式的结果。
2016-08-16
2517