0Pricing
Frontend Academy · 课时

数据类型:string、number、boolean、null、undefined

探索 JavaScript 的基本类型,使用 typeof 检查它们,并了解 null 与 undefined 的区别。

数据类型:string、number、boolean、null、undefined 是 CoddyKit 上的免费 Frontend Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Frontend Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Frontend Academy 课程共包含 4 节课。

JavaScript 的类型系统

JavaScript 是动态类型语言,变量没有类型,值才有类型。同一个变量可以先保存字符串,再保存数字,最后保存 null。理解七种原始类型可以避免大量错误。

字符串

字符串表示文本。您可以使用单引号、双引号或反引号(模板字面量)。字符串不可变,其方法会返回新的字符串。字符串具有 .length 属性和许多内置方法。

const greeting = 'Hello';
const lang = "JavaScript";
const sentence = `I love ${lang}`;  // template literal

console.log(greeting.length);   // 5
console.log('hello'.toUpperCase()); // 'HELLO'
console.log(' trim me '.trim()); // 'trim me'

数字

JavaScript 只有一种数字类型。所有数字(整数和浮点数)都是 64 位浮点数(IEEE 754)。这意味着 0.1 + 0.2 !== 0.3。特殊值包括 Infinity、-Infinity 和 NaN(非数字)。

const age = 30;
const price = 19.99;
console.log(0.1 + 0.2);          // 0.30000000000000004
console.log(typeof NaN);          // 'number'
console.log(isNaN('hello'));      // true
console.log(Number.isNaN('hello')); // false (safer check)

布尔值

布尔值是 true 或 false。它们用于条件判断和比较。JavaScript 中的每个值都有固有的真值性:假值包括 false、0、''、null、undefined 和 NaN。其他所有值都是真值。

const isActive = true;
const isAdmin = false;

// Falsy values:
if (0) { /* never runs */ }
if ('') { /* never runs */ }
if (null) { /* never runs */ }

空值

null 是一个被明确赋予的空值,表示“有意不设置值”。当您希望清空变量或表示缺少值时,请使用 null。typeof null === 'object' 是 JavaScript 中为保持向后兼容而保留下来的著名错误。

let selectedUser = null;  // no user selected yet
selectedUser = { name: 'Alice' };
selectedUser = null;       // cleared

未定义值

undefined 表示值尚未被赋予。已声明但未初始化的变量是 undefined。缺少的函数参数是 undefined。访问不存在的对象属性会返回 undefined。

let x;                       // undefined
function greet(name) {
  console.log(name);           // undefined if called as greet()
}
const obj = {};
console.log(obj.foo);         // undefined

空值与未定义值

null = 有意缺少的值。undefined = 尚未赋值。一般来说:让引擎设置 undefined;当您在自己的代码中表示“空”时,请明确使用 null。

typeof 运算符

请使用 typeof 在运行时检查值的类型。它会返回一个字符串:'string'、'number'、'boolean'、'undefined'、'object'、'function'、'bigint' 或 'symbol'。请记住:typeof null === 'object' 是一个已知错误。

typeof 'hello'     // 'string'
typeof 42          // 'number'
typeof true        // 'boolean'
typeof undefined   // 'undefined'
typeof null        // 'object' ← historical bug
typeof {}          // 'object'
typeof []          // 'object'
typeof function(){} // 'function'

Symbol 与 BigInt

Symbol:唯一且不可变的标识符,可用于不会发生冲突的对象属性键。BigInt:大于 Number.MAX_SAFE_INTEGER(2^53-1)的整数。可以使用 42n 或 BigInt(42) 创建。大多数前端开发并不需要它。

类型强制转换的陷阱

JavaScript 会在比较和运算中悄悄转换类型。请使用 ===(严格相等)而不是 ==(宽松相等),以避免类型强制转换带来的意外结果。

0 == false        // true (coercion)
0 === false       // false (strict, no coercion)
'' == false       // true
'5' == 5          // true
'5' === 5         // false ✓ use this

类型转换

请使用 Number()、String()、Boolean() 或 parseInt() / parseFloat() 明确转换类型。明确转换总是比依赖类型强制转换更清晰。

Number('42')      // 42
Number('')        // 0
Number('abc')     // NaN
String(42)        // '42'
Boolean(0)        // false
Boolean('hello')  // true
parseInt('10px')  // 10

快速检查

在 JavaScript 中,typeof null 会返回什么?

回顾:JavaScript 数据类型

七种原始类型:字符串、数字、布尔值、空值、未定义值、符号和大整数。请使用 typeof 检查类型。请使用 === 进行比较,以避免类型强制转换。请区分 null(有意为空)和 undefined(尚未设置)。其他所有值都是对象。

常见问题解答

「数据类型:string、number、boolean、null、undefined」课时是免费的吗?

是的 — 「数据类型:string、number、boolean、null、undefined」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Frontend Academy 课程的其余内容,请升级到 CoddyKit PRO。 Frontend Academy 课程共包含 4 节课。

「数据类型:string、number、boolean、null、undefined」这节课中我会学到什么?

探索 JavaScript 的基本类型,使用 typeof 检查它们,并了解 null 与 undefined 的区别。 你通过在浏览器中直接运行的动手代码来练习 Frontend Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Frontend Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Frontend Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「数据类型:string、number、boolean、null、undefined」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Frontend Academy 课中编写并运行代码吗?

能。每节 Frontend Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 变量:let、const、var 与作用域
  2. 数据类型:string、number、boolean、null、undefined
  3. 函数:声明、表达式与箭头函数
  4. 控制流:if、else、switch、for、while
← 返回 Frontend Academy