JavaScript“自增”运算符与表达式

递增运算符(++)是一个一元运算符,该运算符可以将操作数进行递增操作,即每次增加1.递增运算符要求其操作数必须是变量、对象中的某个属性或数组中的某个元素,并且操作数的类型必须是数字型的。

如果操作数类型不是数字型,递增运算符会将其先转换为数字型数据,再进行递增操作。

递增运算符(自增运算符)根据其相对于操作数的位置有两种不同的递增方式。

1. “前自增”运算符

格式:

++a

“前自增”运算符是先将操作数的值加1,再使用操作数的新值参与表达式的运算。

举例:

var a=10, b;
b=++a;

结果:a=11,b=11

2. “后自增”运算符

格式:

a++

“后自增”运算符是先将操作数的值参与表达式的运算,等表达式的值被引用之后,再将操作数的值加1。

举例:

var a=10, b;
b=a++;

结果:a=11,b=10

提示:当“++”在a前面时(++a),a加1后再参与表达式的运算;当“++”在a后面时(a++),a先参与表达式的运算,然后再加1。

“++”只对a有意义,可以把(++a)或(a++)看成一个整体,只是一个先加1再参与运算,还是先参与运算再加1的问题。

  // 案例一
  var a = 1;
  var b = ++a + ++a;
  console.log(b); // 结果为5

  var a = 1;
  var c = a++ + a++;
  console.log(c); // 结果为3

  var a = 1;
  var d = a++ + ++a;
  console.log(d); // 结果为4

  var a = 1;
  var e = ++a + a++;
  console.log(e); // 结果为4

   

  // 案例二
  var a = 1;
  var b = ++a + ++a; // ==> 先a=a+1得到a=2;然后2 + ++a,然后是a=a+1得到a=3,最后就是2+3=5 ,此时a的值为3
  console.log(b); // 结果为5
  var c = a++ + a++; // ==> 运算完后a的值为5
  console.log(c); // 结果为7
  var d = a++ + ++a; // ==> 运算完后a的值为7
  console.log(d); // 结果为12
  var e = ++a + a++; // ==> 运算完后a的值为9
  console.log(e); // 结果为16

JavaScript“自减”运算符与表达式

递减运算符(自减运算符)根据其相对于操作数的位置有两种不同的递减方式,即前自减与后自减。

  运算方法同上,这里就不多啰嗦了。

javascript之自增自减典型运算(易错)的更多相关文章

  1. javascript总结11:JavaScript的自增自减

    1 自增自减 1.1 自增写法i++ 作用:在不参与运算的情况下,i++和++i都是在变量的基础加1 var n1 =123; //n1++ 等价于 n1 = n1 +1; ++n1 //等价于 n1 ...

  2. 运算符:三目运算符,运算符优先级,sizeof,自增自减,取余

    一://---------运算符-----------// 1.运算符是告诉编译程序执行特定算术或逻辑操作的符号. 2.按照功能划分: 算术运算符. 关系运算符与逻辑运算符.按位运算符. 3.运算符根 ...

  3. c中自增自减的妙用

    #include <stdio.h> int main() { ; printf("%d,%d,%d,%d",i++;i--;++i;--i); /*运算从右往左运算 ...

  4. JavaScript易错知识点整理

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  5. JavaScript 易错知识点整理

    本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES ...

  6. JavaScript易错点转载

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  7. JavaScript易错知识点整理[转]

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  8. Java运算符使用总结(重点:自增自减、位运算和逻辑运算)

    Java运算符共包括这几种:算术运算符.比较运算符.位运算符.逻辑运算符.赋值运算符和其他运算符.(该图来自网络) 简单的运算符,就不过多介绍使用了,可自行测试.关于赋值运算,可以结合算术运算和位运算 ...

  9. Java自增自减运算

    自增自减运算 //++(自增) --(自减) 一元允运算 int a =3; //a = a+1-----4 int b=a++; //执行完这行代码后,先给b赋值,再自增 System.out.pr ...

随机推荐

  1. Leetcode题1

    Given an array of integers, find two numbers such that they add up to a specific target number. The ...

  2. S3C2440 TFTLCD驱动详解

    S3C2440自带有LCD控制器,该控制器主要有以下接口 仅仅说TFT显示器,TFT显示器的时序如下 TFT显示器的驱动是以行列的形式逐点扫描过来的,驱动时钟有三种,一种是行时钟,一种是列时钟,还有一 ...

  3. UIAlertController高级之嵌入其他控件

    在编码过程中,我们经常遇到需要这样一个效果,就是弹出框的嵌套; 举个最简单的例子,比如你要选择时间,必然需要一个时间选择器DatePicker.但是这个选择器又是在你点击某按钮时弹出,弹出方式最常见的 ...

  4. iOS 消息推送原理及实现总结 分类: ios技术 2015-03-01 09:22 70人阅读 评论(0) 收藏

    在实现消息推送之前先提及几个于推送相关概念,如下图: 1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服 ...

  5. PHP 安装使用 gearman

    1.安装服务器端: 官方下载,请到https://launchpad.net/gearmand. yum install boost-devel* gperf* libevent-devel* lib ...

  6. UVa 10299 - Relatives

    题目大意:Euler's Totient的应用. 几乎和UVa 10179 - Irreducable Basic Fractions一样,于是偷了个懒,直接用10179题的代码,结果WA了,感觉一样 ...

  7. UIButton样式设置

    btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @”search” forState: UIControlStateNormal ...

  8. [Machine-Learning] 一个线性回归的简单例子

    这篇博客中做一个使用最小二乘法实现线性回归的简单例子. 代码来自<图解机器学习> 图3-2,使用MATLAB实现. 代码link 用到的matlab函数 由于以前对MATLAB也不是非常熟 ...

  9. Grunt之watch详解

    Grunt 之 watch 和 livereload 现在 watch 中已经集成了 livereload ,所以把它们放在一起说明. watch 可以监控特定的文件,在添加文件.修改文件.或者删除文 ...

  10. java 开发之linux 下 tomcat

    tomcat作为java开发的服务器,可以部署在各种系统中. 官方下载地址:http://tomcat.apache.org/download-80.cgi 1. 装tomcat 之前,先要装jdk  ...