数据类型的转换
数据类型的转换(typeof)
1,转数值
*number(变量)
- 可以把一个变量强制转换成数值类型
- 可以转换小数,会保留小数
- 可以转换布尔值
- 遇到不可转换的都会返回(NaN)<not a number>
注意:NaN也属于数值类型
1,将数字字符串转换为数值类型
var a="100" var b=Number(a) console.log(a,b)
结果为:
(前面黑色的为字符串,后面蓝色的为数字)
2,将非数字字符串转换为数值类型
var a="abc"
var b=Number(a) console.log(a,b)
结果为:

此时他们的类型为:

故,可再次证明NaN属于数值类型!
3,将布尔类型转换为数值类型
注意:此时true代表 真的(1),false代表 假的(0)!
- true
var a=true
var b=Number(a) console.log(typeof a,b)
结果为:
- false
var a=false var b=Number(a) console.log(a,b)
结果为:

4,null转换为数值类型
var a=null var b=Number(a) console.log(a,b)
结果为:
由于null为空对象,故由发明者设置为0!
5,undefined转换为数值类型
var a=undefined // var a var b=Number(a) console.log(a,b)
结果为:
总结:number是非常严格,强制转换的一种方式
只可以把数字字符串转换为真正的数字!
注意:即使是数字后面带了一点非数字的也不行!
var a = "123aqz" var b = Number(a) console.log(a, b)
结果为:
*parseint
- 从第一位开始检查,是数字就会转换,直到遇到不是数字的内容
- 开头就不是数字,那么直接返回<Nan>
- 不认识小数点,只能保留整数
var a = "123aqz22" var b = parseInt(a) console.log(a, b)
结果为(1):
var a = "q22"
var b = parseInt(a) console.log(a, b)
结果为(2):

var a = "22.22aaa22" var b = parseInt(a) console.log(a, b)
结果为 (3) :

*parsefloat
- 从第一位开始检查,是数字就转换,直到遇到不是数字的内容
- 开头就不是数字,直接返回<NaN>
- 认识一次小数点
var a = "22.22aaa22.11" var b = parseFloat(a) console.log(a, b)
结果为:
![]()
*除了加法以外的数值运算(-0;*1;/1)
- 运算符两边都是可运算数字才行
- 如果运算符两边又一边不是可运算的数字,那么就会直接返回<Nan>
- 加法不可以用
var a = "100" var b = parseFloat(a/1) console.log(a, b)
结果为:

温情提示:黑色为字符串,蓝色为数字哦!
2,转字符串
*X.tostring()
- 有一些数据类型不能使用tostring的方法,如 underfined 和 null
var a = 100 var b = a.toString() console.log(a ,b)
结果为:

但若为undefined和null
var a var b = a.toString() console.log(a ,b)
var a =null var b = a.toString() console.log(a ,b)
则结果为:

*string
- 所有数据类型都可以
var a = 100 var b = String(a) console.log(typeof a ,typeof b)
结果为:

此时类型为:(蓝色为数值类型,红色为字符串)

*使用加法运算
- 在js里面,“+”有两个含义
- 只要“+”任意一边是字符串,就会进行字符串拼接
var a =100 var b = a+"" console.log(a ,b)
结果为:

注意:加法运算:只有“+“两边都是数字的时候,才会进行数字运算!
3,转布尔
*boolean
- 在js中,只有“”/‘’(单,双引号都行),0,null,undefined,NaN这些是false
- 其余都是true
var a =" " var b = Boolean(a) console.log(a ,b)
结果为:
这里有个小易错点哦:“”(无空格)才是false的
“ ”(有空格,即等于占据了一个字符,只不过是空白的)所以他是true的!
浙公网安备 33010602011771号