JavaScript入门必学清单:变量、数据类型与函数基础

作者:代码拾荒

时间:2026-10-30

浏览:258

针对JavaScript初学者的核心清单,系统解析变量声明声明方式(var/let/const)、核心数据类型划分与内存机制,以及函数的定义、传参和返回值应用。

文章目录

掌握 JavaScript 的核心路径在于夯实基础概念:变量负责在内存中开辟空间存储信息,数据类型决定了数据在内存中的存储机制与支持的操作,而函数则是组织与重用逻辑的执行单元。本文梳理了初学阶段必须掌握的变量声明、类型特性与函数应用规范,帮助你建立稳固的代码心智模型。

JavaScript入门必学清单:变量、数据类型与函数基础
图1:JavaScript 核心三要素运行与交互关系

一、变量:如何声明与管理数据容器

在编写程序时,计算机需要把计算所需的数据保存在内存中,变量就是这块内存空间的别名。通过变量名,我们可以方便地读取或更新该空间中的数据。

1. 声明关键字:var、let 与 const

现代 JavaScript(ES6及之后)提供了三种声明变量的关键字,它们的行为差异主要体现在作用域与可变性:

  • const(常量声明):用于声明不需要重新赋值的标识符。声明时必须立即赋初值,之后不能重新赋值。
  • let(变量声明):声明拥有块级作用域的变量,允许在后续逻辑中重新赋予不同的值。
  • var(早期语法):拥有函数作用域且存在变量提升现象。在现代工程中已不再推荐使用,但仍需理解其历史代码表现。
// 推荐实践:默认优先使用 const
const maxScore = 100;
// maxScore = 120; // 错误:TypeError: Assignment to constant variable.

// 需要重赋值时使用 let
let currentRound = 1;
currentRound = 2; // 正确:重新赋值为 2

// 声明但未初始化的 let 变量,其默认值为 undefined
let userChoice;
console.log(userChoice); // 输出: undefined

2. 变量提升与暂时性死区(TDZ)

使用 var 声明的变量,其声明语句会被隐式提升到当前函数作用域的顶部,且初始值为 undefined;而 let 和 const 虽然也会被提升,但在实际声明语句执行前,变量处于“暂时性死区”(Temporal Dead Zone),提前访问会直接抛出 ReferenceError。

避坑指南:在现代编程规范中,请遵循“优先使用 const,仅在变量确需重新赋值时使用 let,彻底弃用 var”的基本原则,这能消除大多数变量提升引起的作用域污染问题。

二、数据类型:理解值的存储与分类机制

JavaScript 是一种动态类型语言,变量本身没有固定类型,其类型由当前保存的具体数据决定。JavaScript 中的数据类型分为两大类别:原始类型(Primitive Types) 与 引用类型(Reference Types)。

JavaScript入门必学清单:变量、数据类型与函数基础
图2:栈内存中的原始值与指向堆内存的引用指针

1. 常见原始类型(Primitive Types)

原始类型直接按值存储在栈内存中,值本身不可被修改(只能替换)。常见的基础原始类型包括:

  • Number:所有整数和浮点数值,如 42、3.14。特殊值包含 NaN(不是数字)和 Infinity。
  • String:字符序列,使用单引号 ''、双引号 "" 或反引号模板字符串 `` 包含。
  • Boolean:仅包含 true 和 false 两个布尔状态。
  • Undefined:变量已声明但未赋值时的初始状态。
  • Null:表示“空值”或“无对象”,常用于主动重置对象引用。

2. 引用类型(Reference Types)

引用类型主要指 Object(对象),包括普通对象 { }、数组 [ ] 以及函数。栈内存中仅保存指向堆内存的物理地址引用。

// 原始类型的赋值:完全复制值独立存在
let num1 = 10;
let num2 = num1;
num2 = 20;
console.log(num1); // 输出: 10 (原值不变)

// 引用类型的赋值:复制的是内存指针
const userA = { name: "Tom" };
const userB = userA;
userB.name = "Jerry";
console.log(userA.name); // 输出: "Jerry" (两者指向同一堆内存空间)

3. 类型判断的准确方式

使用 typeof 操作符可以方便地判断基本类型,但对于 null 和数组需要特别注意:

typeof 42;          // "number"
typeof "hello";     // "string"
typeof true;        // "boolean"
typeof undefined;   // "undefined"
typeof null;        // "object" (历史遗留 Bug,并非真正对象)
typeof [1, 2, 3];   // "object" (数组也是对象)
Array.isArray([1]); // true (判断数组的标准方法)

三、函数:定义、传参与调用流程

函数是将可重复执行的代码块打包并命名的工具。它接收外界传入的参数,执行内部计算,并返回最终结果。

JavaScript入门必学清单:变量、数据类型与函数基础
图3:JavaScript 函数执行时序与数据流转步骤

1. 函数的常见定义方式

在 JavaScript 中,函数主要有以下两种主流定义形态:

  • 函数声明(Function Declaration):具有声明提升特性,可在声明前直接调用。
  • 箭头函数(Arrow Function):ES6 引入的紧凑语法,不绑定独立的 this,适合作为回调函数使用。
// 方式一:传统函数声明
function add(x, y) {
  return x + y;
}

// 方式二:箭头函数表达式
const multiply = (x, y) => {
  return x * y;
};

// 简洁箭头函数:单行表达式可省略花括号和 return 关键字
const square = n => n * n;

console.log(add(3, 5));       // 输出: 8
console.log(multiply(4, 2));  // 输出: 8
console.log(square(6));        // 输出: 36

2. 参数默认值与返回值

若调用函数时没有提供足够的参数,未传递的形参值默认为 undefined。为了提高健壮性,建议使用参数默认值语法。若函数没有写 return 语句,则默认返回 undefined。

function greet(name = "访客") {
  return "你好," + name;
}

console.log(greet());        // 输出: "你好,访客"
console.log(greet("小明"));  // 输出: "你好,小明"

四、清单总结与入门避坑准则

初学阶段的语法规范将直接决定后续代码的调试成本。将变量规范、类型边界和函数封装结合在一起,形成严谨的代码编写习惯。

JavaScript入门必学清单:变量、数据类型与函数基础
图4:JavaScript 核心语法准则速查卡片

在实际开发过程中,先在纸面或思维中理清数据的走向:变量该何时创建、选择何种结构存储数据类型,以及如何把纯粹的业务计算封装进函数中。牢牢掌握这三个支柱概念,就能为后续深入学习异步编程、DOM 操作及前端框架打下扎实的基础。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章