JavaScript 数据类型详解 - 来自 javascript-tutorial 项目的核心知识

JavaScript 数据类型详解 - 来自 javascript-tutorial 项目的核心知识

en.javascript.info Modern JavaScript Tutorial en.javascript.info 项目地址: https://gitcode.com/gh_mirrors/en/en.javascript.info

数据类型概述

在 JavaScript 中,每个值都属于特定的数据类型。JavaScript 是一种动态类型语言,这意味着变量可以随时持有任何类型的值,而不需要在声明时指定其类型。这与静态类型语言(如 Java 或 C++)形成鲜明对比。

JavaScript 的八种基本数据类型

JavaScript 共有八种基本数据类型,可分为两大类:

原始类型(Primitive Types)

  1. Number - 用于整数和浮点数
  2. BigInt - 用于任意长度的整数
  3. String - 用于文本数据
  4. Boolean - 用于逻辑值 true/false
  5. Null - 表示"无"、"空"或"值未知"的特殊值
  6. Undefined - 表示"未赋值"的变量
  7. Symbol - 用于创建唯一的标识符

非原始类型(Non-Primitive Type)

  1. Object - 用于更复杂的数据结构

数字类型(Number)

JavaScript 中的数字类型既包含整数也包含浮点数:

let integer = 100;      // 整数
let float = 3.14159;    // 浮点数

特殊数值

数字类型包含几个特殊值:

  • Infinity-Infinity:表示数学上的无穷大
  • NaN(Not a Number):表示计算错误
console.log(1 / 0);          // Infinity
console.log("abc" / 2);      // NaN
console.log(NaN + 1);        // NaN(具有"传染性")

JavaScript 的数学运算非常安全,永远不会导致致命错误,最坏情况下只会得到 NaN。

大整数类型(BigInt)

当需要处理超出安全整数范围(±(2⁵³-1))的整数时,可以使用 BigInt:

const bigNumber = 1234567890123456789012345678901234567890n;
console.log(bigNumber * 2n);  // 使用n后缀表示BigInt

字符串类型(String)

JavaScript 中的字符串可以使用三种引号:

let single = '单引号';
let double = "双引号";
let backticks = `反引号`;

反引号允许嵌入表达式:

let name = "张三";
console.log(`你好,${name}!`);  // 输出:你好,张三!
console.log(`1加2等于${1 + 2}`); // 输出:1加2等于3

布尔类型(Boolean)

布尔类型只有两个值:truefalse,常用于逻辑判断:

let isAdult = true;
let isChild = false;
let result = 5 > 3;  // 比较运算返回布尔值
console.log(result);  // 输出:true

空值(Null)和未定义(Undefined)

  • null 表示"无"或"空"的明确赋值
  • undefined 表示变量已声明但未赋值
let age = null;      // 明确表示年龄未知
let height;          // 未赋值,默认为undefined

最佳实践是使用 null 表示有意为之的空值,而 undefined 保留给未初始化的变量。

对象(Object)和符号(Symbol)

对象用于存储复杂数据结构,符号用于创建唯一标识符:

let user = {          // 对象字面量
  name: "李四",
  age: 30
};

let id = Symbol("id"); // 创建唯一标识符

类型检测(typeof 运算符)

typeof 运算符用于检测变量类型:

typeof "hello"     // "string"
typeof 123         // "number"
typeof true        // "boolean"
typeof undefined   // "undefined"
typeof null        // "object"(历史遗留问题)
typeof {}          // "object"
typeof function(){} // "function"

注意 typeof null 返回 "object" 是 JavaScript 的已知错误,但为了兼容性一直保留。

数据类型总结

理解 JavaScript 的数据类型是掌握这门语言的基础。记住:

  1. 七种原始类型是不可变的,而对象是可变的
  2. 动态类型系统提供了灵活性但也需要注意类型转换
  3. typeof 是检查类型的有用工具,但对 null 和函数的检测有特殊情况

在后续学习中,我们会更深入地探讨每种数据类型及其特有的方法和行为。

en.javascript.info Modern JavaScript Tutorial en.javascript.info 项目地址: https://gitcode.com/gh_mirrors/en/en.javascript.info

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樊声嘉Jack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值