3/5:操作符

操作符:包含算数操作符、位操作符、关系操作符和相等操作符;ECMAScript操作符的与众不同之处在于,它们能够适用于很多值,例如字符串、数字值、布尔值、甚至对象。在应用于对象时,相应的操作符通常都会调用对象的valueOf()或toString()方法;

1:一元操作符(只能操作一个值的操作符叫做一元操作符)

(递增和递减操作符)-(一元加或减操作符)

//递增和递减操作符各有两个版本:前置型和后置型
/*******************(前置型)要操作的变量之前**************************/
//递增(++)
var age = 20;
++age;  //21
var age1 = 20;
age1 = age1 + 1;  //21
//递减(--)
var age2 = 20;
--age2; //19
//执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的。(在计算机科学领域,这种情况通常被称作副效应)
var age3 = 29;
var anotherAge = --age3 + 2;

console.log(age3);  //28
console.log(anotherAge); //30

var num1 = 2;
var num2 = 20;
var num3 = --num1 + num2; //21
var num4 = num1 + num2; //21

/*******************(后置型)要操作的变量之后**************************/
//后置递增和递减与前置递增和递减又一个非常重要的区别,即递增和递减操作是在包含它们的语句被求值之后才执行的。
var age4 = 29;
age4++;  //30
 //把递增操作符放在变量后面并不会改变语句的结果,因为递增是这条语句的唯一操作。但是,当语句中还包含其他操作时
var num5 = 2;
var num6 = 20;
var num7 = num5-- + num6; //22
var num8 = num5 + num6; //21
  • 在应用于一个包含有效数字字符的字符串时,先将其转换为数字值,在执行加减1的操作。字符串变量变成数值变量;
  • 在应用于一个不包含有效数字字符的字符串时,将变量的值设置为NaN。字符串变量变成数值变量;
  • 在应用于布尔值false时,先将其转换为0再执行加减1的操作。布尔值变量变成数值变量;
  • 在应用于布尔值true时,先将其转换为1再执行加减1的操作。布尔值变量变成数值变量;
  • 在应用于浮点数值时,执行加减1的操作;
  • 在应用对象时,先调用对象的valueOf()方法以取得一个可供操作的值,然后对该值应用前述规则;如果结果是NaN,则调用toString()方法后再应用前述规则。对象变量变成数值变量;
  • var s1 = "2";
    var s2 = "z";
    var s3 = false;
    var s4 = 1.1;
    var s5 = {
     valueOf: function () {
         return  -1;
      }
    };
    s1++;
    s2++;
    s3++;
    s4--;
    s5--;
    console.log(s1); //3
    console.log(s2); //NaN
    console.log(s3); //1
    console.log(s4); //0.1
    console.log(s5); //-2
        /**********(一元加操作符)**********************/
            var s1 = "01";
            var s2 = "1.1";
            var s3 = false;
            var s4 = 1.1;
            var s5 = {
                valueOf: function () {
                    return -1;
                }
            };
            var s6 = "z"
            s1 = +s1;
            s2 = +s2;
            s3 = +s3;
            s4 = +s4;
            s5 = +s5;
            s6 = +s6;
            // console.log(s1); //1
            // console.log(s2); //1.1
            // console.log(s3); //0
            // console.log(s4); //1.1
            // console.log(s5); //-1
            // console.log(s6); //NaN
    
      /**********(一元加减作符)**********************/
    
            var s11 = "01";
            var s21 = "1.1";
            var s31 = false;
            var s41 = 1.1;
            var s51 = {
                valueOf: function () {
                    return -1;
                }
            };
            var s61 = "z"
            s11 = -s11;
            s21 = -s21;
            s31 = -s31;
            s41 = -s41;
            s51 = -s51;
            s61 = -s61;
            console.log(s11); //-1
            console.log(s21); //-1.1
            console.log(s31); //-0
            console.log(s41); //-1.1
            console.log(s51); //1
            console.log(s61); //NaN

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值