JavaScript 基础回顾:你需要掌握的核心概念
JavaScript 基础回顾:你需要掌握的核心概念
JavaScript 是前端开发的基石,但其背后的一些核心概念,如数据类型、变量作用域和模块化,对于初学者来说可能有点难以理解。本文将带你系统地回顾这些关键基础,助你构建坚实的代码基石。
数据类型和常用方法
JavaScript 提供了多种内置的数据类型。其中,原始类型(如 string, number, boolean)和非原始类型(object,如数组和函数)是所有数据操作的基础。
-
字符串和
toString()方法
虽然大多数时候我们直接使用字符串字面量,但你可以使用String构造函数来创建字符串对象。更常见的是使用toString()方法将其他数据类型转换为字符串。这个方法非常灵活,例如,它可以将数字转换为不同进制的字符串表示。const num = 10; console.log(num.toString(2)); // "1010"(二进制) -
Number 构造函数
与字符串类似,Number构造函数可以创建数字对象。但它最常见的用途是将其他值(如字符串)强制转换为数字。
变量和函数的命名规范
良好的命名习惯能让你的代码更易于阅读和维护。JavaScript 开发者遵循一些约定俗成的规范:
- 驼峰命名法(camelCasing):这是变量和函数命名的首选约定,第一个单词小写,后续每个单词的首字母大写(如
isLoading)。 - 布尔值:通常使用
is,has,can等前缀来表示布尔变量的状态(如isLoggedIn)。 - 函数命名:函数名应清晰地表明其功能。获取数据的函数通常以
get开头,设置数据的以set开头,处理事件的以handle开头。 - 循环迭代器:在
for循环中,通常使用单个字母(i,j,k)作为迭代器变量。
稀疏数组与内存管理
JavaScript 的数组有一个有趣的概念叫稀疏数组。它指的是数组中存在“空槽”,这些空槽与值为 undefined 的元素不同。
在内存管理方面,JavaScript 引擎为你处理了大部分工作。它的自动垃圾回收机制会识别并回收不再使用的内存,开发者无需手动释放。
闭包和作用域
闭包(Closure) 是 JavaScript 中一个非常强大的特性,它允许一个内部函数访问其外部函数的变量,即使外部函数已经执行完毕并返回。这是因为内部函数“记住”了其外部环境。
function outerFunction(x) {
let y = 10;
function innerFunction() {
console.log(x + y);
}
return innerFunction;
}
let closure = outerFunction(5);
closure(); // 15
var 关键字和变量提升
在现代 JavaScript 中,我们主要使用 let 和 const 来声明变量。但在 2015 年之前,var 是唯一的选择。了解 var 的一些“怪癖”仍然很重要:
- 可重复声明:
var允许你在同一作用域内重复声明同一个变量,而let和const会抛出错误。 - 函数作用域:
var没有块级作用域。在if语句或for循环中用var声明的变量,在外部仍然可以访问。 - 变量提升(Hoisting):这是 JavaScript 的默认行为,它会将声明移动到其作用域的顶部。
var变量会被提升并初始化为undefined,但let和const也会被提升,但它们在声明前无法访问,处于“暂时性死区”中。
模块化:导入与导出
为了组织和复用代码,现代 JavaScript 引入了模块的概念。一个模块是一个独立的文件,用于封装相关的代码。
- 导出(Export):使用
export关键字来公开你想在其他文件中使用的变量、函数或类。- 命名导出:
export function add() {} - 默认导出:
export default function subtract() {}
- 命名导出:
- 导入(Import):使用
import关键字将其他模块中导出的内容引入到你的文件中。- 命名导入:
import { add } from './math.js'; - 默认导入:
import subtract from './math.js'; - 命名空间导入:
import * as Math from './math.js';(导入所有内容)
- 命名导入:
通过掌握这些基础概念,你将能够更好地理解和编写健壮、可维护的 JavaScript 代码。
更多推荐


所有评论(0)