js类型实现
JavaScript 类型实现
JavaScript 是一种动态类型语言,变量的类型在运行时确定。以下是 JavaScript 中常见类型的实现方式:
基本类型
-
Number
用于表示数字,包括整数和浮点数。let num = 42; let float = 3.14; -
String
用于表示文本数据,可以用单引号、双引号或反引号定义。let str = "Hello"; let template = `World ${str}`; // 模板字符串 -
Boolean
表示逻辑值true或false。let isTrue = true; let isFalse = false; -
Undefined
表示变量未定义或未赋值。let x; console.log(x); // undefined -
Null
表示空值,通常用于显式清空变量。let empty = null; -
Symbol (ES6+)
表示唯一的标识符,通常用于对象属性的键。let sym = Symbol("unique");
引用类型
-
Object
用于存储键值对,是 JavaScript 中最复杂的数据结构。let obj = { key: "value" }; -
Array
用于存储有序的数据集合。let arr = [1, 2, 3]; -
Function
函数是一等公民,可以像变量一样传递。function greet() { return "Hello"; } let greet = () => "Hello"; // 箭头函数 -
Date
用于处理日期和时间。let now = new Date(); -
RegExp
用于正则表达式匹配。let regex = /abc/;
类型检测方法
-
typeof
检测基本类型(除null外)。typeof 42; // "number" typeof "hello"; // "string" typeof null; // "object" (历史遗留问题) -
instanceof
检测对象是否为某个构造函数的实例。[] instanceof Array; // true -
Object.prototype.toString
更精确的类型检测方法。Object.prototype.toString.call([]); // "[object Array]"
类型转换
-
隐式转换
JavaScript 在运算时会自动转换类型。"5" + 1; // "51" (字符串拼接) "5" - 1; // 4 (数字运算) -
显式转换
Number():转换为数字。String():转换为字符串。Boolean():转换为布尔值。Number("42"); // 42 String(42); // "42" Boolean(0); // false
ES6+ 新增类型
-
BigInt
用于表示任意精度的整数。let bigNum = 9007199254740991n; -
Map 和 Set
Map:键值对集合,键可以是任意类型。Set:唯一值的集合。let map = new Map(); map.set("key", "value");
let set = new Set(); set.add(1);

JavaScript 的类型系统灵活但容易引发问题,建议结合 TypeScript 或严格模式提升代码健壮性。






