JavaScript中常用的运算符小结_javascript技巧

一、一元运算符
1、delete 运算符:删除对以前定义的对象属性或方法的引用。例如:
var o=new Object;
o.name="superman";
alert(o.name); //输出 "superman"
delete o.name;
alert(o.name); //输出 "undefined"
删除了name属性,将其设置为undefined(即创建的未初始化的变量的值)。delete不能删除开发者未定义(即ECMAScript定义)的属性和方法。
例如,下面的代码将发生错误:delete o.toString();
2、void 运算符: 对任何值都返回undefined。该运算符通常用于避免输出不应该输出的值。
例如:在HTML页面中 <a href="javascript:window.open('about:blank')">Click Me</a>
点击该链接,网页中的链接消失,显示"[object]" (IE中,火狐中显示"[object Window]",Google中还是该链接)。因为window.open()方法返回了对新打开的窗口的引用。然后该对象被转换成要显示的字符串。要避免这种结果,可以用 void 运算符调用 window.open() 函数:
<a href="javascript:void(window.open('about:blank'))">Click Me</a>
这使window.open()调用返回undefined,它不是有效值,不会显示在浏览器窗口中。
3、前增量/前减量运算符:与C中的用法一样。运算都发生在计算表达式之前。如:++i; --i 。
4、后增量/后减量运算符:后缀式运算符是在计算过包含它们的表达式后才进行增量或减量运算。如:i++; i-- 。
5、一元加法和一元减法
一元加法本质上对数字无任何影响: var iNum=25; iNum=+iNum; alert(iNum); //输出25
一元加法运算符对对字符串进行操作时,它计算字符串的方式与 parseInt() 相似,主要的不同是对以"0x"开头的字符串(表示十六进制数字),一元运算符才能将它转换成十进制的值。因此,用一元加法转换"010",得到的总是10,而"0xB"将被转换成11。
var sNum="25"; alert(typeof sNum); //输出 "string"
var iNum=+sNum; alert(typeof iNum); //输出 "number"
一元减法就是对数值求负,与一元加法运算符相似,一元减法运算符也会把字符串转换成近似的数字,此外还会对该值求负。
var sNum = "25"; alert(typeof sNum); //输出 "string"
var iNum = -sNum; alert(iNum); //输出"-25"
alert(typeof iNum); //输出 "number"
二、位运算符:与二进制有关的一系列运算符,实际操作中貌似不怎么用,就略过了……
位运算符NOT由否定号(~)表示。
位运算符AND由和号(&)表示。
位运算符OR由符号(|)表示。
位运算符XOR由符号(^)表示。
左移运算由两个小于号表示(<<)。
有符号右移运算符由两个大于号(>>)表示。
无符号右移由三个大于号(>>>)表示。
三、Boolean运算符
Boolean运算符有三种,即NOT、AND 和 OR。
1、逻辑NOT,用感叹号(!)表示。该运算符通常用于控制循环。与逻辑OR和逻辑AND运算符不同的是,逻辑NOT运算符返回的一定是Boolean值。逻辑NOT运算符的行为如下:
如果运算数是对象,返回false。
如果运算数是数字0,返回true。
如果运算数是0意外的任何数字,返回false。
如果运算数是null,返回true。
如果运算数是NaN,返回true。
如果运算数是undefined,发生错误。
例: var b = true;
while(!b){ …… }
2、逻辑 AND 运算符,用双和号(&&)表示。结果为 true 时只有一种情况:true && true = true;
逻辑AND运算的运算数可以是任何类型的,不止是Boolean值。如果某个运算数不是原始的Boolean型值,逻辑AND运算不一定返回Boolean值:
如果一个运算数是对象,另一个是Boolean值,返回该对象。
如果两个运算数都是对象,返回第二个对象。
如果某个运算数是null,返回null。
如果某个运算数是NaN,返回NaN。
如果某个运算数是undefined,发生错误。
如果第一个运算数是false,那么无论第二个运算数的值是什么,结果都不可能为true。
3、逻辑OR运算符,用双竖线(||)表示。结果为false的情况只有一种:false || false=false; 其他情况均为true。
与逻辑AND运算符相似,如果某个运算数不是Boolean值,逻辑OR运算并不一定返回Boolean值:
如果一个运算数是对象,另一个是Boolean值,返回该对象。
如果两个运算数都是对象,返回第一个对象。
如果某个运算数是null,返回null。
如果某个运算数是NaN,返回NaN。
如果某个运算数是undefined,发生错误。
逻辑OR也是简便运算,对于逻辑OR运算符来说,如果第一个运算数值为true,就不再计算第二个运算数。
四、乘性运算符
1、乘法运算符,用星号(*)表示,用于两个数相乘。但在处理特殊值时,ECMAScript中的乘法还有一些特殊行为:
如果运算数都是数字,执行常规的乘法运算,如果结果太大或太小,那么生成的结果就是Infinity或-Infinity。
如果某个运算数是NaN,结果为NaN。
Infinity 乘以0,结果为NaN。
Infinity 乘以0以外的任何数字,结果为Infinity或-Infinity,由第二个运算数的符号决定。
2、除法运算符,用斜线(/)表示,用第二个数除第一个数。对于特殊值,特殊行为如下:
如果运算数都是数字,执行常规的触发运算,如果结果太大或太小,那么生成的结果是Infinity或-Infinity。
如果某个运算数是NaN,结果为NaN。
0除一个非无穷大的数字,结果为NaN。
Infinity被0以外的任何数字除,结果为Infinity或-Infinity,由第二个运算数的符号决定。
3、取模运算符,用百分号(%)表示。如果运算数都是数字,执行常规算术除法运算,返回余数。特殊行为:
如果被除数是 Infinity,或者除数是0,结果为NaN。
如果除数是无穷大的数,结果为被除数。
如果被除数为0,结果为0。
五、加性运算符
1、加法运算符(+),特殊行为:
某个运算数是NaN,结果为NaN。
Infinity 加-Infinity,结果为NaN。
如果某个运算数是字符串,那么采用下列规则:
如果两个运算数都是字符串,把第二个字符串连接到第一个字符串上。
如果只有一个运算数是字符串,把另一个运算数转换成字符串,结果是两个字符串连接成的字符串。
2、减法运算符(-),如果两个运算数都是数字,将执行算术减法。特殊规则:
如果运算数是NaN,结果为NaN。
某个运算数不是数字,结果为NaN。
六、关系运算符
关系运算符小于、大于、小于等于和大于等于执行的是两个数的比较运算,比较方式与算术比较运算相同。每个关系运算符都返回一个Boolean值。
对于字符串,第一个字符串中每个字符的代码都会与第二个字符串中对应位置上的字符的代码进行数值比较。
1、大写字母的代码都小于小写字母的代码,所以要得到按照真正的字母顺序比较结果,必须把两个运算数转换成相同的大小写形式,再进行比较。
2、在比较两个字符串形式的数字时,比较的是它们的字符代码。
3、比较一个字符串和数字,ECMAScript都会把字符串转换为数字,然后按照数字顺序比较它们。如果字符串不能转换成数字,那么返回NaN,任何包含NaN的关系运算都要返回false。因此,这样会返回false。
七、等性运算符
1、等号(==) 和非等号(!=),为确定两个运算数是否相等,这两个运算符都会进行类型转换。执行类型转换的基本规则如下:
如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。False转换成0,true转换成1。
如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
如果一个运算数是对象,另一个是字符串,在检查等性之前,要尝试把对象转换成字符串(调用toString()方法)。
如果一个运算数是对象,另一个是数字,在检查等性之前,要尝试把对象转换成数字。
在进行比较时,该运算符还遵守下列规则:
值null和undefined相等。
在检查相等性时,不能把null和undefined转换成其他值。
如果某个运算数是NaN,等号将返回false,非等号将返回true。即使两个运算数都是NaN,等号仍然返回false,因为根据规则,NaN不等于NaN。
如果两个运算数都是对象,那么比较的是他们的引用值。如果两个运算数指向同一个对象,那么等号返回true,否则两个运算数不等。


