我是靠谱客的博主 大力大炮,最近开发中收集的这篇文章主要介绍JavaScript之数据类型转换——隐式转换与运算符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

隐式转换

无需程序员干预,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之数据类型转换——隐式转换与运算符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部