js的一元操作符

js的一元操作符

js的一元操作符主要有两类

  • 递增递减操作符
  • 一元加和减操作符

递增递减操作符

递增递减操作符直接借鉴于C,而且各有两种不同的版本:前置型和后置型。顾名思义,前置型应该是在要操作之前,将变量递增,而后置型是在操作之后,将变量的值递增;同理递减也是一样的。

递增递减操作符使用规则

所以的递增和递减的操作符对任何值都适用,不仅仅适用于整数,还可以用于字符串,布尔值,浮点数值和对象。在应用于不同的值时,需要遵循下列的规则:

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

递增递减操作符使用案例

var s1 = '2' ;
var s2 = 'z';
var b = false;
var f = 1.1;
var o = {
 valueOf:function(){
      return -1;
 }
};
s1++;   //值变成数值3;
s2++;   //值变成NaN
b++;    //值变成1
f--;    //值变成0.100000000 
o--;    //值变成数值-2

一元加操作符

一元加和减操作符和数学书上的一样。一元加操作符以一个加号表示,放在数值前面,对数值没有任何影响。如下面的例子

var num = 12;
num = +num;    num的值任然是12

但在非数值应用一元加操作符时,该操作符会像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 = {
 valueOf:function(){
      return -1;
 }
};
s1=+s1;   //值变成数值1;
s2=+s2;   //值变成1.1
s3=+s3;   //值变成NaN
b=+b;    //值变成0 
f=+f;    //值变成1.1
o=+o;    //值变成数值-1

一元加和减操作符

一元减操作符主要用于表示负数,例如将1转换成-1;在将一元减操作符应用于数值时,该值会变成负数。而当应用于非数值时,一元操作符遵循与一元加操作符一样的规则,最后再将得到的数值转换为负数

一元减操作符使用案例

var s1 = '01' ;
var s2 = '1.1';
var s3 ='z';
var b = false;
var f = 1.1;
var o = {
 valueOf:function(){
      return -1;
 }
};
s1=-s1;   //值变成数值-1;
s2=-s2;   //值变成-1.1
s3=-s3;   //值变成NaN
b=-b;    //值变成0 
f=-f;    //值变成-1.1
o=-o;    //值变成数值1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值