JavaScript基础之运算符及全面的运算符优先级总结

算数运算符:

加+,减—,乘*,除/,求余%,加加++,减减——,

加减乘除求余运算与数学上的用法完全一样。

不过,加号+还有连接字符串的作用,其他运算符还可以将字符串数字转换成数值型,参见JavaScript中数据类型转换总结中的隐式转换部分。

++,——分为前置和后置,前置表示在使用该变量之前加/减1,后置表示在使用之后加/减1。

逻辑运算符:

1.&&:  与运算,  当与运算的两个内容都为true的时候,结果为true,只要有一个内容为false,结果都是false,&& 可以读作“并且”

2.||:   或运算,  当或运算的两个内容都为false的时候,结果为false,只要有一个内容为true,结果都是true,||  可以读作“或者”

3.!:    非运算,  取反运算,当内容为true时,取反结果为false,当内容为false时,取反结果为true

补充:

&&与||的其他用法

&&

如果两个操作数都不是布尔类型

且两个数值转换成布尔类型都是true,返回第二个操作数

如果有一个操作数转换成布尔类型是false,返回这个数

var b=undefined&&null

console.log(b);

返回undefined

||

如果两个操作数都不是布尔类型

第一个数转换成布尔类型为true,则不往下看,返回第一个数

如果第二个数转换成布尔类型为true,则返回第二个数值。

比较运算符:

>, <, >= ,<=, == ,!=,===,!==

>, <, >= ,<=和数学里表示的含义完全一样。下面四个运算符刚开始接触会有点迷惑。

== 相等操作符

如果两个操作数相等,则返回 true。

!= 不相等操作符

如果两个操作数不相等,则返回 true。

这两个操作符都会先转换操作数(通常称为强制转型),然后再比较它们的相等性。在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则:

1、 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false 转换为 0,而true 转换为 1;

2、如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;
3、 如果一个操作数是对象,另一个操作数不是,则调用对象的 valueOf()方法,用得到的基本类型值按照前面的规则进行比较;
这两个操作符在进行比较时则要遵循下列规则。
1、 null 和 undefined 是相等的。
2、 要比较相等性之前,不能将 null 和 undefined 转换成其他任何值。
3、 如果有一个操作数是 NaN,则相等操作符返回 false,而不相等操作符返回 true。重要提示:
即使两个操作数都是 NaN,相等操作符也返回 false;因为按照规则, NaN 不等于 NaN。
如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,
则相等操作符返回 true;否则,返回 false。

下表列出了一些特殊情况及比较结果:


表 达 式 值


表 达 式 值


null == undefined true
"NaN" == NaN false
5 == NaN false
NaN == NaN false
NaN != NaN true
false == 0 true


true == 1 true
true == 2 false
undefined == 0 false
null == 0 false
"5"==5 true

=== 全等操作符

在两个操作数未经转换就相等的情况下返回 true。即数值和类型都相同。

var result1 = ("55" == 55); //true,因为转换后相等
var result2 = ("55" === 55); //false,因为不同的数据类型不相等

!== 不全等操作符

在两个操作数未经转换就不相等的情况下返回 true。数据类型不同就不等。

var result1 = ("55" != 55); //false,因为转换后相等
var result2 = ("55" !== 55); //true,因为不同的数据类型不相等

赋值运算符:

=,+=,-=,*=,/=

简单的赋值操作符由等于号(=)表示,其作用就是把右侧的值赋给左侧的变量。

如果在等于号(=)前面再添加乘性操作符、加性操作符或位操作符,就可以完成复合赋值操作。

num = num + 10; 等同于num += 10;

设计这些操作符的主要目的就是简化赋值操作。使用它们不会带来任何性能的提升。

三元运算符:

? :

举个例子:

