JavaScript学习:一元操作符

王叨叨 | 2014-07-02 | 分类 笔记  | 标签 js  reading_notes 

只能操作一个值的操作符叫做一元操作符。一元操作符包括递增递减操作符一元加减操作符

递增递减操作符

递增和递减操作符有两个版本:前置型和后置型。顾名思义,前置型应该位于要操作的变量之前,而后置型则应该位于要操作的变量之后。

执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的

后置型递增和递减操作符的语法不变(仍然分别是++和–),只不过要放在变量的后面而不是前面。后置递增和递减与前置递增和递减有一个非常重要的区别,即递增和递减操作是在包含它们的语句被求值之后才执行的

所有这4个操作符对任何值都适用,也就是它们不仅适用于整数,还可以用于字符串、布尔值、浮点数值和对象。在应用于不同的值时,递减和递增操作符遵循下列规则:

1.在应用于一个包含有效数字字符的字符串时。先将其转换为数字值,在执行加减1的操作。字符串变量变成数值变量。
2.在应用于一个不包含有效数字字符串时,将变量的值设置为NaN。字符串变量变成数值变量。
3.在应用于布尔值false时,先将其转换为0再执行加减1的操作。布尔值变量变成数值变量。
4.在应用与布尔值ture时,先将其转换为1再执行加减1的操作。布尔值变量变成数值变量。
5.在应用于浮点数值时,执行加减1的操作。
6.在应用对象时,先调用对象的valueOf()方法以取得一个可供操作的值。然后对该值应用前述规则。如果结果是NaN,则在调用toString()方法后在应用前述规则。对象变量变成数值变量。

代码示例:

var s1 = "2";
var s2 = "z";
var b = fasle;
var f = 1.1;
var o = {
    valueOf: function() {
        return -1;
    }
};
s1++;  //3
s2++;  //NaN
b++;   //1
f--;   //0.10000000000000009 (由于浮点舍入错误所致)
o--;   //值变成数值-2

一元加减操作符

一元操作符以一个加号(+)表示,放在数值前面,对数值不会产生任何影响,不过,在对非数值应用一元加操作符时,该操作符会像Number转型函数一样对这个值执行转换。换句话说,布尔值false和true将被转换为0和1,字符串值会被按照一组特殊的规则进行解析,而对象是先调用它们的valueOf()和toString()方法,再转换得到值。

代码示例:

var s1 = "01";
var s2 = "1.1";
var s3 = "z";
var b = false;
var f = 1.1;
var o = function() {
    valueOf: function() {
        return -1;
    }
};
s1 = +s1;  //1
s2 = +s2;  //1.1
s3 = +s3;  //NaN
b = +b;    //0
f = +f;    //1.1
o = +o;    //-1

一元操作符主要用于表示负数,而当应用于非数值时,一元减操作符遵循与一元加操作符相同的规则,最后再将得到的数值转换为负数。

一元加和减操作符主要用于基本的算术运算,也可以像前面实例所展示的一样用于转换数据类型。

如果觉得此篇文章对您有帮助,希望可以请我喝雪碧!请我喝雪碧

上一篇   下一篇   返回顶部