深入学习JavaScript ——逻辑运算和隐式类型转换

JavaScript逻辑运算:

1. &&(与运算)

真真为真,一假则假。

&&运算的结果取决于最后判断停止处的数(表达式)的值:

比如1&&2,其第一个数的布尔值为true,判断继续往后进行遇到第二个数到达程序结尾,无论第二个数是真是假都会作为与运算的结果,这一点和C很不同:

其中包括第二个数是其他数据类型:

其他示例:

2.||(或运算)

一真必真,全假为假。

||运算的结果取决于最后判断停止处的数(表达式)的值,一遇到真立即返回不进行后续判断:

3.!(非运算)

将表达式值的布尔值取反:

4.~(按位取反)

~是一元运算符,用来对一个二进制数按位取反,即0变1,1变0:

解释:3=>(00000011)=>11111100(负数补码)=>(10000110)(取反加1)=>-4

5.&(按位与)

参与运算的两个数据,按二进制位进行“与”运算。

5&2=>(101&010)=>(000)=>0

作用:(1)清零;(2)取一个数中某些指定位;(3)保留指定位

运算符优先级:

优先级运算符顺序

1

小括号()--------
2一元运算符++  --  ! ~
3算术运算符先* / %后+ -
4关系运算符>     >=     <    <=
5相等运算符==   !=    ===   !==
6逻辑运算符先&& 后 ||  先&后|
7赋值运算符=
8逗号运算符,

注意:&&优先级比 || 优先级高  三目<||<<&&<!;

 

赋值运算符优先级问题:

|| 优先级 大于  =优先级 

|运算优先级小于+运算优先级

A?A:B <=>A||B;  A?B:A <=>A&&B

隐式类型转换:

两个感叹号强行转布尔值

转布尔(Boolean):

以下六种情况转布尔为假,其他都为真:

false

0

NAN

""  //空字符串

null

undefined

转数字:

转字符串(String):

布尔类型转字符串直接加引号:

数字转字符串直接加引号,特殊的表现形式不一样:

字符串的加减乘除操作:

数字加字符串都会转成字符串相加,其他运算会强行转成数字再运算。

对象转字符串,结果为[object Object]:

数组转字符串,去掉[]:

含有对象的数组转字符串:

对象转字符串实际上用的是对象自带的toString方法,(可以修改对象的toString方法证明),万物皆对象, 是对象就有toString方法。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值