数据类型的转换

数据类型的转换(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的!

posted @ 2023-11-08 14:32  葵qwq  阅读(49)  评论(0)    收藏  举报