2、全等号和非全等号
等号和非等号的同类运算符是全等号和非全等号。这两个运算符所做的与等号和非等号相同,只是他们在检查相等性前,不执行类型转换。
全等号由三个等号(===)表示,只有在无需类型转换运算数就相等的情况下,才返回true。
var sNum="55"; var iNum=55; alert(sNum==iNum); //输出 "true"
alert(sNum===iNum); //输出 "false"
非全等号由两个感叹号加两个等号(!==)表示,只有在无需类型转换运算数不相等的情况下,才返回true。
var sNum="55"; var iNum=55; alert(sNum != iNum); //输出 "false"
alert(sNum !== iNum); //输出 "true"
八、其他运算符
1、条件运算符,即三元运算符 : variable = boolean_expression ? true_value : false_value;
2、赋值运算符(=) 复合赋值运算符:+=、-=、*=、/=、%=、<<=、>>=、>>>=
3、逗号运算符 用逗号运算符可以在一条语句中执行多个运算。 如: var iNum1=1,iNum2=2;

时间: 2025-01-30 14:50:52

JavaScript中常用的运算符小结_javascript技巧的相关文章

详解JavaScript中常用的函数类型_javascript技巧

网页中的java代码需要写在JavaScript中,里面部分少不了函数,介绍一下JavaScript中常用的函数类型.1.可变函数 <script> function show(){ alert("第一个..."); } function show(str){ alert("第二个"); } function show(a,b){ alert("第三个..."); alert(a+":"+b); } </sc

