每种编程语言都有自己的数据类型。
例如,“6”是一个数字,“Hello”是一个字符串,“function(){}”是一个函数。。
在将来创建具体程序时,例如执行处理数字的计算或创建具有某些函数的函数时,了解数据类型非常重要。
因此,这一次,我将以通俗易懂的方式解释 JavaScript 中处理的数据类型。
JavaScript 数据类型
JavaScript 中的数据类型大致可以分为两种类型:原始类型和对象类型。
原始类型具有单个不变的值,而对象类型具有多个变化的值。
任何不是原始类型的都是对象类型。
原始类型 | 对象类型 |
---|---|
有一个值 | 有多个值 |
值不变 | 值变化 |
示例:数字 10,字符串“你好” | 示例:数组中的 ['dog', 'cat', 'bird'] |
原始类型是不可变的数据类型
首先,您可能对基本体类型的值单一且不变化这一点抱有疑问。
例如,数值的“10”和“5”所具有的意思是一样的,“10+5”最终的结果是“15”。
换句话说,它是代表值本身的不可变数据类型。
let number1 = 10; let number2 = 5; console.log(number1 + number2); // 15 console.log(number1 === 10); // true console.log(number1 + number2 === 15); // true
以字符串为例,“Hello”和“Hello,”和“World”合并的“Hello,World”值不同。可以说始终具有单个值。
const sayhello1 = 'Hello'; const sayhello2 = 'Hello, ' + 'World'; console.log(sayhello1); // "Hello" console.log(sayhello2); // "Hello, World" console.log(sayhello1 === sayhello2); // false
对象类型是可变数据类型
那么一个对象类型有多个变化的值是什么意思呢?
例如,考虑一个具有多个字符串值的数组:“['dog', 'cat', 'bird']”。
如果要将'bird' 更改为'rabbit',则数组本身将通过交换数组的内容而改变。
因此,对象类型可以被识别为可变数据类型。
let pets = ['dog', 'cat', 'bird']; console.log(pets); // ["dog", "cat", "bird"] pets = ['dog', 'cat', 'rabbit']; console.log(pets); // ["dog", "cat", "rabbit"]
使用 typeof 运算符检查原始类型
有七种原始类型:
原始类型 | typeof | 特征 | 例子 |
---|---|---|---|
数字 | number | 整数或浮点数 | 5、3.14 |
字符串 | string | 多个字符的组合 | ‘Hello’ |
长整数 | bigint | 无法以数字方式处理的大整数 | 1n |
布尔值 | boolean | 判断真假 | true, false |
undefined | undefined | 表示值未定义 | undefined |
null | object | 表示值不存在 | null |
符号 | symbol | 表示独一无二的值 | Symbol() |
您可以使用 typeof 运算符检查值属于哪个类型。
typeof 要检查类型的值
如果您实际使用 typeof 运算符来检查每个原始值适用于哪种类型,您将得到以下结果。
// 数字 console.log(typeof 5); // "number" // 字符串 console.log(typeof 'Hello'); // "string" // 长整数 console.log(typeof 1n); // "bigint" // 真伪值 console.log(typeof true); // "boolean" console.log(typeof false); // "boolean" // undefined console.log(typeof undefined); // "undefined" // null console.log(typeof null); // "object" // 符号 console.log(typeof Symbol()); // "symbol"
使用typeof运算符检查对象类型
所有非原始类型都是对象类型。
因此,许多类型都属于对象类型。
以下是代表性的对象类型。
对象类型 | typeof | 特征 | 例子 |
---|---|---|---|
对象 | object | 将多个值作为属性管理 | [1, 2, 3] |
数组 | object | 将多个值作为列表进行管理 | {id:1, name: ‘zhangsan’} |
函数 | function | 将多个程序作为一个处理进行管理 | {id:1, name: ‘zhangsan’} |
日期 | object | 处理日期和时间 | new Date() |
可以使用 typeof 运算符获得这种类型的结果。
// 对象 console.log(typeof [1, 2, 3]); // "object" // 数组 console.log(typeof { id:1, name: 'ciyawang' }); // "object" // 函数 function saySomething() { console.log('hello'); } console.log(typeof saySomething); // "function" // 日期 console.log(typeof new Date()); // "object"
了解数据类型的理由
每种编程语言都有一个值类型,我们操纵各种值来进行特定的处理。
有些编程语言严格区分和表达数据类型。
与其他编程语言相比,JavaScript对数据类型更宽松。
例如,可以将数字“10”与字符串“10”视为相同的值,也可以将其区分开。
let number1 = 10; let number2 = '10'; // 将10和'10'视为相同 console.log(number1 == number2); // true // 区分10和'10' console.log(number1 === number2); // false
虽然JavaScript对数据类型宽松,但在进行开发时,如果没有意识到数据类型,也会引起意想不到的错误。
所以时刻保持对数据类型的理解和意识是很重要的。
结语
这一次,我们了解了 JavaScript 数据类型和 typeof 运算符。
首先,您应该记住“原始类型”,它可以说是 JavaScript 的基础知识,其余部分是“对象类型”。
也可以利用 typeof 运算符获取每种数据类型的结果。