JavaScript中数据类型转换
数据类型判断typeof
<script>
var a=1213;//number
var b="hello world";//string
var c=false;//boolean
var d;//undefined
var e=null;//NaN
var o={x:"1",y:"2"};//object
</script>
typeof返回的是一个操作符,可以判断一个值的类型。
用法
console.log(typeof a);
特别的,typeof中是函数function是返回的是function。
数字类型转换
**Number(value);**通过这个函数可以把其他的数据类型转换成数字类型。
如果是Boolean值,true和false将分别转换为1和0.
如果是数字值,只是简单的传入和返回。
如果是null返回的是0。
如果是undefined返回的是NaN。
如果是字符串则遵循一下规则:
如果字符串值包含数字(包括前面带正负号的情况),则会将其转换成十进制数值,即“1”变成1,“123”变成123,而“011”变成11(主要前面的0会被忽略)。
如果字符串包含浮点如”1.1“,则将其转换为对应的浮点数值。(同样的也会忽略前导的0)。
如果字符串包含16进制格式如”oxf",则将其转换为相同大小的十进制数字。
如果字符串是空,则转换为0.
如果字符串中包含除上述格式外,则将其转换为NaN。
parseInt()
Number()函数在转换字符串的比较复杂而且不够合理,因此在处理整数的时候更常用的是parseInt()函数 int是整数的意思。
它会忽略字符串前面的空格,直至找到第一个非空格字符,如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直至解析完所有后续字符或者遇见了一个非数字字符。
<script>
parseInt(" 123");//123
paeseInt("123a13");//123
parseInt("123 hello");//123
parseInt("h123");//NaN
parseInt("+123");//123
parseInt("!123");//NaN
parseInt("123.123");//123
</script>
注意“parseInt函数遇见小数或者字符串开头的话 只会截取整数部分。
字符类型转换toString
几乎每个值都有toString()方法,但是调用的方法不同。
1.数字.toString()来实现转化。
需要把数字存在一个变量中间,然后调用。
变量.toString()实现转化。
2.数组转换为字符串
数组转换为字符串的方法只需要一个个拆分出来研究即可。
[值1,值2,值3].toString();
1.值1->字符串
2.值2->字符串
3.值3->字符串
然后用,号把几个字符串连接起来
字符串1,字符串2,字符串3
镶嵌式数组:
如果是镶嵌式数组,即里面有几个小数组,那么先把小数组变成字符串,然后再来解析大数组。
[值0,[值1,值2,值3]].toString();其过程为下列7步
11.值1->字符串
2.值2->字符串
3.值3->字符串
4.[值1,值2,值3]->字符串1,字符串2,字符串3.
5.[值0,”字符串1,字符串2,字符串3“]
6值0->字符串0
7.字符串0,字符串1,字符串2,字符串3
如[[123],12,[456]]
先转换为[“1”,“2”,“3”,1,2,“4”,“5”,“6”]
然后转换为[“1”,“2”,“3”,“1”,“2”,“4”,“5”,“6”]
3对象转换为字符串
var o{x:1,r:1};
调用方法o.toString();结果应为“[object,object]”
4字符类型拓展之转义字符
布尔类型转换toString()
};
调用方法o.toString();结果应为“[object,object]”
4字符类型拓展之转义字符
[外链图片转存中…(img-vgoDMlEn-1589123363661)]