一元操作符
只能操作一个值的操作符叫一元操作符。
一元操作符是ECMAScript中最简单的操作符。
1.递增和递减操作符
递增递减操作符直接借鉴C,而且各有两个版本:前置型和后置型。顾明思义,前置型应该让位于要操作的变量之前,而后置型应该位于要操作的变量之后。
前置型:
var num1 = 1;var num2 = 2;var num3 = ++num1 + num2;//4
后置型:
var num1 = 1;var num2 = 2;var num3 = num1++ + num2;//3
上述两段代码得出了不同的结果,原因就在与,后置递增递减与前置递增递减有一个非常重要的区别,即后置递增递减操作是在包含它们的语句被求值之后才执行的。
适用范围:
前置递增递减与后置递增递减所有这四个操作符对任何值都适用。应用于不同值时,该操作符会像Number()转型函数一样对值进行转换,转化后进行加减1的操作。
2.一元加和减操作符
一元加和减操作符主要用于基本的算术运算,也可以用于转换数据类型(该操作符会像Number()转型函数一样对这个值进行转换)。
布尔操作符
布尔操作符一共有三个:非(NOT)、与(AND)、或(OR)。
1.逻辑非
逻辑非操作符由一个叹号表示(!),可以应用于ECMAScript中的任何值。无论这个值是什么数据类型,这个操作符都会返回一个布尔值。
同时使用两个逻辑非操作符,实际上就会模拟Boolean()转型函数的行为
2.逻辑与
逻辑与操作符由两个和号(&&)表示,有两个操作数且可运用于任何类型的操作数。逻辑与属于短路操作,即如果第一个操作数求值结果是false,那么就不会对第二个操作数求值。
当两个值都为真值时,结果为true。当两个值为一真一假时,结果为false。当两个值都为假值时,返回false。
其中一个值不是布尔值时:遵循下列规则
第一个操作数为假,返回第一个;
第一个操作数为真的时候,返回第二个。
如果第一个操作数是对象,则返回第二个操作数
var a = {b:1};a && 'ss'//"ss"
如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象
'ss' && a//Object {b: 1}
如果两个操作数都是对象,则返回第二操作数
var c = {d:2};c && a//Object {b: 1}
(1)如果有一个操作数是null,则返回null
(2)如果有一个操作数是NaN,则返回NaN
(3)如果有一个操作数是undefined,则返回undefinded
3.逻辑或
与逻辑与操作符相似,逻辑或操作符也是短路操作符。也就是说,如果第一个操作数的求值结果为true,就不会对第二个操作数求值了。
新闻热点
疑难解答
图片精选