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 ...
随机推荐
- sql server smo
在SQL Server2005以前的版本中,SQL分布式管理对象(SQL-DMO)为我们提供了非常有效的方法来通过编程的方式管理SQL Server.SQL-DMO支持基于COM的接口,开发人员可以通 ...
- 通过Response.Flush()实现IE下载失败的问题
通过Response.Flush()实现对服务端文件的下载时,会失败,不能正常弹出IE下载框,经过测试发现需要进行如下设置后即可解决. 进入 [工具]--->[Internet选项]---> ...
- JavaScript的递归之更多例子
更多例子 第二个递归的例子是求两个自然数的最大公约数(有没有回到令人怀念的中学时代).下面的程序用的是经典的辗转相除法. //greatest common divisor //假定a.b都是正整数 ...
- Android两个控件叠在一起,如何让被挡住的控件显示出来
Android两个控件叠在一起,如何让被挡住的控件显示出来 问题 : 两个控件叠在一起,如何让被挡住的控件显示出来? 比如A,B两个控件,A被B挡住,目前A要显示出来,B不能被隐藏,A的高度只有那么一 ...
- [置顶] mmog游戏开发之业务篇
这周不是很忙,因为我们的游戏开发了近一年,由于公司的业务调整,在游戏开第二服的时候,老板果断的把项目停到了. 感觉超级的不爽啊.因为这个游戏项目像我的孩子一样和我一样成长,里边的大概的业务逻辑都是偶实 ...
- [AngularJS] angular-formly: expressionProperties
angular-formly provides a very simple API to dynamically change properties of your field (like disab ...
- [转]BeagleBone Black USB一线通(2)
接上篇 BeagleBone Black USB 一线通(1) 三.网络与ssh终端 通过串口终端我们可以看到启动的过程,也能做一些交互操作,比如我们看到了网络接口的状况.其中的usb0已经在随板的 ...
- Java基础知识强化之IO流笔记62:三种方式实现键盘录入
1. 三种方式实现键盘录入 System.in 标准输入流.是从键盘获取数据的 键盘录入数据三种方式: A:main方法的args接收参数. java HelloWorld hello w ...
- 第一个felx项目的创建
使用新建flex项目向导建立项目
- c语言冒泡排序,指针,数组
冒泡排序算法的运作如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复 ...