JavaScript笔记day04

一、运算符

运算符也叫操作符:
通过运算符可以对一个或者多个值进行运算,并获取运算结果
比如:typeof就是运算符,可以用来获取一个值的类型,它会将该值的类型以字符串的形式返回
运算符都会返回一个结果的

在这里插入图片描述

1、算术运算符

当对非Number类型的值进行运算时,会将这些值转换为Number然后再进行运算,任何值和NaN运算都得NaN

“+”:可以对两个值进行加法运算,并返回结果,
如果对两个字符串进行加法运算,则会拼串,会将两个字符串拼接为一个字符串,并返回,
任何的值和字符串做加法运算,都会先转为字符串,然后再与字符串拼接,这是一个隐式的类型转换可用于强制转换中,
将数值转化为字符串可直接将该数值加上一个空字符串即可。
注意:
var a=1+2+"123";//"33"
var a="1"+2+3;//"123"

“-”:可以对两个值进行减法运算,并将结果返回
注意:
var a=100-"1";//99
var a=100-true;//99
var a=100-null;//100
var a=100-undefined;//NaN

“*”:可以对两个值进行乘法
注意:
var a=100*"1";//100
var a=100*true;//100
var a=100*null;//0
var a=100*undefined;//NaN

“/”:可以对两个值进行除法
注意:
var a=100/"1";//100
var a=100/true;//100
var a=100/null;//Infinity(有误除数不能为0)
var a=null/100;//0
var a=100/undefined;//NaN

任何值做“- * /”运算时都会自动转换为Number,可以利用这个做隐式的类型
转换分别通过一个值-0 *1 /1来将值转换为Number

“%”:取模运算,求余数

2、一元运算符

只需要一个操作数

对于非Number类型的值,它会先转换为Number,然后运算,可以对一个其他数据类型使用+,来将其转换为Number,

它的原理和Number()函数一样

“+”:正号,不会对数字产生任何影响
“-”:负号,可以对数字进行取反

3、自增自减

自增:++
通过自增可以使变量在自身的基础上增加1
对于一个变量自增以后,原变量的值会立即自增1
自增两种形式:++a ,a++
a++的值等于原变量的值(自增前的值)
++a的值等于原变量的值加1(自增后的值)


自减:--
通过自减可以使变量在自身的基础上减1
对于一个变量自减以后,原变量的值会立即自减1
自减两种形式:--a ,a--
a--的值等于原变量的值(自减前的值)
--a的值等于原变量的减1(自减后的值)

例子:
var w;
var a=20;
w=a++;
console.log(a);//21
console.log(w);//20

4、逻辑运算符

JS提供了三种逻辑运算符 与&& 或|| 非!

“!”:非
!可以用来对一个值进行非运算
所谓非运算就是对布尔值进行取反,true变false,false变true
如果对一个值进行两次取反,它不会变化
如果对非布尔值进行取反,则会将其转化为布尔值,然后再取反,可以利用这个将任意值转化为布尔值,
可以对任意一个值两次取反,来将其转化为布尔值,原理通Boolean()函数一样
例子:
var a=!!null;
var w=!!undefined;
var q=!!"";
console.log(a);//false
console.log(w);//false
console.log(q);//false

“&&”:与(属于短路与,只要第一个值为false则不会执行第二值)
可以对符号两侧的值进行与运算并返回结果
符号两边都是true返回true
符号两边只要有一边为false返回false

“||”:(属于短路非,只要第一个值为true则不会执行第二个值)
可以对符号两侧的值进行或运算并返回结果
符号一边是true返回true
符号两边都是为false返回false

对于非布尔值进行与或运算
会先将其转换为布尔值,然后再运算,并且返回原值
与运算:如果第一个值都是true,则返回第二个的值
	   如果第一个值都是false,则返回第一个的值
var a=1&&2;//a=2
var w=null&&NaN;//w=null

非运算:如果第一个值都是true,则返回第一个的值
	   如果第一个值都是false,则返回第二个的值
var a=1||null;//a=1
var w=null||1;//w=1

5、赋值运算符

"=":可以将符号右侧的值赋值给符号左侧的变量
"+=":等价于a+=b——>a=a+b
"-=":等价于a-=b——>a=a-b
"*=":等价于a*=b——>a=a*b
"/=":等价于a/=b——>a=a/b
"%=":等价于a%=b——>a=a%b

6、关系运算符

通过关系运算符可以比较两个值之间的大小,如果关系成立返回true,不成立返回false

>:大于号,判断左侧值是否大于右侧值
<:小于号,判断右侧值是否大于左侧值
>=大于等于号,判断左侧值是否大于或等于右侧值
<=小于等于号,判断右侧值是否大于或等于左侧值

注意:非数值情况,会将其转换为数字然后再比较,
如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而会比较字符之间的unicode码
任何值和NaN做任何比较都是false

在网页中使用Unicode编码时,“&#编码”;,这里编码需要的是10进制
例子:unicode 2620
console.log("\u2620");
<h1 style="font-size:200px;">&#9760;</h1>//网页写法

7、相等运算符

“==”:相等运算符用来比较两个值是否相等,如果相等返回true,否则返回false
当使用==来比较两个值时,如果值的类型不同,则会自动类型转换,将其转换为相同类型,然后比较

“!=”:不相等符号,如果不相等返回true,相等返回false
当使用!=来比较两个值时,如果值的类型不同,则会自动类型转换,将其转换为相同类型,然后比较

"===":全等,用来判断两个值是否全等,不会进行自动类型转换,如果两个值的类型不同直接返回false

全等,用来判断两个值是否不全等,不会进行自动类型转换,如果两个值的类型不同直接返回true

注意:
undefined衍生null所以这两个值做==运算会返回true
console.log(null==undefined);//true
console.log(null===undefined);//false

NaN不和任何值相等包括它本身
可以通过isNaN()函数判断一个数是否NaN,是返回true,否则false
console.log(NaN==NaN);//false
var a=NaN;
console.log(isNaN(a));//true

8、条件运算符/三元运算符

语法:条件表达式?语句1:语句2;
执行流程:
条件运算符在执行时,首先对条件表达式进行求值
	如果该值为true,则执行语句1,并返回执行结果
	如果该值为false,则执行语句2,并返回执行结果
var a=10;
var b=20;
console.log(a>b?a:b);//20

如果条件的表达式的求值不是说一个非布尔值,会将其先转为布尔值然后进行运算
console.log("hello"?a:b);//10

二、运算符优先级

从上往下优先级依次递减,如果优先级一样则从左往右运算
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

废材终结者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值