返回

JavaScript:类型与值的本质

前端

类型:值的本质

类型是值的内部特征,它定义了值的行为,以使其区别于其他值。JavaScript 中的类型是动态的,这意味着一个变量可以存储不同类型的值。类型主要分为原始类型和引用类型。

  • 原始类型包括:

    • 字符串(String):由一串字符组成的值,用单引号或双引号括起来。
    • 数字(Number):可以是整数或浮点数,用数字表示。
    • 布尔值(Boolean):只有两种值:true 或 false。
    • 未定义(undefined):表示变量尚未赋值或已被删除。
    • 空(null):表示变量已被赋值为 null。
  • 引用类型包括:

    • 对象(Object):是一种可以存储其他值的复杂数据类型,用花括号括起来。
    • 数组(Array):一种有序的、可变长度的数据类型,用方括号括起来。
    • 函数(Function):一种包含可执行代码的特殊对象,用 function 定义。

值:数据的具体表现

值是数据的具体表现,它存储在变量中。变量是内存中的一块空间,用于存储值。变量可以通过赋值运算符(=)来给它赋值。例如:

let name = "John";
let age = 30;

在上面的代码中,name 和 age 是两个变量,它们分别存储着字符串值 "John" 和数字值 30。

类型转换:值的转换

类型转换是指将一种类型的值转换为另一种类型的值。JavaScript 中的类型转换分为隐式转换和显式转换。

  • 隐式转换:是由 JavaScript 引擎自动完成的,它允许将一种类型的值自动转换为另一种类型的值。例如:
let num = "10";
let sum = num + 10;

在上面的代码中,字符串值 "10" 被隐式转换为数字值 10,以便与数字值 10 进行相加运算。

  • 显式转换:需要使用特定的函数来完成,它允许将一种类型的值显式转换为另一种类型的值。例如:
let num = parseInt("10");
let sum = num + 10;

在上面的代码中,字符串值 "10" 被显式转换为数字值 10,以便与数字值 10 进行相加运算。

typeof运算符:查看值类型

typeof 运算符可以查看值的类型,它返回的是类型的字符串值。例如:

console.log(typeof "John"); // 输出:string
console.log(typeof 30); // 输出:number
console.log(typeof true); // 输出:boolean
console.log(typeof undefined); // 输出:undefined
console.log(typeof null); // 输出:object

注意:虽然 null 的类型是 object,但它是一个特殊的值,它表示变量已被赋值为 null。

函数:可调用的对象

函数实际上是 object 的一个"子类型"。具体的说,函数是"可调用对象",它有一个内部属性[[call]],该属性使其可以被调用。函数可以接收参数,并返回一个值。例如:

function sum(a, b) {
  return a + b;
}

let result = sum(10, 20);
console.log(result); // 输出:30

在上面的代码中,sum 是一个函数,它接收两个参数 a 和 b,并返回它们的和。

总结

JavaScript 中的类型和值是两个关键概念,它们共同构建了程序的基础。深入理解类型和值之间的关系,将帮助你编写出更加高效、健壮的代码。