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
posted @ 2021-12-27 19:38  贝可考拉  阅读(26)  评论(0编辑  收藏  举报