一元操作符

一元操作符:就是只能操作一个值的操作符

自增和自减操作符

自增和自减操作符分两种:前置和后置。

前置类型

  • 自增

    var number = 20;
    ++number;
    //等同于
    var number = 20;
    number = number + 1;
  • 自减

    var number = 20;
    --number;
    // 等同于
    var number = 20;
    number = number - 1;

前置类型的自增和自减,变量都是在语句被求值以前发生改变。

var number = 20;
var result = ++age + 2;
console.log(number); // 21
console.log(result); // 23

上述例子中,result的初始值在number前置自增以后加的2,所以++age + 221 + 2,结果是23

var number1 = 10;
var number2 = 20;
console.log(number1-- + number2); // 30 -- 等同于 10 + 20
console.log(number1 + number2); // 29 -- 此时number1变成了 9,9 + 20

位操作符

位操作符可以作为拓展,这里不做详细解释

布尔操作符

逻辑非(!)

逻辑非:在JavaScript中的非用!表示。

规则:

  • 如果值是一个对象,返回false
  • 如果值是一个空字符串,返回true
  • 如果值是一个非空字符串,返回false
  • 如果值是0,返回true
  • 如果值是非0的一个数,返回false
  • 如果值是null,返回true
  • 如果值是NaN,返回true
  • 如果值是undefined,返回true
console.log(!false);// true

console.log(!"string");// false

console.log(!0);// true

console.log(!NaN);// true

console.log(!"");// true

console.log(!1);// false

逻辑与(&&)

逻辑与操符可以总结为一假即假,双真即为真,也就是说要求两个条件都为真,结果才会是真。例如:

var result = a > b && a > c;

&&&不同的是&&判断a > b的结果是false的时候,就不会去判断a > c,直接返回结果为false,但是&会将两个都判断一次。

可以用下面的例子来验证一下:

var flag = true;
var result = flag && undefinedSign;// 发生错误
console.log(result);

上面的例子中,因为flagtrue,所以flag && undefinedSign要判断undefinedSign的值,但是undefinedSign并没有定义,所以会出错。

var flag = false;
var result = flag && undefinedSign;// 不发生错误
console.log(result);

上面的例子中,因为flagfalse,所以flag && undefinedSign不会去判断undefinedSign的值,所以不会发生错误。

逻辑或(||)

逻辑或总结为一句话就是一真即真,双假才会假。

var flag = true;
var result = flag && undefinedSign;// 不发生错误
console.log(result);

DreamFightter
5 声望0 粉丝