首页 web前端 js教程 JavaScript中常用的运算符小结_javascript技巧

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

May 16, 2016 pm 05:56 PM
运算符

一、一元运算符
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页面中 Click Me
点击该链接,网页中的链接消失,显示"[object]" (IE中,火狐中显示"[object Window]",Google中还是该链接)。因为window.open()方法返回了对新打开的窗口的引用。然后该对象被转换成要显示的字符串。要避免这种结果,可以用 void 运算符调用 window.open() 函数:
Click Me
这使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;

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

c语言开根号运算符是什么 c语言开根号运算符是什么 Mar 06, 2023 pm 02:39 PM

在c语言中,没有开根号运算符,开根号使用的是内置函数“sqrt()”,使用语法“sqrt(数值x)”;例如“sqrt(4)”,就是对4进行平方根运算,结果为2。sqrt()是c语言内置的开根号运算函数,其运算结果是函数变量的算术平方根;该函数既不能运算负数值,也不能输出虚数结果。

Java中的%是什么意思 Java中的%是什么意思 Mar 06, 2023 pm 04:48 PM

在Java中,“%”是取余的意思,是一个二元算术运算符,可进行除法运算并获取余数,语法“操作数1 % 操作数2”。取余运算符“%”的操作数通常是正整数也可以是负数甚至是浮点数,如果负数参与此运算,则结果的正负取决于前面一个数是正数还是负数。

golang 报错:“invalid use of … operator” 如何解决? golang 报错:“invalid use of … operator” 如何解决? Jun 24, 2023 pm 05:54 PM

对于Golang开发者来说,“invaliduseof…operator”是一个常见的报错。这个报错通常会在使用变长参数函数时出现。它在编译时就会被检测出来,并指出哪些部分有问题。这篇文章将介绍如何解决这个报错。一、什么是变长参数函数变长参数函数也被称为可变参数函数,是Golang语言中的一种函数类型。使用变长参数函数可以像如下方式定义多个

php中“==”符号的含义是什么 php中“==”符号的含义是什么 Mar 14, 2023 pm 07:05 PM

在php中,“==”符号是一个比较运算符,可以比较两个操作数是否相等,语法“操作数1 == 操作数2”。“==”运算符会比较、并测试左边的变量(表达式或常量)是否与右边的变量(表达式或常量)具有相同的值;它只比较变量的值,而不是数据类型。如果两个值相同,则返回true值;如果两个值不相同,则返回false值。

php怎么判断两个数能否整除 php怎么判断两个数能否整除 Jan 10, 2023 pm 03:12 PM

在php中,可以使用“%”和“==”运算符来判断两个数能否整除;只需要使用“%”运算符将两个数相除获取余数,再使用“==”运算符判断获取的余数是否为0即可,语法“数1 % 数2 == 0”,如果为0则能整除,如果不为0则不能整除。

C语言中+=运算符的含义与用法解析 C语言中+=运算符的含义与用法解析 Apr 03, 2024 pm 02:27 PM

+=运算符用于将左操作数的值加上右操作数的值,并将结果赋值给左操作数,适用于数字类型且左操作数必须可写。

Python 语法的思维导图:深入理解代码结构 Python 语法的思维导图:深入理解代码结构 Feb 21, 2024 am 09:00 AM

python凭借其简单易读的语法,广泛应用于广泛的领域中。掌握Python语法的基础结构至关重要,既可以提高编程效率,又能深入理解代码的运作方式。为此,本文提供了一个全面的思维导图,详细阐述了Python语法的各个方面。变量和数据类型变量是Python中用于存储数据的容器。思维导图展示了常见的Python数据类型,包括整数、浮点数、字符串、布尔值和列表。每个数据类型都有其自身的特性和操作方法。运算符运算符用于对数据类型执行各种操作。思维导图涵盖了Python中的不同运算符类型,例如算术运算符、比

Python中的魔法方法 Python中的魔法方法 Apr 13, 2023 am 10:25 AM

python中的魔法方法是一些可以让你对类添加“魔法”的特殊方法,它们经常是两个下划线包围来命名的。Python的魔法方法,也称为dunder(双下划线)方法。大多数的时候,我们将它们用于简单的事情,例如构造函数(init)、字符串表示(str, repr)或算术运算符(add/mul)。其实还有许多你可能没有听说过的但是却很好用的方法,在这篇文章中,我们将整理这些魔法方法!迭代器的大小我们都知道__len__方法,可以用它在容器类上实现len()函数。但是,如果您想获取实现迭代器的类对象的长度

See all articles