死亡是一座永恒的灯塔

0%

js操作符

ECMA-262描述了一组用于操作数据值的操作符,包括算数操作符、位操作符、关系操作符和相等操作符。
ECMAScript操作符的与众不同之处在于,它们能够使用于很多值,例如字符串、数字值、布尔值,甚至对象。不过,在应用于对象时,相应的操作符通常都会调用对象的valueof()和tostring()方法,以便取得可以操作的值。

一.一元操作符

只能操作一个值的操作符叫做一元操作符。

1.递增和递减操作符 ++ –

递增和递减操作符各有两个版本:前置型和后置型
前置型:变量的值在语句被求值以前改变。
后置型:变量的值在语句被求值之后改变。

2.一元加和一元减操作符

一元加和一元减操作符主要用于基本的的算术运算,也可以用于转换数据类型。

二.位操作符

感觉没用到,跳过阅读。

三.布尔操作符

布尔操作符一共有三个:非、与、或

1.逻辑非 !

逻辑非操作符(!)可以应用于ECMAScript中的任何值,无论这个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非操作符首先会将它的操作数转换为一个布尔值,然后在对其求反。

1
alert(!"blue")  //false

逻辑非操作符(!)也可以用于将一个值转换为与其对应的布尔值。

1
alert(!!"blue")  //true 模拟Boolean()转型函数的行为

2.逻辑与 &&

逻辑与操作符由两个和号表示(&&),有两个操作数。
逻辑与操作符可以应用与任何类型的操作数。在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值。
逻辑与操作属于短路操作,即如果第一个操作数能够决定结果,那么就不会对第二个操作数求值。

3.逻辑或 ||

逻辑或操作符由两个竖线符号表示(||),有两个操作数。
逻辑或操作符可以应用与任何类型的操作数。在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值。
逻辑或操作属于短路操作,即如果第一个操作数能够决定结果,那么就不会对第二个操作数求值。

可以利用逻辑或的行为来避免为变量赋null或undefined值。

1
var myobject=preferredobject || backupobject

四、乘性操作符

ECMAScript定义了3个乘性操作符:乘法、除法和求模。
这些操作符与java、C中的相应操作符用途类似,只不过在操作数为非数值的情况下会执行自动的类型转化。如果参与乘性计算的某个操作数不是数值,后台会先使用Number()转型函数将其转换为数值。

1.乘法(*)

乘法操作符由一个星号(*)表示,用于计算两个数的乘积。
在处理特殊值的的情况下,乘法操作符遵循一些特殊的规则。

2.除法(/)

除法操作符由一个斜线符号(*)表示,用于计算两个数的商。
在处理特殊值的的情况下,除法操作符遵循一些特殊的规则。

3.求模(%)

求模操作符由一个百分号(*)表示

1
var result=26%5     //等于1

在处理特殊值的的情况下,除法操作符遵循一些特殊的规则。

#五、加性操作符
与乘性操作符类似,加性操作符也会在后台转换不同的数据类型,然而对于加性操作符,相应的转换规则稍微有些复杂。

1.加法(+)

如果两个操作数都是数值,执行常规的算数加法操作并返回结果。
在处理特殊值的的情况下,加性操作符遵循一些特殊的规则。

1
var result=5+"5"    //等于"55"

2.减法(-)

如果两个操作数都是数值,执行常规的算数减法操作并返回结果。
在处理特殊值的的情况下,加性操作符遵循一些特殊的规则。

1
2
3
4
var result1=5-true    //等于4,因为true被转换为1
var result2=5-"" //等于5,因为""被转换为0
var result3=5-"2" //等于3,因为"2"被转换为2
var result4=5-NaN //等于NaN

六、关系操作符

ECMAScript定义了4个关系操作符:小于(<)、大于(>)、小于等于(<=)、大于等于(>=)
关系操作符用于对两个值进行比较,这几个操作符都返回一个布尔值。

当关系操作符的操作数使用了非数值时,要进行数据转换或者完成某些奇怪的操作。

1
2
3
var result1="a"< 3    //false,因为"a"被转换为了NaN
var result2=NaN < 3 //false,任何数与NaN进行比较,结果都是false
var result3=NaN> = 3 //false,任何数与NaN进行比较,结果都是false

七、相等操作符

ECMAScript提供两组操作符:相等和不相等—先转换再比较、全等和不全等—仅比较而不转换

1.相等和不相等(==)、(!=)

这两个操作符都会先转换操作数,然后再比较它们的相等性。

2.全等和不全等(===)、(!==)

这两个操作符不会转换操作数,直接比较它们的相等性。

八、条件操作符

条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。本运算符经常作为if语句的简短形式来使用。

1
var iMax = (iNum1 > iNum2) ? iNum1 : iNum2;

在这里例子中,iMax 将被赋予数字中的最大值。表达式声明如果 iNum1 大于 iNum2,则把 iNum1 赋予 iMax。但如果表达式为 false(即 iNum2 大于或等于 iNum1),则把 iNum2 赋予 iMax。

九、赋值操作符 (=)

赋值操作符由等于号(=)表示,其作用就是把右侧的值赋给左侧的变量。

十、逗号操作符

使用逗号操作符可以在一条语句中执行多个操作。
逗号操作符多用于声明多个变量;但除此之外,逗号操作符还可以用于赋值

坚持技术分享,您的支持将鼓励我继续创作!