JS系列 10 - 一元操作符

自增前置 和 后置

后置

首先我们要真正地明白自增的过程,var++;
var++ 的过程是

  1. var的值增加 1
  2. 把增加过的值在此赋值给var

下面的代码希望能够帮你理解

var d = 10;
d = d + 1;
console.log(d);//结果是11

//上下的代码不可以同时出现在你的编辑器内

var d = 10;
d++;
console.log(d);//结果是11

//上下的代码不可以同时出现在你的编辑器内

var d = 10;
++d;
console.log(d);//结果是11

可以看到,d=d+1 就是 d++ 的 一个过程分解; 因此,重点是我们一定要记住d++这个过程已经帮助我们赋值给原变量了!

d = d+1;这个等式为了理解下面的一段
当你输出 d++ 和 d 的时候结果是不一样的,因为 d++ 中的d是等号右边的d(加法运算前的), 而d中的d是左边d(加法运算完后的d);现在你应该可以更加明白了 先加 和 后加 说的是什么了吧?

var d = 10;
console.log(d++);//结果是10,加法运算之前的d

//粘贴下面的代码时,请把上面的代码从你的编辑器中删除或者注释掉

var d = 10;
d = d + 1;
console.log(d);//结果是11,加法运算之后的d

前置

现在我们来讨论前置,++d;即所谓的先加

var d = 10;
console.log(++d);//结果都是10,加法运算之后的d

//粘贴下面的代码时,请把上面的代码从你的编辑器中删除或者注释掉

var d = 10;
d = d + 1;
console.log(d);//结果都是11,加法运算之后的d

强调一下,d++运行完后,d的值已经被加1了,只是当打印d++的时候,返回值是原来的d/加法运算之前的d。

练习

var d = 20
var result = d++ + ++d + d;
console.log(result);

可自增自减的数据类型

可以用自增自减的数据有:数值,字符串,布尔,浮点,和对象1

一元加法 +

var = + a 可以把其他的数据类型,将其转化为 number,原理和 Number()一样。
字符串,布尔,浮点,和对象

var result = 1 + +'2' + 3; 
console.log(result); //返回结果为 6
console.log(typeof result);

任何值和字符串相加的话,会返回字符串

//去编辑器里面测试一下吧
var text = 'test';
var obj = {valueOf:function(){
    return 'tom'}
};
console.log(text + 1);
console.log(text + true);
console.log(text + null);
console.log(text + undefined);
console.log(text + obj);

一元减法 -

也可以把其他的数据类型转换为 Number
但主要用于基本但算术运算


  1. 详细讨论请见 javascript高级程序设计(第三版) 第37页 ↩︎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值