概述
隐式转换
无需程序员干预,js自动完成的类型转换。
隐式转换其实是一把双刃剑,如果利用好的话会减少很多代码量;但是在不需要的时候一定要记得进行强制转换,转成自己需要的类型,不然会出现许多莫名其妙的错误和操作。
运算符
算数运算
隐式转换:
- 默认转数字再计算。
- 在+运算中,只要有一个字符串,就都转为字符串,在拼接。
console.log("123"+456);//"123456"
console.log(123+456);//579
console.log(123+true);//124
console.log(123+"true");//"123true"
两个特殊的案例:
{}+[]=0
[]+{}="[object Object]"
%运算
- 被除数/除数,取除不尽的余数部分。
- 作用:
1.判断是否整除时。
2.限制某个值不超过上限。
5%4=1
4%5=4
4%4=0
++运算 - -运算
- 单独使用,放前面放后面都一样。
- 在表达式中:
1.无论前后,都会讲变量值+1或-1。
2.放前,返回新值。
3.放后,返回旧值。
var n=3;
console.log(n++ + ++n + n++);//13
console.log(n);//6
关系运算
作比较,做判断。
隐式转换:
- 默认都转数字,在比较。
- 如果两个都是字符串,则按位比较unicode号
console.log("a">"b");//false
/*先将字符串转为unicode号
"a".charCodeAt()=97
"b".charCodeAt()=98
*/
NaN
isNaN(num)
1.num是否是数字类型或能否被隐式转换转为数字类型。
2.如果num是数字,返回false.
3.如果num不是数字,返回true.
console.log(isNaN(123));//false
console.log(isNaN("qwer"));//true
null和undefined
必须用“===”来区分
1.类型相同,且值相同。
2.===不带隐式类型转换。
console.log(null==undefined);//true
console.log(null===undefined);//false
逻辑运算
根据多个关系运算的结果,综合得出的结论。
&&运算
- 两个条件都是true,结果才为true.
- 只要任意一个为false,结果为false.
- 短路:前一个为false,后一个不再执行。
||运算
- 只要任意一个为true,结果为true.
- 只有两个都为false时,结果才为false.
- 短路:只要前一个为true,后一个不再执行。
console.log(4&&5);//5
console.log(4||5);//4
console.log(0&&4);//0
console.log(4||0);//4
!运算
- 颠倒bool结果
- !!值,最快将任意值转成bool
console.log(!!2);//true
console.log(!!"string");//true
console.log(!!0);//false
位运算
>>
/2的n次方。
<<
*2的n次方。
>>>num(无符号右移num位)
多用取整(下取整)。
console.log(12.345>>>0);//12
console.log(12.95>>>0);//12
扩展赋值运算
+=,-=,*=,/=,%=
修改变量的值,在存回变量是使用。
i+=j;//相当于:i=i+j;
三目/三元/条件运算
根据不同条件,执行不同操作或返回不同值。
语法:
条件1?操作1或值1:
条件2?操作2或值2:
…?…:
默认操作或值;
特点:
- 默认操作不能省。
- 如果前一个条件已经满足,则不再向下判断,保证每次只有一个操作执行。
var weight=parseFloat(prompt("请输入体重:"));
var height=parseFloat(prompt("请输入身高:"));
var result=weight/(height*height);
result>25?console.log("胖"):
result<20?console.log("瘦"):
console.log("正常");
最后
以上就是大力大炮为你收集整理的JavaScript之数据类型转换——隐式转换与运算符的全部内容,希望文章能够帮你解决JavaScript之数据类型转换——隐式转换与运算符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复