JavaScript中的运算符
来源:互联网 发布:数据报表分析 编辑:程序博客网 时间:2024/06/05 13:31
说明
JavaScript中的运算符,大多数是由标点符号表示的,比如“+”和“=”。而另外一些运算符则是由关键字表示的,比如delete和instanceof。关键字运算符合标点符号所表示的运算符一样都是正规的运算符。
运算符分类
- 算数运算符 +、 -、 *、 /、 %、++、 –
- 关系运算符 >、 <、 >、=、 <=、 ==、 ===、!=、!==、 in、 instanceof
- 逻辑运算符 &&、 ||、 !、
- 位运算符 &、 |、 ~、 ^、 <<、 >>、 >>>
- 赋值运算符 =、*=、/=、%=、+=、-=、&=、^=、|=、<<=、>>=、>>>=
- 条件(三目)运算符 ?:
- 特殊运算符 typeof、 void、 delete、,
算数运算
加(+)、减(-)、乘(*)、除(/)、求余(%)
var num1=10+1; //11var num2=10-2; //8var num3=10*3; //30var num4=10/5; //2var num5=10%5; //0
注意:
- -可以表示减号,也可以表示负号,
+可以表示加法,也可以用于字符串的连接,如果两端的操作数有一个是string类型,最终的操作就是连接
i++ //相当于 i = i + 1;
i- - //相当于 i = i - 1;
++:自增,在 自身数值 基础上只做+1操作
var a = 10;a++; //++在后,称为后缀//先使用 a 的值,然后再做自增运算console.log(a++); //10console.log(a);//11++a; //++在前,称为前缀//先做自增运算,然后再使用a的值var a = 10;console.log(++a);//11console.log(a);//11
- -:自减,在 自身数值 基础上只做-1操作
var a=10; a--; //先使用a的值,再自减--a; //先对a进行自减,然后再使用a的值
注意:
如果运算符两端的操作数不是number类型,会自动调用Number()进行转换,如果转换失败,结果就为 NaN
关系运算符
- 关系运算用于判断数据之间的大小关系“>”(大于),“<”(小于),“>=”(大于等于),“<=”(小于等于),“==”(等于),“===”(全等),“!=”(不等于),“!==”(不全等),in(测试属性是否存在),instanceof(测试对象类)
- 关系表达式的值为Boolean类型(“true”或“false”)
console.log(1>10); //falseconsole.log(1<10); //trueconsole.log(10>=10); //trueconsole.log(10<=9); //falseconsole.log(10==10); //trueconsole.log(10==='10'); //falseconsole.log(10!=10); //falsevar point = {x:1,y:1}; //定义一个对象"x" in point //true 对象有一个名为"x"的属性"z" in point //false 对象不存在一个名为"z"的属性var d = new Data(); //通过Data()构造函数来创建一个新对象d instanceof Data; //true,d是由Data()创建的d instanceof Object; //true,所有对象都是Object的实例d instanceof Number; //false d不是一个Number对象
注意:
- == : 判断 两个数据是否相等,相等的话,结果为 true,不等的话,结果为 false
===:全等,数值和数据类型必须都相等的时候,结果才为true,否则,结果就是false - 如果 关系运算符 两端的数据有一个是number 类型,有一个是非number类型,则会将 非number 类型的数据 转换为 number类型在比较,如果转换失败,结果为false。
- 只要NaN参与比较运算,结果永远是false
- 两个字符串 做 比较运算时,实际上比较的是每个位置字符的Unicode码
逻辑运算符
!:非,逻辑非
&&:与,逻辑与
||:或,逻辑或
逻辑运算符“&&”、“||”和“!”是对操作数进行布尔算术运算,经常和关系运算符一起配合使用。
条件1 && 条件2
当,条件1 结果为真
并且,条件2 结果为真
整个表达式的结果才为真 x == 0 && y == 0 //只有在x和y都是0的时候,才返回true
条件1 || 条件2
条件1 或 条件2
有一个为真的话
整个表达式的结果就为真 x == 0 && y == 0 //x和y只要有一个是0的时候,就返回true
!作用:对 现有条件结果 取反操作
非真即假
非假即真
语法:
var result=!条件;
位运算符
只针对number类型进行运算,先将数字转换为二进制数字,再进行运算
二进制:0,1组成,逢2进1
& 按位与:将两边的操作数转换成二进制,再将两个数字的二进制位进行对比,只有对应位结果都为1的时候,该位结果才为1,否则该位结果为0
ex :3 & 5 3 : 011 5 : 101 ============== 001
场合:判断一个数字的奇偶性,n & 1,如果结果为1,则为奇数,结果为0,则为偶数
ex : 7 & 17 : 1111 : 001============001 --奇数ex : 6 & 16 : 1101 : 001==============000 --偶数
| 按位或:两边数字转换成二进制,每位上的数字,只要有一个为1,那么整体结果就为1,否则为0
ex :1 | 31 : 013 : 11============11 --> 3场合:向下取整。任意数字 | 0ex : 3 | 03 : 110 : 00==============11 --> 3
^ 按位异或:比较二进制数字,对应位,只有一个1的时候,结果才为1,否则就是0
ex :3^53 : 0115 : 101===========110 --> 6场合:两个数字的互换var a = 3;var b = 5;a = a^b;a:3 : 011b:5 : 101================110 -> a = 6b = b^a;b:5 : 101a:6 : 110=================011 -> b=3a = a^b;a:6 : 110b:3 : 011=================101 -> a=5
<< 左移:将 二进制 数字向左移动几位
ex : 2<<1 42<<2 8
>> 右移:将二进制数字向右移动几位,左侧补0
5>>1 0000 0000 0000 0000 0000 0000 0000 0101 00000 0000 0000 0000 0000 0000 0000 010 结果 :25>>20000 0000 0000 0000 0000 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0001 结果 : 1
赋值运算符
=用于为变量赋值
var score = 90;
扩展赋值表达式
+=、 -=、*=、/=、%=
a += 3; //相当于a= a+3;a -= 3; //相当于a= a-3;a *= 3; //相当于a= a*3;a /= 3; //相当于a= a/3;a %= 3; //相当于a= a%3;
条件(三目)运算符
三目运算符:要求有3个操作数的运算符
语法
? :
表达式1(条件) ? 表达式2 : 表达式3;
表达式1 :是个boolean的条件
如果表达式1的值为true,则运行表达式2,并将其结果作为整个表达式的结果
如果表达式1的值为false,则运行表达式3,并将其结果作为整个表达式3的结果
特殊运算符
typeof 操作符用来检测变量的数据类型。
void,该操作符指定要计算一个表达式但是不返回值。
delete操作符通常用来删除对象的属性。
,逗号运算符是二元运算符,它的操作数可以是任意类型。它首先计算左操作数,然后计算右操作数,最后返回右操作数的值。
运算符优先级
+ +- --+~!deletetypeofvoid————————————————————————*、/、%————————————————————————+、-+————————————————————————<<>>>>>————————————————————————<、<=、>、>=<、<=、>、>=instanceofin————————————————————————==!====!==————————————————————————&^|&&||?:=*=、/=、%=、+=、-=、&=、^=、|=、<<=、>>=、>>>=————————————————————————,
前面的运算符优先级要高于后面的运算符优先级,被分割线分割开来的运算符有不同的优先级。
总结
运算符是JavaScript中基础的东西了,但涉及的东西也挺多,所以这篇文章中有一些地方没有非常详细的讲解,但大致是这些东西,希望大家对有点帮助。
- javascript中的运算符
- javascript中的运算符
- Javascript中的||运算符
- Javascript中的||运算符
- javascript中的||运算符
- javascript中的运算符
- JavaScript中的 '+' 运算符
- javascript中的运算符
- JavaScript中的运算符
- JavaScript中的运算符
- JavaScript中的运算符
- JavaScript中的运算符
- javascript中的+运算符
- JavaScript 中的运算符
- JavaScript中的typeof运算符
- JavaScript中的typeof运算符
- 关于JavaScript中的运算符
- javascript中的void运算符
- Java入门学习-学会try/catch/throw的用法。做出一个计算器除法功能,除以0时程序必须给出提示。
- 字符串匹配
- 大数据时代的小数字感:数据再有价值,别人听不懂照样没用
- Unity3DGame学习笔记(6):粒子系统
- 集合框架-统计字符串中每个字符出现的次数案例图解
- JavaScript中的运算符
- 1024: 求1+2!+3!+...+N!的和
- 五一假第三天
- 基于DSP28335的3KW单相光伏并网逆变实验台的搭建
- codeforces 798a Mike and palindrome 水题
- 第223讲:Spark Shuffle Pluggable框架ShuffleReader解析
- linux安装rz、sz上传下载文件工具
- qt5 使用oracle简单实例
- jsp页面使用EL表达式输出Java中的Date对象