var max = (num1 > num2) ? num1 : num2;
在这个例子中, max 中将会保存一个最大的值。这个表达式的意思是:如果 num1 大于 num2(关系表达式返回 true),则将 num1 的值赋给 max;如果 num1 小于或等于 num2(关系表达式返回 false),则将 num2 的值赋给 max。

位运算符:

JavaScript也有位运算符,需要先转换成16进制数进行运算,在开发中好像还没有用到过,了解一下即可。

JavaScript中运算符优先级


优先级


运算类型


关联性


运算符


20


圆括号


n/a


( … )


19


成员访问


从左到右


… . …


需计算的成员访问


从左到右


… [ … ]


new (带参数列表)


n/a


new … ( … )


函数调用


从左到右


… ( … )


18


new (无参数列表)


从右到左


new …


17


后置递增(运算符在后)


n/a


… ++


后置递减(运算符在后)


n/a


… --


16


逻辑非


从右到左


! …


按位非


从右到左


~ …


一元加法


从右到左


+ …


一元减法


从右到左


- …


前置递增


从右到左


++ …


前置递减


从右到左


-- …


typeof


从右到左


typeof …


void


从右到左


void …


delete


从右到左


delete …


15



从右到左


… ** …


14


乘法


从左到右


… * …


除法


从左到右


… / …


取模


从左到右


… % …


13


加法


从左到右


… + …


减法


从左到右


… - …


12


按位左移


从左到右


… << …


按位右移


从左到右


… >> …


无符号右移


从左到右


… >>> …


11


小于


从左到右


… < …


小于等于


从左到右


… <= …


大于


从左到右


… > …


大于等于


从左到右


… >= …


in


从左到右


… in …


instanceof


从左到右


… instanceof …


10


等号


从左到右


… == …


非等号


从左到右


… != …


全等号


从左到右


… === …


非全等号


从左到右


… !== …


9


按位与


从左到右


… & …


8


按位异或


从左到右


… ^ …


7


按位或


从左到右


… | …


6


逻辑与


从左到右


… && …


5


逻辑或


从左到右


… || …


4


条件运算符


从右到左


… ? … : …


3


赋值


从右到左


… = …


… += …


… -= …


… *= …


… /= …


… %= …


… <<= …


… >>= …


… >>>= …


… &= …


… ^= …


… |= …


2


yield


从右到左


yield …


yield*


从右到左


yield* …


1


展开运算符


n/a


... …


0


逗号


从左到右


… , …

时间: 2024-10-12 12:45:39

JavaScript基础之运算符及全面的运算符优先级总结的相关文章

Javascript基础--运算符与表达式

一.运算符 1.运算符分类: 按功能:算术运算符:+.-.*./.%.++.-- 例:12+12-11+5*6+20/5+5%2+(5%-2)+(-5++2)+(a++)+(++a)+(--a)+(a--).注意取模运算符中返回结果值和第一个参数正负相关和第二个参数无关. 赋值运算符:= 字符串运算符:+.拼接运算符 逻辑运算符:&&(一非全非),||(一真全真全真) 关系运算符:>.>=.<.<=.==.!=.===.!== 逐位运算符: 其他运算符:条件运算符

Python基础之一:文件类型及运算符

一.PYTHON文件类型 1.源代码 Python源代码的文件以"py"为扩展名,由Python解释,不需要编译: 2.字节代码 Python源文件经编译后生成的扩展名为"pyc"的文件: 编译方法:     importpy_compile     py_compile.compile("hello world.py") 3.优化代码 经过优化的源文件,扩展名为".pyo"  python –O –m py_compile 

C++基础知识(四)—— 操作符/运算符

前面已经学习了变量和常量,我们可以开始对它们进行操作,这就要用到C++的操作符.有些语言,很多操作符都是一些关键字, 比如add, equals等等.C++的操作符主要是由符号组成的.这些符号不在字母表中,但是在所有键盘上都可以找到.这个特点使得C++程序更简洁,也更国际化.运算符是C++语言的基础,所以非常重要. 你不需要背下所有这一小节的内容,这些细节知识仅供你以后需要时参考 . 赋值Assignation (=) 赋值运算符的功能是将一个值赋给一个变量. a = 5; 将整数5赋给变量a.

