一、运算符
定义:运算符也叫做操作符,对两个值或多个值进行运算,并获取运算结果的符号或者函数。(例如:type of 就是一个运算符,通过它可以获取一个值的类型,并且已字符串的形式返回)
(一)算数运算符
注:当非Number类型进行算数运算时,先将其转换为Number类型再进行算数运算,NaN与任何数进行运算值都为NaN。
(1)+:对两个或者多个值进行相加,并返回结果
1. 如果两个值都为字符串,相加的结果就是字符串拼接。
2.任何数与字符串进行相加,都先将其转化为字符串再进行拼接。
result = true+1;//2
result = null+1;//1
result= "123"+1;//1231
result= true+"hello";//truehello
result=1+2+"3";//33
result="1"+2+3;//123
(2)-:对两个或者多个值进行相减,并返回结果
result=100-true;//99
result=100-"1";//99
(3)*:对两个或者多个值进行相乘,并返回结果
result=2*"6";//12
result=2*null;//0
result=2*undefined;//NaN
(4)/:对两个或者多个值进行相除,并返回结果
(5)%:对数值进行取模运算,并返回结果
result=9%3;//0
result=9%4;//1
(二)、算数运算衍生出来的强制类型转换。
衍生转换为Number的类型
1、变量-0可以转化为Number
2、变量*1可以转化为Number
3、变量/1可以转化为Number
(三)、一元运算符
(1)、+对于数值来说没有啥变化
(2)、-可以对数值进行取反
对于非number的值进行取反运算时,先将其转化为Number类型,对其进行取反,也可以通过+来进行转换类型其原理与Number()一样,该属于隐式转换
var result =1 + +"2" + 3;//6
(四)、自增自减运算
1、自增++
--使用自增可以使变量在自身的基础上增加1,对于一个变量自增以后,原变量的值会立即加1
--自增分为两种:后++(a++),前++(++a)
相同:无论时a++ 还是++a,都会使原变量的值加1
不同:a++和++a的值不同 a++的值等于原变量的值
++a得值等于新值
2、自减--
--使用自减可以使变量在自身的基础上减1,对于一个变量自减以后,原变量的值会立即减1
--自增分为两种:后--(a--),前--(--a)
相同:无论时a-- 还是--a,都会使原变量的值减1
不同:a--和--a的值不同 a--的值等于原变量的值
--a得值等于新值
(五)、逻辑运算符
JS中提供了三种逻辑运算符
!非
----!可以用来对一个值进行非运算(对布尔值进行取反操作)
----如果对非布尔值进行非运算,则将其转换成布尔值,然后再取反
所以我们可以利用该特点,来将一个其他的数值类型转化为boolean
可以为一个任意数据类型取两次反,来将其转化为布尔类型
原理Boolean()函数一样
&& 与
----&&可以对符号两侧的值进行与运算并返回结果
----运算规则:
两侧都为true运算结果为ture
只要有一个false运算结果就为false
----JS中的”与“属于短路与,
如果第一个为false则不会看第二个值
//var result=true && alert("我能出来吗");后边执行
//var result=false && alert("我能出来吗");后边不执行
|| 或
-----||可以对符号两侧的值进行与运算并返回结果
----运算规则:
两侧都为false运算结果为false
只要有一个true运算结果就为true
----JS中的”与“属于短路或,
如果第一个为true则不会看第二个值
非布尔类型的情况
&& ||---对于非布尔值进行与或运算时
会将其转化为布尔值,然后再运算,并且返回原值
---与运算
-如果第一个值为true,则必然返回第二个值
-如果第一个为false,则必然返回第一个值
---或运算
-如果第一个值为true,则必然返回第一个值
-如果第一个为false,则必然返回第二个值
//与运算:如果两个都为true,返回后边的值
var result=1 && 2;
//false&&true:如果有false则返回false
result=0 && 2;
result=2 && 0;
//false&&false 两个都为false,返回前边的值
result=NaN&&0;
result=0&&NaN;
(六)赋值运算
赋值运算符
=
可以将右侧值赋值给左侧变量
+=
a+=5相当于a=a+5
-=
a-=5相当于a=a-5
*=
a*=5相当于a=a*5
/=
a/=5相当于a=a/5
%=
a%=5相当于a=a%5
(七)关系运算符
通过关系运算符可以比较两个值之间的大小关系
如果关系成立他会返回true,如果关系不成立就返回false
>大于号
---判断符号左侧的值是否大于右侧的值
如果关系成立他会返回true,如果关系不成立就返回false
>=大于等于
---判断符号左侧的值是否大于或等于右侧的值
如果关系成立他会返回true,如果关系不成立就返回false
<小于号
---判断符号左侧的值是否小于右侧的值
如果关系成立他会返回true,如果关系不成立就返回false
<=小于等于
---判断符号左侧的值是否小于或等于右侧的值
如果关系成立他会返回true,如果关系不成立就返回false
非数值的类型
--对于非数值进行比较时,先将其转化为数字,再进行比较
--如果两侧都为字符串时,不会将其转换城数字进行比较
而会分别比较字符串中自符的unicode编码