ECMAScript一元操作符
在ECMAScript中提供了一元操作符进行简单的运算,一元操作符是ECMAScript中最简单的操作符,它只能对一个值进行操作。 一元操作符有两种类型,一种是递增和递减操作符,一种是一元加和一元减操作符。
递增和递减操作符
ECMAScript递增递减操作符是直接借鉴C语言的,由”++”和”–“分别来表示自身递增和递减。递增递减还有两种情况,分别为前置型和后置型。
前置型:前置型的作用是在包含它的语句求值之前进行递增递减,例如:
var test1 = 10; var test2 = 20; var test3 = –test1 + test2; 执行过后的值为: test3的值为29、test1的值为9、test2的值20 或者 var test3 = ++test1 + test2; 执行过后的值为:test3的值为31、test1的值为11、test2的值为20
后置型:后置型的作用是在包含它的语句求值之后进行递增递减,例如:
var test1 = 10; var test2 = 20; var test3 = test1– + test2; 执行过后的值为:test3的值为30、test1的值为9、test2的值20 或者 var test3 = test1++ + test2; 执行过后的值为:test3的值为30、test1的值为11、test2的值为20
递增递减操作符对所有类型的变量进行转换的规则如下:
1、如果是数值则直接进行递增递减操作。 在操作一个包含有效数字字符的字符串时,先将其转换为数值,再进行递增递减操作。字符串变量转换为数值变量。
2、在操作一个不包含有效数字字符的字符串时,直接将变量设置为NaN。字符串变量转换为数值变量。
3、在操作布尔值的时候,true转换为数值0、false转换为数值1,然后进行递增递减操作。布尔值变量转换为数值变量。
4、如果操作是对象,先调用对象的valueOf()方法得到一个可以操作的数值,然后再用上面其他规则转换。如果转换过后的值不是一个有效的数值(NaN),那就再次调用toString()方法再应用上面的其他规则,如果还不是,则返回NaN。对象变量转换为数值变量
一元加减操作符
一元加减操作符由”+”和”-“分别表示加减操作符,它是放在转换值前面的,转换规则和Number()转型函数一样进行操作(ECMAScript中数值转换操作)。它们在运算中比较常见,经常会用于正负数转换。例如:
var test = 123; test = -test; test的值为:-123 test = +test; test的值为:123
ECMAScript一元操作符的更多相关文章
- JavaScript操作符(一元操作符)
JavaScript操作符包括算术操作符.位操作符.关系操作符和相等操作符.只能操作一个值的操作符叫做一元操作符. 递增和递减操作符 递增和递减操作符有两个版本:前置型和后置型.前置型操作符位于要操作 ...
- JS中的一元操作符
表达式 一元操作符 优先级 结合性 运算顺序 表达式是什么? 就是JS 中的一个短语,解释器遇到这个短语以后会把对它进行计算,得到一个结果参与运算,我们把这种要参与到运算中的各种各样的短语称为表达式. ...
- Java一元操作符++详解
废话不多说,直接上代码. package com.coshaho.learn; /** * * OperatorLearn.java Create on 2016-11-13 下午8:38:15 * ...
- 【javascript基础】函数前面的一元操作符
在函数前面加:+ ; ~ ! - 等等一元操作符,javascript 引擎都会将后面的statement转换成表达式(expression),这样就可以调用了.
- [javascript|基本概念|一元操作符]学习笔记
只操作一个值的操作符 递增/递减操作符 前置型/后置型 前置型:操作符位于操作数前面 e.g.: var a = 30; ++a; 等同于 var a = 30; a = a + 1; --> ...
- ECMAScript布尔操作符
在ECMAScript中提供了Boolean()转换函数以及三个布尔操作符,这三个布尔操作符分别为逻辑非.逻辑与.逻辑或,这三个操作符通常用作于某些值的求反,比较模式等.学好这一点知识也非常的重要,奠 ...
- ECMAScript位操作符
在ECMAScript中,有少数的几个操作符可以对二进制位进行直接操作,这几个操作符本身直接对二进制进行操作,所有它们的本身是非常效率的,学习这一段有助于以后的优化以及理解. ECMAScript中采 ...
- javascript中的一元操作符
题目如下: var s1 = "01"; var s2 = "1.1"; var s3 = "z"; var b = false; var ...
- javascript一元操作符(递增,递减)
<script type="text/javascript"> var a="1"; var b=false; var c="dd&quo ...
随机推荐
- apache安装php7过程中遇到到段错误
1.假如apache的配置文件httpd.conf同时加载libphp5.so和libphp7.so 2.如图所示,modules下同时存在libphp5.so/libphp7.so 3.启动apac ...
- bootstrap折叠修改hover
$('div.panel-collapse').on('shown.bs.collapse hidden.bs.collapse', function() { $(this).dequeue('col ...
- AtomicLong
Spring package com.uniubi.management.controller; import java.util.concurrent.atomic.AtomicLong; impo ...
- 关于IOS中UIWebView 加载HTML内容
NSString *strContent=[info objectForKey:@"newContent"]; { NSArray *paths = NSSearchPathFor ...
- 学习笔记:暴力破解WIFI小软件
小弟 自己的学习笔记,做练习的 ,缺陷还很多,做到无法解决速度问题就不想做下去了,如果要看的话 主要是思路问题,获取句柄,控制句柄而已,代码比较简单.大神勿喷啊 破解DEMO源码:http://dow ...
- [OGRE]基础教程来七发:来谈一谈缓冲绑定
上一章我们处理监听的方案是,每一帧只处理一次. 这一次,当鼠标键盘的事件发生时,我们会立即处理它. 这里只是对缓冲输入的一个简单介绍,而不是完整的如何使用OIS的教程. 若想了解更多内容,请查阅相关的 ...
- Android ListView分页加载时图片显示问题
场景:Android ListView需要分页加载,每个item中会有图片,图片又是从网络下载的. 问题:在滑动加载下一页时,上一页的图片明明已经下载完成了,但是无法显示出来. Bug重现: 1,加载 ...
- [linux]date命令时间戳和时间之间的转换
非常多时候我们查看数据库的数据,或者是一些别人系统中的数据须要用时间戳来查询.或者查询出来的结果是个时间戳. 还有时候,查询条件须要输入时间戳. 我之前的办法就是用在线工具来完毕,后来用mac了.我觉 ...
- 初识hibernate
//针对myEclipse2014版本 怎样新建一个工程实现这些东西的导入. 打开myeclipse. 2.点击右上角的open perspective 找到这个 MyEclipse Database ...
- 集合练习——List部分
利用ArrayList 1.存储多个员工信息,包括工号,姓名,年龄,入职时间,逐条打印所有员工姓名,并输出员工个数. package CollectionPart; import java.util. ...