在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一元操作符的更多相关文章

  1. JavaScript操作符(一元操作符)

    JavaScript操作符包括算术操作符.位操作符.关系操作符和相等操作符.只能操作一个值的操作符叫做一元操作符. 递增和递减操作符 递增和递减操作符有两个版本:前置型和后置型.前置型操作符位于要操作 ...

  2. JS中的一元操作符

    表达式 一元操作符 优先级 结合性 运算顺序 表达式是什么? 就是JS 中的一个短语,解释器遇到这个短语以后会把对它进行计算,得到一个结果参与运算,我们把这种要参与到运算中的各种各样的短语称为表达式. ...

  3. Java一元操作符++详解

    废话不多说,直接上代码. package com.coshaho.learn; /** * * OperatorLearn.java Create on 2016-11-13 下午8:38:15 * ...

  4. 【javascript基础】函数前面的一元操作符

    在函数前面加:+  ;  ~ !  - 等等一元操作符,javascript 引擎都会将后面的statement转换成表达式(expression),这样就可以调用了.

  5. [javascript|基本概念|一元操作符]学习笔记

    只操作一个值的操作符 递增/递减操作符 前置型/后置型 前置型:操作符位于操作数前面 e.g.: var a = 30; ++a; 等同于 var a = 30; a = a + 1; --> ...

  6. ECMAScript布尔操作符

    在ECMAScript中提供了Boolean()转换函数以及三个布尔操作符,这三个布尔操作符分别为逻辑非.逻辑与.逻辑或,这三个操作符通常用作于某些值的求反,比较模式等.学好这一点知识也非常的重要,奠 ...

  7. ECMAScript位操作符

    在ECMAScript中,有少数的几个操作符可以对二进制位进行直接操作,这几个操作符本身直接对二进制进行操作,所有它们的本身是非常效率的,学习这一段有助于以后的优化以及理解. ECMAScript中采 ...

  8. javascript中的一元操作符

    题目如下: var s1 = "01"; var s2 = "1.1"; var s3 = "z"; var b = false; var ...

  9. javascript一元操作符(递增,递减)

    <script type="text/javascript"> var a="1"; var b=false; var c="dd&quo ...

随机推荐

  1. 问题-[VMware Workstation]断电后,重启电脑,之后就提示“内部错误”

    问题现象:突然断电后,重启电脑,再打开VMware Workstation,启动不了.之后就提示“内部错误”.问题原因:希望高人指点.问题处理:关闭VMware Workstation,在快捷方式上, ...

  2. 【腾讯Bugly干货分享】手游热更新方案xLua开源:Unity3D下Lua编程解决方案

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2bY7A6ihK9IMcA0bOFyB-Q 导语 xL ...

  3. 库不存在的排查方法:ImportError: No module named selenium2Library

    解决办法: 把selenium2Library改成Selenium2Library   安装下面四个: python-2.7.13.amd64.msi robotframework-ride-1.5. ...

  4. JBoss 目录结构

    安装JBoss 会创建下列目录结构: 目录 描述  bin 启动和关闭JBoss 的脚本  client 客户端与JBoss 通信所需的Java 库(JARs)  docs 配置的样本文件(数据库配置 ...

  5. Kinect for Windows SDK开发入门(一):开发环境配置

    [译]Kinect for Windows SDK开发入门(一):开发环境配置 前几天无意中看到微软发布了Kinect for windows sensor,进去看了一下Kinect应用的例子,发现K ...

  6. Redis Cluster集群搭建与配置

    Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...

  7. eclipse 插件之Code Folding

    功能: eclipse自带折叠包括方法, import, 注释等得折叠功能, code folding 插件对其增强. 1. 下载插件:( 也可以用link方式, 我的是link安装, jar包网上很 ...

  8. 自定义Dictionary支持线程安全

    本文转载:http://www.cnblogs.com/kiddo/archive/2008/09/25/1299089.html 我们说一个数据结构是线程安全指的是同一时间只有一个线程可以改写它.这 ...

  9. JSLink to render the list to show people detail info with picture

    I  create a custom list, and create a poeple column to store poeple detail info with picture in this ...

  10. oracle数据库导入导出的dmp(转)

    window下: imp必须要dba用户,所以用sysdba用户登陆,然后给予chnlmgr用户dba权限 grant connect,resource,dba to chnlmgr; 全部导入 im ...