javascript中Number的方法小结_javascript技巧

一.构造函数 Number(value) new Number(value) 二.Number属性 1.Number.MAX_VALUE 返回能表示的最大数字. 2.Number.MIN_VALUE 能表示的最小数字. 3.Number.NAN 非数字值. 4.Number.NEGATIVE_INFINITY 负无穷,当溢出时返回. 5.Number.POSITIVE_INFINITY 正无穷,当溢出时返回. 三.Number方法 1.toString() 使用指定进制,将一个数字转换为字符串.

JavaScript中的时间处理小结_javascript技巧

废话不多说了,主要通过以下七个方面给大家总结了时间处理相关知识. 1.获取当前时间 function getNowTime() { return new Date(); } 2.时间与天数相加 function getTimeAddDays(time, days) { return new Date(time.getTime() + days * 24 * 60 * 60 * 1000); } 3.获取并格式化日期:年-月-日 function getFormatDate(time) { ret

JavaScript常用本地对象小结_javascript技巧

一.javascript是面向对象的编程语言 封装:把相关的信息(无论数据或方法)存储在对象中的能力 聚集:把一个对象存储在另一个对象内的能力 继承:由另一个类(或多个类)得来类的属性和方法的能力. 多态:编写能以多种形态运行的函数或方法的能力 二.Array对象 使用单独的变量名来存储一系列的值. 2.1创建数组对象 var aValues = new Array(); var aValues = new Array(25); var aColors = new Array("red"

JavaScript常用数组算法小结_javascript技巧

今天抽点时间把javascript中的一些常用的数组算法做一下总结,以方便大家面试笔试或者日常开发过程中用到.其中部分算法来自网络,这里做了下汇总整理.文章末尾我会把参考的来源附上去,如果直接看算法比较枯燥的可以到参考文献里去看,讲解的非常不错. 一.数组去重 方法1: //利用数组的indexOf方法 function unique (arr) { var result = []; for (var i = 0; i < arr.length; i++) { if (result.indexO

基于JavaScript操作DOM常用的API小结_javascript技巧

前言 DOM(Document Object Model)即文档对象模型,针对 HTML 和 XML 文档的 API(应用程序接口).DOM 描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM 脱胎于 Netscape 及微软公司创始的 DHTML(动态 HTML),但现在它已经成为表现和操作页面标记的真正跨平台.语言中立的方式. 阅读目录 基本概念 节点创建型api 页面修改型API 节点查询型API 节点关系型api 元素属性型api 元素样式型api 总结 文本整

javascript继承的六大模式小结_javascript技巧

1.原型链 function SuperType(){ this.property = true; } SuperType.prototype.getSuperValue = function(){ return this.property; }; function SubType(){ this.subproperty = false; } //继承了SuperType SubType.prototype = new SuperType(); SubType.prototype.getSubV

javascript if条件判断方法小结_javascript技巧

条件语句用于基于不同的条件来执行不同的动作. 条件语句 通常在写代码时,您总是需要为不同的决定来执行不同的动作.您可以在代码中使用条件语句来完成该任务. 在 JavaScript 中,我们可使用以下条件语句: •if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码•if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码•if...else if....else 语句 - 使用该语句来选择多个代码块之一来执行•switch 语句 - 使用

javascript进行数组追加方法小结_javascript技巧

javascript中给数组加元素是一个非常简单的问题,javascript本身就提供了大量这类函数,我们可以使用js自带函数快速给数组增加元素了,本文就javascript进行数组追加的方法做出如下小结. 以前常用的是arr.concat(arr2)这种方法来追加数组,例子如下: 复制代码 代码如下: <script type="text/javascript">var arr = new Array(3);arr[0] = "测试数组1为 1";ar