ECMAScript 运算符
一元运算符
delete
delete 运算符删除对以前定义的对象属性或方法的引用。
var o = new Object;
o.name = "David";
alert(o.name); //输出 "David"
delete o.name;
alert(o.name); //输出 "undefined"
delete 运算符不能删除开发者未定义的属性和方法。
void
void 运算符对任何值返回 undefined。该运算符通常用于避免输出不应该输出的值.
前增量/前减量运算符
var iNum = 10;
++iNum;
var iNum = 10;
--iNum;
后增量/后减量运算符
var iNum = 10;
iNum++;
var iNum = 10;
iNum--;
一元加法和一元减法
var iNum = 20;
iNum = +iNum;
alert(iNum); //输出 "20"
var iNum = 20;
iNum = -iNum;
alert(iNum); //输出 "-20"
位运算 NOT
位运算 NOT 由否定号(~)表示
位运算 NOT 是三步的处理过程:
把运算数转换成 32 位数字
把二进制数转换成它的二进制反码
把二进制数转换成浮点数
位运算 NOT 实质上是对数字求负,然后减 1,因此 25 变 -26。
位运算 AND
位运算 AND 由和号(&)表示,直接对数字的二进制形式进行运算。
位运算 OR
位运算 OR 由符号(|)表示,也是直接对数字的二进制形式进行运算。
位运算 XOR
位运算 XOR 由符号(^)表示,当然,也是直接对二进制形式进行运算。
左移运算
左移运算由两个小于号表示(<<)。它把数字中的所有数位向左移动指定的数量。
有符号右移运算
有符号右移运算符由两个大于号表示(>>)。它把 32 位数字中的所有数位整体右移,同时保留该数的符号(正号或负号)。有符号右移运算符恰好与左移运算相反。
无符号右移运算
无符号右移运算符由三个大于号(>>>)表示,它将无符号 32 位数的所有数位整体右移。对于正数,无符号右移运算的结果与有符号右移运算一样。
对于负数,情况就不同了。
无符号右移运算用 0 填充所有空位。对于正数,这与有符号右移运算的操作一样,而负数则被作为正数来处理。
------------------------------------------
Boolean 运算符
Boolean 运算符有三种:NOT、AND 和 OR。
与其他乘性运算符相似,对于特殊值,取模运算符也有特殊的行为:
如果被除数是 Infinity,或除数是 0,结果为 NaN。
Infinity 被 Infinity 除,结果为 NaN。
如果除数是无穷大的数,结果为被除数。
如果被除数为 0,结果为 0。
与乘性运算符一样,在处理特殊值时,ECMAScript 中的加法也有一些特殊行为:
某个运算数是 NaN,那么结果为 NaN。
-Infinity 加 -Infinity,结果为 -Infinity。
Infinity 加 -Infinity,结果为 NaN。
+0 加 +0,结果为 +0。
-0 加 +0,结果为 +0。
-0 加 -0,结果为 -0。
与加法运算符一样,在处理特殊值时,减法运算符也有一些特殊行为:
某个运算数是 NaN,那么结果为 NaN。
Infinity 减 Infinity,结果为 NaN。
-Infinity 减 -Infinity,结果为 NaN。
Infinity 减 -Infinity,结果为 Infinity。
-Infinity 减 Infinity,结果为 -Infinity。
+0 减 +0,结果为 +0。
-0 减 -0,结果为 -0。
+0 减 -0,结果为 +0。
某个运算符不是数字,那么结果为 NaN。
ECMAScript 提供了两套等性运算符:等号和非等号用于处理原始值,全等号和非全等号用于处理对象。
执行类型转换的规则如下:
如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0,true 为 1。
如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。
如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。
在比较时,该运算符还遵守下列规则:
值 null 和 undefined 相等。
在检查相等性时,不能把 null 和 undefined 转换成其他值。
如果某个运算数是 NaN,等号将返回 false,非等号将返回 true。
如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回 true,否则两个运算数不等。
全等号由三个等号表示(===),只有在无需类型转换运算数就相等的情况下,才返回 true。
var sNum = "66";
var iNum = 66;
alert(sNum == iNum); //输出 "true"
alert(sNum === iNum); //输出 "false"
非全等号由感叹号加两个等号(!==)表示,只有在无需类型转换运算数不相等的情况下,才返回 true。
var sNum = "66";
var iNum = 66;
alert(sNum != iNum); //输出 "false"
alert(sNum !== iNum); //输出 "true"
乘法/赋值(*=)
除法/赋值(/=)
取模/赋值(%=)
加法/赋值(+=)
减法/赋值(-=)
左移/赋值(<<=)
有符号右移/赋值(>>=)
无符号右移/赋值(>>>=)
用逗号运算符可以在一条语句中执行多个运算。
var iNum1 = 1, iNum = 2, iNum3 = 3;
逗号运算符常用变量声明中。
分享到:
相关推荐
"JavaScript高级编程"这本书深入探讨了这门语言的高级特性和最佳实践,旨在帮助开发者提升技能水平,实现更高效、更可靠的代码编写。以下是该书可能涵盖的一些关键知识点: 1. **基础语法**:包括变量、数据类型...
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个...
根据提供的标题、描述、标签及部分内容,我们可以推测这本书——《JavaScript高级编程(第2版)》第二部分的主要内容涉及到了JavaScript的高级应用和技术细节。尽管给出的部分内容并未包含实际的文字内容,但从书名...
学习JavaScript高级编程技术,首先需要理解脚本语言的概念。脚本语言是相对于编译型语言而言的,它们通常不需要预编译,而是直接由解释器执行。JavaScript就是这样的脚本语言,它在网页加载时被解释执行,可以实时...
JavaScript,作为一种广泛应用于Web开发的脚本语言,其在实际应用中常常会遇到命名冲突的问题。特别是在大型项目中,随着代码量的增加,不同模块之间的函数或变量名称可能相同,导致错误。为了解决这个问题,开发者...
"JavaScript高级编程"这本书深入浅出地介绍了这一语言的各个方面,旨在帮助初学者和有经验的开发者进一步提升技能。以下是对该书内容的详细概述: 1. **基础语法**:JavaScript的基础始于变量、数据类型(包括原始...
javascript高级编程的JavaScript开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及JavaScript的语言特点、JavaScript与浏览器的交互、更高级的JavaScript技巧,以及与在Web应用程序中部署JavaScript解决...
JavaScript是一种广泛使用的客户端脚本编程语言,主要用于开发Web应用程序。它能够让开发人员快速创建交互式的网页,并将各种强大的Web对象(如HTML、XML、Javaapplet、flash等)有机结合起来,从而便捷地生成可在...
javascript高级编程的 幻灯片文件
很详细透彻的 javascript 网上收集 的 但是不知道是那本书 知道的告诉我下 我去买本 入门与提高 javascript教程 入门与提高 javascript教程入门与提高 javascript教程
从最佳编程实践到即将成为现实的api,直至javascript未来的发展,全景式地展示了javascript高级程序设计的方方面面。 本书适合不同层次的javascript/web开发人员阅读参考,也可作为高校相关专业课程的教材。
"JavaScript高级编程"这个主题深入探讨了这门语言的高级概念和技术,旨在帮助开发者从初级水平迅速提升到高级水平,实现快速学习和易学易懂的目标。 首先,我们要理解JavaScript的基本语法和数据类型,包括变量、...
JavaScript是一种广泛使用的脚本语言,...JavaScript高级编程是一本全面介绍JavaScript语言的书,尤其适合初学者,通过这本书的学习,可以为Web开发打下坚实的基础,理解并运用JavaScript来增强网页的交互性和功能性。
目录: 第一章 javascript语言概述 第二章 JavaScript语言基础 第三章 JavaScript事件处理 第四章 JavaScript基于对象编程 第六章 string,math,array等数据对象 第七章 window及相关顶级对象 第八章 document对象
本书在上一版基础上进行了大幅度更新和修订,融入了近几年来javascript应用发展的最新成果,几乎...从最佳编程实践到即将成为现实的api,直至javascript未来的发展,全景式地展示了javascript高级程序设计的方方面面。
以上仅是JavaScript高级编程的一部分内容,实际书籍中可能还会涵盖更多主题,如性能优化、测试、源码分析、框架和库的使用等。通过深入学习这些知识,开发者可以更好地驾驭JavaScript,创造出更加优秀的产品。
本书在上一版基础上进行了大幅度更新和修订,融入了近几年来javascript应用发展的最新成果,几乎...从最佳编程实践到即将成为现实的api,直至javascript未来的发展,全景式地展示了javascript高级程序设计的方方面面。
JavaScript高级编程是面向C#程序员的一种技术,旨在简化代码并实现更高效的效果。JavaScript作为一种功能强大的脚本语言,它的灵活性允许开发者在对象创建后动态定义其属性,这在早期的JavaScript开发中尤其常见。...