• js数据类型


    类型清单

    类型判断

    • typeof运算符
    console.log(typeof(1.1)) // number 有效
    console.log(typeof('')) // string 有效
    console.log(typeof(true)) // boolean 有效
    console.log(typeof(Symbol())) // symbol 有效
    console.log(typeof(undefined)) // undefined 有效
    console.log(typeof(null)) // object 无效
    console.log(typeof(function(){})) // function 有效
    console.log(typeof([])) // object 无效
    
    • toString原型方法
    console.log(Object.prototype.toString.call(1)) // [object Number]
    console.log(Object.prototype.toString.call(''))   // [object String]
    console.log(Object.prototype.toString.call(true)) // [object Boolean]
    console.log(Object.prototype.toString.call(Symbol())) //[object Symbol]
    console.log(Object.prototype.toString.call(undefined)) // [object Undefined]
    console.log(Object.prototype.toString.call(null)) // [object Null]
    console.log(Object.prototype.toString.call(new Function())) // [object Function]
    console.log(Object.prototype.toString.call(new Date())) // [object Date]
    console.log(Object.prototype.toString.call([])) // [object Array]
    console.log(Object.prototype.toString.call(new RegExp())) // [object RegExp]
    console.log(Object.prototype.toString.call(new Error())) // [object Error]
    console.log(Object.prototype.toString.call(document)) // [object HTMLDocument]
    console.log(Object.prototype.toString.call(window)) //[object global] window 是全局对象 global 的引用
    

    类型转换

    两种方法:构造函数强制转换、原型方法转换

    转【数字】

    // 转【数字】
    console.log('【字符串】转【数字】', Number('123')) // 整型,构造函数法
    console.log('【字符串】转【数字】', Number.parseInt('123')) // 整型,Number原型方法转换,可缩写为parseInt('123')
    console.log('【字符串】转【数字】', Number('123.45')) // 浮点型,构造函数强制转换
    console.log('【字符串】转【数字】', parseFloat('123.45')) // 浮点型,原型方法转换
    console.log('【字符串】转【数字】', Number('123 45')) // NaN,不是数字
    console.log('【布尔】转【数字】', Number(false)) // 0
    console.log('【布尔】转【数字】', Number(true)) // 1
    console.log('【未定义】转【数字】', Number(undefined)) // NaN
    console.log('【空】转【数字】', Number(null)) // 0
    console.log('【对象】转【数字】', Number({})) // NaN
    console.log('【对象】转【数字】', Number({ id: '1' })) // NaN
    console.log('【数组】转【数字】', Number([])) // 0
    console.log('【数组】转【数字】', Number([12])) // 12
    console.log('【数组】转【数字】', Number([1, 2])) // NaN
    console.log('【函数】转【数字】', Number(function () { })) // NaN
    console.log('【日期】转【数字】', Number(new Date())) // 时间戳
    

    转【字符串】

    // 转【字符串】
    console.log('【数字】转【字符串】', String(123))
    console.log('【数字】转【字符串】', (123).toString())
    console.log('【数字】转【字符串】', String(123.45))
    console.log('【数字】转【字符串】', (123.45).toString())
    console.log('【布尔】转【字符串】', String(true))
    console.log('【布尔】转【字符串】', (false).toString())
    console.log('【未定义】转【字符串】', String(undefined)) // undefined
    // console.log('【未定义】转【字符串】', (undefined).toString()) // 报错
    console.log('【空】转【字符串】', String(null)) // null
    console.log('【对象】转【字符串】', String({})) // [object Object]
    console.log('【对象】转【字符串】', String({ id: '1' })) // [object Object],无效
    console.log('【对象】转【字符串】', JSON.stringify({ id: '1' })) // { id: '1' },有效
    console.log('【数组】转【字符串】', String([])) // 空字符串
    console.log('【数组】转【字符串】', String([1])) // 1
    console.log('【数组】转【字符串】', String([1, 2])) // 1,2
    console.log('【函数】转【字符串】', String(function () { return 'hello world' })) // function () { return 'hello world' }
    console.log('【日期】转【字符串】', String(new Date())) // Fri Aug 06 2021 16:45:00 GMT+0800 (中国标准时间)
    

    转【布尔】

    // 转【布尔】
    console.log('【数字】转【布尔】', Boolean(0)) // false
    console.log('【数字】转【布尔】', !!1) // true
    console.log('【字符串】转【布尔】', !!'') // false
    console.log('【字符串】转【布尔】', !!'string') // true
    console.log('【未定义】转【布尔】', !!undefined) // false
    console.log('【空】转【布尔】', !!null) // false
    console.log('【对象】转【布尔】', Boolean({})) // true,无效
    console.log('【数组】转【布尔】', !![]) // true,无效
    console.log('【函数】转【布尔】', !!(function (){})) // true,无效
    console.log('【日期】转【布尔】', !!(new Date())) // true
    


    • 创建时间: 2021.07.06.2_11.02
    • 更新时间: 2021.08.09.1_10.20
    • 当前版本: v1.0
    • 版权作者: 贝可考拉
    • 标签分类: #编程开发 #web #JavaScript #JS
    • 索引编号: 346
  • 相关阅读:
    MFC菜单、工具栏和状态栏
    MFC控件
    MFC对话框
    MFC消息映射机制
    性能优化可使用的工具
    常见的内存问题分析思路
    k8s之Probe
    docker swarm
    keepalived配置虚拟ip(vip)实现双机热备以及自动切换主备
    linux安装openjdk1.8
  • 原文地址:https://www.cnblogs.com/koalamini/p/15737567.html
Copyright © 2020-2023  润新知