我是靠谱客的博主 阔达芒果,最近开发中收集的这篇文章主要介绍JS的数据类型转换(显式转换和隐式转换)JS的数据类型:数据类型的显式和隐式转换:数据类型的隐式转换: NaN:,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
目录
JS的数据类型:
数据类型的显式转换:
1.转换为字符串类型:
2.转换为数值类型:
3.转换为布尔类型:
数据类型的隐式转换:
1.递增和递减运算符(++,--的前置和后置):
2.逻辑操作符(!、&&、||),即短路运算符;
3.关系操作符(< > >= <= == != === !==):
4.相等操作符(==和===):
NaN:
JS的数据类型:
- 基础类型:number,string(索引用[i],不能用索引进行修改字符串),boolean(只能全小写),undefined,null;
- 引用类型:object(用.keys()返回对象的键值,用这个方法也可以返回数组的索引数组),symbol,其中数组和函数是特殊的object。
数据类型的显式和隐式转换:
1.转换为字符串类型:
-
obj.toString() ???
-
String(obj):可以把undefined和null转为字符,但是方法1转不了
-
用+进行字符串拼接(隐式)
2.转换为数值类型:
-
Number(obj):可以将任何值转为数值,但是必须obj中全是数值。
-
parseInt(obj):转换字符串中的整数,到小数点或者字符串结束,如果字符串开头,就会变成NaN。
-
parseFloat(obj):转换字符串中的小数,到第二个小数点或字符串结束。
-
用+,-,-0运算转换:如+str,-str,str-0将字符串转为数值(隐式),做Number()操作
3.转换为布尔类型:
-
Boolean(obj);
-
!!obj(隐式)
(除空字符串,null,undefined,NaN,0会被转为false,其他都会被转成true。)
数据类型的隐式转换:
1.递增和递减运算符(++,--的前置和后置,做Number()操作):
- 如果是数字字符串(整数或者浮点数),则会用 number()方法 将字符串转为数值,再进行加减操作,返回number类型的值;
- 如果是包含其他字符的字符串,则返回NaN;
- 如果是布尔值,则会把true或false转为1或者0,再进行加减操作,返回number类型的值;
- 如果是null类型,则会把null转换为0,再进行加减操作,返回number类型的值;
- 如果是undefined,则会把undefined转为NaN,再进行加减操作,返回number类型的值;
- 如果是对象,则先会通过对象的valueof(),进行转换,如果返回的是NaN,调用toString()方法,返回number类型的值。
2.逻辑操作符(!、&&、||),即短路运算符;
- 逻辑非(!)操作符:首先会通过Boolean()函数将其操作值转为布尔值,再求反;
- 短路与(&&)操作符:第一个值为真,返回第二个操作值;
- 短路或(||)操作符:第一个值为假,返回第二个操作值。
3.关系操作符(< > >= <= == != === !==):
- 两个数值直接比大小;
- 两个都是字符串,则进行unicode编码比较;
- 一个是数值,另一个值转换为数值进行比较;
- 一个是对象,则调用对象的valueof()和toSring()方法,再进行上述比较;
- 一个操作是布尔值,则将布尔值转换为数值再进行比较,true返回1和false返回0;
- 要比较相等性之前,不能将 null 和 undefined 转换成其他任何值。
4.相等操作符(==和===):
- 一个是数值,另一个值转换为数值进行比较;
- null和undefined用==比较是相等的,但用===比较不相等。
NaN:
NaN做任何计算都是NaN;NaN与任何类型数据比较都会返回false。
最后
以上就是阔达芒果为你收集整理的JS的数据类型转换(显式转换和隐式转换)JS的数据类型:数据类型的显式和隐式转换:数据类型的隐式转换: NaN:的全部内容,希望文章能够帮你解决JS的数据类型转换(显式转换和隐式转换)JS的数据类型:数据类型的显式和隐式转换:数据类型的隐式转换: NaN:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复