原始值和数据类型的转换
JS的数据类型是可以相互转换的
一、toString()方法:能够把其他JS的数据类型转换成字符串;
例如:上面的图片显示的是数字类型转换成字符串类型的,显示的结果为字符串类型的数字。
上面的图片是各种类型转换成字符串类型的,依次为:布尔类型转换成字符串类型、普通对象转换成字符串类型、数组对象转换成字符串类型、函数对象转换成字符串类型。
null、undefined数据类型不能使用toString函数变成字符串,这个要特别注意。
二、Boolean()函数:能够把其他JS数据类型转换成布尔值;
只有 0、false、null、undefined、""、NaN,转换成布尔值都是false。
其他所有数据转换成布尔值都是true。
!(取反运算符):对布尔值取反,仅仅是对布尔值取反。
例如:
如果!后面跟的不是布尔值则将会进行隐式转换,步骤分为两步:
第一步:先把!后面的JS数据转换成布尔值;
第二步:再取反;
例如:
!0 --> !false --> true
!1 --> !true --> false
!!的作用和Boolean函数的作用是一样的 都是把JS的数据转换成布尔值
例如:
!!0 --> !true --> false
三、Number()函数:把其他类型数据转换成数字类型;
0 1 -1 1.0 0.5 NaN(not a number) 这些都是数字类型的
原始值转换成数字类型:字符串中只要含有非数字(除了数字 负号 和小数点之外的)在使用Number函数转成数字类型时都是NaN;
Number(’’) --> 0 (特例)
Number(’ ') --> 0 (特例,单引号里有空格)
布尔类型使用Number函数转换成数字类型
Number(true) --> 1
Number(false) --> 0
null类型使用Number函数转换成数字类型
Number(null) -> 0
undefined类型使用Number函数转换成数字类型
Number(undefined) -> NaN
引用值转换成数字类型:
引用值使用Number函数转换成数字类型有两步
1.先把引用值隐式转换成字符串
2.再把隐式转换好的字符串放到Number中
普通对象使用Number函数转换成数字类型
Number({}) --> Number("[object Object]") ====> NaN
数组对象使用Number函数转换成数字类型
Number([1]) --> Number(‘1’) ====> 1
Number([1,2,3]) --> Number(‘1,2,3’) ====> NaN (因为有逗号所以是NaN)
函数对象使用Number函数转换成数字类型
Number(function(){}) --> Number(‘function(){}’) =====> NaN
四、 isNaN函数
这个函数可以判断一个数字是不是NaN, 如果是 则结果true 反之 false。
如果用isNaN函数来判断其他JS的数据 则会分两步
1.先隐式转成数字
2.再把隐式转换好德1数字放到isNaN函数中
例如:
isNaN(true) --> isNaN(1) -->false
isNaN(function(){}) --> isNaN(NaN) --> true
isNaN([1,2]) --> isNaN(NaN) --> true
isNaN([1]) --> isNaN(1) --> false
isNaN(‘12.5px’) --> isNaN(NaN) --> true
isNaN(null) --> isNaN(0) --> false
isNaN(undefined) --> isNaN(NaN) --> true
五、parseInt()函数:从左向右提取数字,如果遇到数字之外(空格 小数点)的就会停止提取
例如:
六、 parseFloat函数:从左向右提取数字, 如果遇到数字和小数点之外(空格)的就会停止提取
例如: