javascript之自增自减典型运算(易错)
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之自增自减典型运算(易错)的更多相关文章
- javascript总结11:JavaScript的自增自减
1 自增自减 1.1 自增写法i++ 作用:在不参与运算的情况下,i++和++i都是在变量的基础加1 var n1 =123; //n1++ 等价于 n1 = n1 +1; ++n1 //等价于 n1 ...
- 运算符:三目运算符,运算符优先级,sizeof,自增自减,取余
一://---------运算符-----------// 1.运算符是告诉编译程序执行特定算术或逻辑操作的符号. 2.按照功能划分: 算术运算符. 关系运算符与逻辑运算符.按位运算符. 3.运算符根 ...
- c中自增自减的妙用
#include <stdio.h> int main() { ; printf("%d,%d,%d,%d",i++;i--;++i;--i); /*运算从右往左运算 ...
- JavaScript易错知识点整理
前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...
- JavaScript 易错知识点整理
本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES ...
- JavaScript易错点转载
前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...
- JavaScript易错知识点整理[转]
前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...
- Java运算符使用总结(重点:自增自减、位运算和逻辑运算)
Java运算符共包括这几种:算术运算符.比较运算符.位运算符.逻辑运算符.赋值运算符和其他运算符.(该图来自网络) 简单的运算符,就不过多介绍使用了,可自行测试.关于赋值运算,可以结合算术运算和位运算 ...
- Java自增自减运算
自增自减运算 //++(自增) --(自减) 一元允运算 int a =3; //a = a+1-----4 int b=a++; //执行完这行代码后,先给b赋值,再自增 System.out.pr ...
随机推荐
- el5,6,7的ntpdate服务
在el5里没有ntpdate服务 在el6里有ntpdate服务 在el7里有ntpdate服务
- phpcms替换来源
//替换来源:pc标签里面必须加moreinfo="1"不加会调不出来源 {pc:content action="lists" catid="12&q ...
- ios数据存储——对象归档
归档:数据从内存与闪存相互转化,类似“序列化”,将数据转换成二进制字节数据 操作:有两种方式,第一种是单个对象作为root进行归档和恢复,一个对象一个文件:第二种,可以同时归档多个对象到一个文件 注意 ...
- Linux 线程调度与优先级设置
转载:http://blog.csdn.net/a_ran/article/details/43759729 线程调度间的上下文切换 什么是上下文切换? 如果主线程是唯一的线程,那么他基本上不会被调度 ...
- @dynamic 与 @synthesize
@synthesize是默认选项,表示为属性自动生成getter方法和setter方法 @dynamic 需要在实现文件里注明.例如 @dynamic name:表示用开发者手动动态实现getter和 ...
- JavaScript对象属性的基础教程指南
JavaScript是使用“对象化编程”的,或者叫“面向对象编程”的.所谓“对象化编程”,意思是把JavaScript能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编 ...
- 添加redo日志组和添加日志组多元化
查看redo日志组的状态和日志的位置. SQL> 没有被使用,所以切几次日志,组合4已生效. SQL> select * from v$log; GROUP# THREAD# SEQ ...
- netcat工具的使用
用途:网络管理工具. 可以读,写TCP或UDP 网络连接.简写为:nc 常见参数: -h 帮助信息 -l 坚挺模式 -n 指定IP地址 -p 指定端口号 -v 详细输出 1 客户端:很容易建立一个客 ...
- SVG在网页中的四种使用方式
1,直接打开simple.svg <svg xmlns="http://www.w3.org/2000/svg" width="200" height=& ...
- JSP获取绝对物理地址
session.getServletContext().getRealPath(""); 但是 getRealPath("a"+File.separator); ...