zoukankan      html  css  js  c++  java
  • 数据类型转换

    数据类型转换分为强制数据类型转换(显式转换)自动转换(隐式转换)

    (1)强制转换

    主要是使用Number、String和Boolean三个构造函数,手动将各种类型的值,转换成数字、字符串或者布尔值。

    Number()

    // 数值:转换后还是原来的值
    Number(324) // 324
    // 字符串:如果可以被解析为数值,则转换为相应的数值
    Number('324') // 324
    // 布尔值:true 转成1,false 转成0
    Number(true) // 1
    Number(false) // 0
    

    String()

    String(123) // "123"
    String('abc') // "abc"
    String(true) // "true"
    String(undefined) // "undefined"
    String(null) // "null"
    
    转换对象和数组
    String({a: 1}) // "[object Object]"
    String([1, 2, 3]) // "1,2,3"
    

    Boolean()

    除了以下六个值的转换结果为false,其他的值全部为true。

    undefined
    null
    -0
    0或+0
    NaN
    ''(空字符串)
    
    Boolean(undefined) // false
    Boolean(null) // false
    Boolean(0) // false
    Boolean(NaN) // false
    Boolean('') // false
    

    (2)自动转换

    遇到以下三种情况时,JavaScript会自动转换数据类型,即转换是自动完成的,对用户不可见。

    // 1. 不同类型的数据互相运算
    123 + 'abc' // "123abc"
    
    // 2. 对非布尔值类型的数据求布尔值
    if ('abc') {
      console.log('hello')
    }  // "hello"
    
    // 3. 对非数值类型的数据使用一元运算符(即“+”和“-”)
    + {foo: 'bar'} // NaN
    - [1, 2, 3] // NaN
    
  • 相关阅读:
    prim 堆优化+ kruskal 按秩优化
    poj 2679 Adventurous Driving(SPFA 负环)
    poj 1125 Stockbroker Grapevine (dij优化 0ms)
    codevs 4909 寂寞的堆(写的好丑0.0)
    noi 7221 拯救公主 (状态压缩+bfs)
    codevs2059逃出克隆岛(传送门bfs)
    HUD3336
    poj 3974 Palindrome
    疑难杂症
    正则表达 比较两个浮点数
  • 原文地址:https://www.cnblogs.com/YeChing/p/6296438.html
Copyright © 2011-2022 走看看