JavaScript学习记录六:数据类型的转换

一、什么是数据类型转换

使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变
量的数据类型。通俗来说,就是把一种数据类型的变量转换成另外一种数据类型。
我们通常会实现3种方式的转换:

  • 转换为字符串类型
  • 转换为数字型
  • 转换为布尔型

二、其他类型转换成字符串类型

方式说明例子
toString()转成字符串var num=1; alert(num.toString();
String()强制转换转成字符串var num=1; alert(String(num));
加号拼接字符串和字符串拼接的结果都是字符串var num=1; alert(num+“我是字符串”)
  • toString() 和 String() 使用方式不一样。
  • 三种转换方式,我们更喜欢用第三种加号拼接字符串转换方式, 这一种方式也称之为隐式转换。

三、其他类型转数字类型

方式说明例子
parselnt(string)函数将string类型转成浮点数数值型parselnt(78’)
parseFloat(string)函数将string类型转成浮点数数值型parseFloat(78.21’)
Number()强制转换函数将string类型转换为数值型Number('12)
js 隐式转换(-* /)利用算术运算隐式转换为数值型‘12’-0

注意

  • parseInt 和 parseFloat 单词的大小写,这2个是重点
  • 隐式转换是我们在进行算数运算的时候,JS 自动转换了数据类型

1.parseInt()转换

   var a = 1
    var b = '112'
    var c = '吮指原味鸡不要鸡腿'
    var d = ''
    var e = '112吮指原味鸡不要鸡腿'
    var f = '吮指原味鸡不要鸡腿112'
    var g = 'true'
    var h=  'false'
    var i = true
    var j = false
    var k = undefined
    var l =null
    var m = 1.123
    console.log(parseInt(a)) //1
    console.log(parseInt(b)) //112
    console.log(parseInt(c)) //NaN
    console.log(parseInt(d)) //NaN
    console.log(parseInt(e)) //112
    console.log(parseInt(f)) //NaN
    console.log(parseInt(g)) //NaN
    console.log(parseInt(h)) //NaN
    console.log(parseInt(i)) //NaN
    console.log(parseInt(k)) //NaN
    console.log(parseInt(l)) //NaN
    console.log(parseInt(m)) //1

parseInt()是将数据类型转换为数字类型,它是从左往右开始转换,知道遇到不是数字的字符。数字还是数字,但是小数类型的只去整数,它不能识别小数点,不能转为数字的字符都变成了NaN, not a number。
综上:只去字符串前缀是数字的部分。
2.parseFloat()转换

   var a = 1
    var b = '112'
    var c = '吮指原味鸡不要鸡腿'
    var d = ''
    var e = '112吮指原味鸡不要鸡腿'
    var f = '吮指原味鸡不要鸡腿112'
    var g = 'true'
    var h=  'false'
    var i = true
    var j = false
    var k = undefined
    var l = null
    var m = 1.123
    console.log(parseFloat(a))  //1
    console.log(parseFloat(b))  //112
    console.log(parseFloat(c))  //NaN
    console.log(parseFloat(d))  //NaN
    console.log(parseFloat(e))  //112
    console.log(parseFloat(f))  //NaN
    console.log(parseFloat(g))  //NaN
    console.log(parseFloat(h))  //NaN
    console.log(parseFloat(i))  //NaN
    console.log(parseFloat(k))  //NaN
    console.log(parseFloat(l))  //NaN
    console.log(parseFloat(m))  //1.123

综上,parseFloat和parseInt差不多,只是parseFloat能识别小数点。
3.Number转换

 var a = 1
    var c = '吮指原味鸡不要鸡腿'
    var d = ''
    var g = 'true'
    var h=  'false'
    var i = true
    var j = false
    var k = undefined
    var l =null
    var m = 1.123
    var n = {}
    var o ={name:"qq"}
    var p =[]
    var q = [1,3,4]
    var r = 0
    var s ='0'
    console.log(Number(a))//数字还是数字
    console.log(Number(c))//非空数字字符串变成了NaN
    console.log(Number(d))//空字符串是0
    console.log(Number(g))//NaN
    console.log(Number(h))//NaN
    console.log(Number(i))//true是1
    console.log(Number(j))//false是0
    console.log(Number(k))//undefined是NaN
    console.log(Number(l))//null是0
    console.log(Number(m))//小数还是原来的
    console.log(Number(n))//空对象是NaN
    console.log(Number(o))//非空对象是NaN
    console.log(Number(p))//空数组是0
    console.log(Number(q))//非空数组是NaN
    console.log(Number(r))//数字0是0
    console.log(Number(s))//字符串0是0

综上:数字类型的转换,还是原来的。非纯数字字符串转数字,都是NaN,数字类型的字符串会变成数字,true是1,false是0,null是0,undefined是NaN,引用类型中空数组是0,其他是NaN

四、其他类型转布尔类型

方式说明例子
Boolean()函数其他类型转布尔类型Boolean(‘true’)
  • 代表空、否定的值会被转换为 false ,如 ‘’、0、NaN、null、undefined
  • 其余值都会被转换为 true
    boolean转换
   var a = 1
    var c = '吮指原味鸡不要鸡腿'
    var d = ''
    var g = 'true'
    var h=  'false'
    var i = true
    var j = false
    var k = undefined
    var l =null
    var m = 1.123
    var n = {}
    var o ={name:"qq"}
    var p =[]
    var q = [1,3,4]
    var r = 0
    var s ='0'
    console.log(Boolean(a))//非0数字为true
    console.log(Boolean(c))//非空字符串为true
    console.log(Boolean(d))//空字符为false
    console.log(Boolean(g))//true字符串为true
    console.log(Boolean(h))//false字符串为true
    console.log(Boolean(i))//boolean类型的true就是true
    console.log(Boolean(j))//boolean类型的false就是false
    console.log(Boolean(k))//undefined就是false
    console.log(Boolean(l))//null就是false
    console.log(Boolean(m))//小数也是true
    console.log(Boolean(n))//空对象也为true
     console.log(Boolean(o))//不为空的对象是true
    console.log(Boolean(p))//空数组为true
    console.log(Boolean(q))//非空数组也为true
    console.log(Boolean(r))//数字0是false
    console.log(Boolean(s))//字符串0也是true
    console.log(Boolean(NaN)); // false

综上:在转boolean时,数字类型中,只有0是false,
字符串都是true,undefined是false,null也是false,引用类型都是true。
在判断语句中,都隐式的进行了一个boolean的转换。可以根据这个来看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值