位置:首页 > 软件操作教程 > 编程开发 > JavaScript > 问题详情

JavaScript 逻辑与运算

提问人:刘团圆发布时间:2020-11-23

■知识点

    逻辑与运算(&&),只有两个操作数都为true时,才返回true,否则返回false。逻辑与是一种短路逻辑:如果左侧表达式为false,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下。

    第1步,计算第1个操作数(左侧表达式)的值。

    第2步,检测第1个操作数的值。如果左侧表达式的值可以转换为false (null、underfilled、NaN、 0、""、false),那么就会结束运算,直接返回第1个操作数的值。停止后面的操作步骤。

    第3步,如果第1个操作数可以转换为tme,则计算第2个操作数(右侧表达式)的值。

    第4步,返回第2个操作数的值。

■实例设计

下面的代码利用逻辑与运算检测变量并进行初始化。

var user;                                                 //定义变量

( ! user &&console.log("没有赋值"));     //返回提示信息“没有赋值”

等效于:

var user;                   //定义变量

if( ! user){                 //条件判断

    console.log("变量没有赋值");

}

注意:

    如果变量usei•值为0或空字符串等假值,转换为布尔值时,则为false,那么当变量赋值之后,依然提示变量没有赋值。因此,在设计时必须确保逻辑与左侧的表达式返回值是一个可以预测的值。

    var user = 0;                                                 //定义并初始化变蛩

    ( ! user &&console. log ("变量没有赋值")); //返回提示信息••变M没有赋值"

    同时,注意右侧表达式不应该包含赋值、递增、递减和函数调用等有效运算,因为当左侧表达式为false时,则直接跳过右侧表达式,会给后面的运算带来潜在影响。

    使用逻辑与运算符可以代替设计多重分支结构。

var n = 3;

(n == 1) &&console.log(1);

(n == 2) &&console.log(2);

(n == 3) &&console.log(3);

(! n) &&console.log("null");

上面的代码等效于下面多重分支结构:

var n = 3;                     //定义变量

switch (n){                   //指定判断的变量

    case 1 :                    //条件1

    console.log(1);

    break;                      //结束结构

case 2 :                        //条件2

    console.log (2);

    break;                      //结束结构

case 3 :                        //条件3

    console.log(3);

    break;                      //结束结构

default :                       //默认条件

    console.log ("null");

}

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部