通用JS十——递增/递减操作符

#操作符

ECMA-262描述了一组可用于操作数据值的操作符,包括数学操作符如加、减、位操作符、关系操作符和相等操作符等。  

在应用给对象时,操作符通常会调用valueOf()和/或toString()方法来取得可以计算的值。

##一元操作符

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

###1、递增/递减操作符

分为前缀版和后缀版,如(++age, age++)

无论使用前缀递增还是前缀递减操作符,变量的值都会在语句被求值之前改变。(在计算机科学中,这通常被称为具有副作用)

 前缀递增和递减在语句中的优先级是相等的,因此会从左到右依次求值。比如:

递增和递减的后缀版本语法一样(分别是++和--)。后缀版和前缀版的主要区别在于,后缀版递增和递减在语句被求值后才发生。

 这四个操作符可以作用于任何值,意思是不限于整数——字符串、布尔值、浮点值、甚至对象都可以。递增和递减遵循如下规则:

1.对于字符串,如果是有效的数值形式,则转换为数值再应用改变。变量类型从字符串变成数值。

2.对于字符串,如果不是有效的数值形式,则将变量的值设置为NaN。变量类型从字符串变成数值。

3.对于布尔值,如果是false,则转换为0再应用改变。(如果是true,则转换为1再应用改变)变量类型从布尔值变成数值。

4.对于浮点值,加1或减1。

5.如果是对象,则调用其valeOf()方法取得可以操作的值。如果是NaN,则调用toString()并再次应用其它规则。变量类型从对象变成数值。

原文地址:https://www.cnblogs.com/huayang1995/p/15353701.html