JavaScript学习之路(1)-操作符规则

来源:互联网 发布:access数据库就业前景 编辑:程序博客网 时间:2024/05/22 06:37

在工作中很多地方都会用到操作符,但是因为JavaScript是弱类型语言,所以在使用操作符对各种类型的变量进行操作时会有很多规则,下面列出书中给出的规则,请依照规则使用。

逻辑非(!)

逻辑非可以应用于所有JavaScript数据类型的变量,它首先会将变量转化为对应的布尔型变量,再取反,规则如下:

  • 如果操作数是一个对象,返回 false;
  • 如果操作数是一个空字符串,返回 true;
  • 如果操作数是一个非空字符串,返回 false;
  • 如果操作数是数值 0,返回 true;
  • 如果操作数是任意非 0 数值(包括 Infinity),返回 false;
  • 如果操作数是 null,返回 true;
  • 如果操作数是 NaN,返回 true;
  • 如果操作数是 undefined,返回 true。

可以使用两次逻辑非来求一个变量的布尔值

逻辑与(&&)

在有一个操作数不为布尔值时,不一定返回布尔值,规则如下:

  • 如果第一个操作数是对象,则返回第二个操作数;
  • 如果第二个操作数是对象,则只有在第一个操作数的求值结果为 true 的情况下才会返回该
    对象;
  • 如果两个操作数都是对象,则返回第二个操作数;
  • 如果有一个操作数是 null,则返回 null;
  • 如果有一个操作数是 NaN,则返回 NaN;
  • 如果有一个操作数是 undefined,则返回 undefined。

这是一个短路操作符,当第一操作数为false后面的就不会执行。

逻辑或(||)

与逻辑与(&&)一个道理,在有一个操作数不为布尔值时,不一定返回布尔值,规则如下:

  • 如果第一个操作数是对象,则返回第一个操作数;
  • 如果第一个操作数的求值结果为 false,则返回第二个操作数;
  • 如果两个操作数都是对象,则返回第一个操作数;
  • 如果两个操作数都是 null,则返回 null;
  • 如果两个操作数都是 NaN,则返回 NaN;
  • 如果两个操作数都是 undefined,则返回 undefined。

也是短路操作符,有时候会使用逻辑或(||)为变量赋值时添加一个备选值,避免变量为null或undefined。

原创粉丝点击