javaScript数据类型(基本类型、引用类型、如何检查类型)

下面介绍JavaScript可以使用的类型。包括“数据类型确认方法”、“类型转换”、“真伪值判定”。

基本类型|存储值

基本类型和包装对象

作为基本类型的数字字符串类型真伪类型在使用时会临时生成包装对象。

“包装对象”提供了“对象”方法。

包装对象的生成是自动进行的,所以开发人员不需要意识到。

数字类型

let number1 = 123
let number2 = 1.5

临时生成一个包装器对象,可以用作对象(数字)。

字符串类型

let string = '你好啊'

console.log(string.slice(1, 3))  // 好啊
console.log(string.length)       // 3

包装对象是临时创建的,可以用作对象(字符串)。

布尔类型

let boolean = true

包装器对象是临时生成的,可以用作对象(布尔值)。

无效的

当您想故意将其留空时使用它。

let nullVar = null

不明确的

它处于未定义状态。

// 尚未定义undefinedVar变量
console.log(typeof undefinedVar)    // undefined

undefined有无的判断如下:

if (typeof x === 'undefined') {}

符号

在 ES2015 中添加。

let symbol1 = Symbol('xxx')
let symbol2 = Symbol('xxx')

console.log(symbol1 === symbol2)  // false
console.log(symbol1 === symbol1)  // true

使用===运算符时,如果不是相同的符号,则不为真。

使用示例

const MAN = 0
const WOMAN = 1

console.log(MAN === MAN)  // true
console.log(MAN === 0)    // true

到现在为止,MAN === 0我已经能够做出判断的过程了。

通过使用如下所示的符号,将无法描述降低可读性的处理。

const MAN = Symbol()
const WOMAN = Symbol()

console.log(MAN === MAN)   // true
console.log(MAN === WOMAN) // false

引用类型|存储地址

数组

let array = [1, 2, 3]

console.log(array.length)  // 3

console.log(array.reduce((x, y) => {
  return x + y
}))  // 6

对象(关联数组)

在JavaScript中,对象与关联数组相同。

let object = {'key1': 'value1', 'key2': 'value2'}

console.log(object.key1)     // value1
console.log(object['key2'])  // value2

要用变量指定键,请执行以下操作:

let key = 'aaaaa'
let object2 = {[key]: 'xxxxx'}

console.log(object2[key])  // xxxxx

多维关联数组需要检查属性:

javaScript数据类型(基本类型、引用类型、如何检查类型)

let object = {
  'key1': {
  	'key1_1' : 'xxxx'
  }
}

console.log(object.key1 && object.key1.key1_1)  // xxxx

//不检查key2,key1_1调用时,会出现以下错误。
// Uncaught TypeError: Cannot read property 'key1_1' of undefined
// 
// console.log(object.key2.key1_1)

//如下所示,需要检查key2。
console.log(object.key2 && object.key2.key1_1)  // undefined

函数

let func = function (x, y) {
  return x + y
}
console.log(func(2, 5))  // 7

let func2 = (x, y) => {
  return x + y
}
console.log(func2(2, 5))  // 7

数据类型的确认方法

要确认数据类型,请使用typeof

let string = '你好啊'
let number = 123
let boolean = true
let nullVar = null
let array = ['apple', 'orange']
let object = {'key1': 'value1', 'key2': 'value2'}
let func = function () {}

console.log(typeof string)          // string
console.log(typeof number)          // number
console.log(typeof boolean)         // boolean
console.log(typeof nullVar)         // object
console.log(typeof undefinedVar)    // undefined
console.log(typeof array)           // object
console.log(array instanceof Array) // true
console.log(typeof object)          // object
console.log(typeof func)            // function

类型转换

// 将字符串转换为数字
console.log(Number('1234'))   // 1234

// 将数字转换为字符串
console.log(String(1234))     // '1234'

// 转换为真伪类型
console.log(Boolean(1234))    // true
console.log(Boolean('1234'))  // true

真伪值判定

// 以下都是假的
console.log(undefined ? 1 : 0)  // 0
console.log(null ? 1 : 0)       // 0
console.log(false ? 1 : 0)      // 0
console.log(0 ? 1 : 0)          // 0
console.log(NaN ? 1 : 0)        // 0
console.log('' ? 1 : 0)         // 0

// 以下全部为真
console.log(true ? 1 : 0)           // 1
console.log(111 ? 1 : 0)            // 1
console.log('aaa' ? 1 : 0)          // 1
console.log([] ? 1 : 0)             // 1
console.log({} ? 1 : 0)             // 1
console.log(function () {} ? 1 : 0) // 1

本文来源:词雅网

本文地址:https://www.ciyawang.com/js-72.html

本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。

相关推荐