01 js数据类型转换

js数据类型转换

1.转换为字符串

  1. 显示(强制)类型转换:

    • 调用toString放法, (null, 与undefined, 没有toString放法)
    let a = 10
    console.log(typeof a, a) //number 10
    a = a.toString() 
    //`toString` 放法实际上是创建了一个新的字符串10, 因此需要重新赋值给a, 使a指向字符串10
    console.log(typeof a, a) //string 10
    
    • 调用String函数, (解决null, 与undefined, 对于有toString放法的基本数据类型, 实际上还是调用toString放法, 只是在String函数内部调用)
    let b = 33 //"33"
    b= null //"null"
    console.log(typeof b, b);
    b = String(b)
    //`toString` 函数实际上也是创建了一个新的字符串null, 因此需要重新赋值给b, 使b指向字符串null
    console.log(typeof b, b)
    
  2. 隐式类型转换:

    任意其他基本类型, 通过运算符 + 上一个空的字符串, 本质上还是调用toString方法

    let b
    b = 5 + "" //string 5
    b = true + "" //string true
    console.log(typeof b, b)
    

2.转换为Number

  1. 显示(强制)类型转换:

    • 调用Number函数:
    let b = "123" //123
    b = "1ab" //NaN
    b = null //0
    b = true //1
    b = false // 0
    console.log(typeof b, b);
    b = Number(b)
    console.log(typeof b, b)
    

    字符串: 合法数字(“123”)转换为对应的**Number, 不合法数字(“a4b1c3”)则转换为NaN, 空串或者空格转为0**

    布尔值: true转为**1, false转为0**

    null: --> 0, undefined: --> NaN, NaN: --> NaN

    • 针对字符串的两个函数:

      parseInt : 将一个字符串转为一个整数

      ​ ------解析时会自左向右读取一个字符串, 保留有效 整数位数字

      parseFloat: 将一个字符串转为浮点数

      ​ ------解析时会自左向右读取一个字符串, 保留有效 小数位数字

    let a = "a123" //NaN
    a = 315.14 //315
    a = "315.14ff48px" //315.14
    a = parseInt(a) 
    //也可以用来对Number类型进行取整(实际上是把Number转为String在转为Number),并不是最佳取整放法
    a = parseFloat(a)
    console.log(a, typeof a)
    
  2. 隐式转换:

    对非数值的基本类型, 进行一元运算, + 本质上还是调用Number函数

    let c = "10"
    c = +c //number 10
    c = +true //1
    console.log(typeof c, c)
    

3.转化为Boolean

  1. 显示(强制)类型转换:

    调用Blooean函数

    let b = 1 //true
    b = -1 //true
    b = 0 //false
    b = NaN //false
    b = Infinity //true
    b = Boolean(b)
    console.log(typeof b, b)
    

    Number: 0 和 NaN 转化为 false, 其他为true

    String: 空串 转为false, 其他为true

    Null: --> false, Undefined: --> false, false: --> false,

    对象: --> true

    所有表示空性的, 错误的, 没有的 都会转化为 false

  2. 隐式转换:

    对非布尔值的基本数据类型, 进行逻辑非运算, !, 本质上还是调用Boolean函数

    let a = NaN
    a = !a // Boolean true
    a = !!123 //Boolean true //取两次反, 保证123 为原本的 true
    console.log(typeof a, a); 
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值