JavaScript变量的声明和输出、运算符

一.JavaScript变量 1.变量,就是计算机中保存数据的容器 通过 var 关键字声明变量,就会在内存中开辟一块空间,来存数据 var n=500; //将500给到n alert(n); //通过变量名来找到存储的数据 关键字:编程语言定义好的,有特殊意义的单词    例如:不要写this.name.string.number等 标识符:变量名,不是关键字就是标识符,由字母数字下划线组成 不能数字开头 不能和关键字重名 二.常用的变量输出方法: alert("要输出的内容");

JavaScript运算符:递增递减运算符前置和后置的区别

从两段代码说起 var num1 = 2; var num2 = 20; var num3 = --num1 + num2; var num4 = num1 + num2; console.log(num1 +'-' + num2 +'-'+ num3 +'-' + num4) 将四个数分别打印是多少? var num1 = 2; var num2 = 20; var num3 = num1-- + num2; var num4 = num1 + num2; console.log(num1 +

最最最最最最最最基础的C---数据类型与运算符,三种基本结构,语句

算法处理的对象是数据,数据是以某种特定的形式存在的 数据类型 1字节(byte)=8位 基本数据类型: 整型  (short2字节, int 4字节, long 4字节) 浮点型(float 4字节.double 8字节,long double 16字节) 字符型(char 8字节) 布尔型(bool true(1)&flase(0)) 枚举类型(enum) 构造数据类型:数组类型,    结构体类型(struct)  共用体类型(union) 其他:        指针类型(*)    空类型

0505.Net基础班第三天(运算符)

1.类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换, 但是,如果两个类型的变量不兼容,比如 string与int或者string 与double, 这个时候我们可以使用一个叫做Convert的转换工厂进行转换. 注意:使用Convert进行类型转换,也需要满足一个条件: 面儿上必须要过的去. 2.算数运算符 ++:分为前++和后++,不管是前++还是后++,最终的结果都是给这个变量加一. 区别表现表达式当中,如果是前++,则先给这个变量自身加一,然后带着这个加一后的值去参与运算.

Java基础 - 第2天 Eclipse、运算符、Scanner类

第1章    Eclipse 1.1     Eclipse概述 l 概述 Eclipse是一个专门针对Java的集成开发工具(IDE),是IBM公司的产品.是免费.开源.由Java语言编写.所以,需要有JRE运行环境并配置好环境变量.它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是Eclipse进行开发. l 特点描述 n 免费 n 纯Java语言编写 n 免安装 n 扩展性强 l 下载和安装 n 下载 http://eclipse.org/ n 安装 绿色版 解压

js基础学习第三天 : 运算符

运算符:1.算数运算符:+ - * / %注意:只有+号可以进行拼串和运算,其他的运算符只有运算的功能 2.赋值运算符=就是赋值 3.自增自减运算符++num 前自增 先让值+1.在返回这值num++ 后自增 先返回这个值,再让值+1--num 前自减 先让值-1.在返回这值num-- 后自减 先返回这个值,再让值-1 4.逻辑运算符&& 并且 两边都要成立,结果才是true,只要有一个不成立,就是false|| 或者 两边只要有一个成立,就是true! 取反 5.比较运算符>,&l

Javascript.01 -- Javascript基础

Javascript基础 1 聊聊Javascript 1.1 Javascript的历史来源 94年网景公司   研发出世界上第一款浏览器. 95年 sun公司   java语言诞生 网景公司和sun合作. Java+script   ===> javascript 1.2 W3c规范 ?结构标准        html ?表现标准   css ?行为标准      js 1.3 JavaScript和ECMAScript的关系 ECMAScript是一种由Ecma国际前身为欧洲计算机制造商协