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 ...
随机推荐
- mysql 数据库 切表的脚本
#!/bin/sh host=$1 port=$2 host=${host:="localhost"} #host没赋值,那么就赋值为localhost port=${port: ...
- IOS数据库FMDB增、删、改、查的使用【原创】
http://blog.it985.com/13588.html IOS数据库FMDB增.删.改.查的使用[原创] FMDB是一个XCODE的中一个轻量级的数据库,用于将网络资源存储在本地.所以,FM ...
- UCOSII在STM32F1上的移植
UCOSII在STM32F1上的移植 首先准备好一份STM32F1的工程.UCOSII源码. 在准备好的工程中新建一个"UCOSII"文件夹(或者取其它名字也行): UCOSII文 ...
- winscp 秘钥登录
如题 如果不想用密码登录,可以选择用秘钥文件登录winscp 原理和linux分发ssh公钥是一个道理 1:在被管理的机器上分发公钥 ,出现 authorized_keys才可以 完成服务端配置 2: ...
- iOS开发实现Label中多颜色多字体
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(8, 100, 300, 30)]; label.textColor = wor ...
- 超市RFID结算系统项目进度与总结
超市RFID结算系统项目进度与总结 超市RFID结算系统本周末(明天演示),目前进度如下: 一.后台PHP端已经完成了大部分的工作,包括以下: 1.数据库的建立(目前只包括用户表.商品信息表.购物车表 ...
- Spring.NET 的IOC(依赖注入)
(1) ioc,意思是Inversion of control,(反转控制),控制反转,就是交换控制权的意思.现在一般不使用这个词,一般使用dependency injection(依赖注入).依赖 ...
- jmeter+ant+jenkins+mac使用HTML Publisher插件后查看html报告显示不正常
Jenkins安全默认将以下功能关闭: 1.javascript2.html上的内置插件3.内置css或从其它站的css4.从其它站的图处5.AJAX 报告中有javascript,所以显示异常.解决 ...
- UVa 11308 - Bankrupt Baker
题目大意:给出一些原料和价钱和若干份菜谱,每份菜谱都标明所需的原料和数量,找出所有不超过预算的菜谱. 没什么好说的,主要是对map的运用. #include <cstdio> #inclu ...
- [Angular Tutorial] 1-Static Template
为了说明Angular如何扩展了标准的html,您将会创建了一个纯粹的静态html页面,并且看到我们如何将这些html代码转换成Angular能动态展示相同结果的模板. 在这一步您将会在一个html页 ...