JavaScript 基础语法速览:标识符、数据类型与作用域规则

Dylan
Dylan
发布时间:2026-10-15 | 4人浏览过
原创

掌握 JavaScript 的基本语法是编写稳定代码的前提。本文将从标识符命名规则、原始数据类型(数字与字符串)特性、以及变量作用域的陷阱三个维度,拆解 JS 语言层面的核心约束,帮助开发者避开常见误区。

1. 标识符定义与关键字限制

在 JavaScript 中,标识符用于命名变量、函数或属性。合法的标识符必须以字母、下划线 (_) 或美元符号 ($) 开头,后续可包含字母、数字、下划线或美元符号。JavaScript 对保留字有严格限制,禁止使用关键字作为标识符。

主要保留字列表:

  • 基础关键字:abstract, boolean, break, byte, case, catch, char, class, const, continue, debugger, default, delete, do, double, else, enum, export, extends, false, final, finally, float, for, function, goto, if, implements, import, in, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, true, try, typeof, var, volatile, void, while, with.
  • 特殊语义值(虽非严格保留字但应避免作为标识符):undefined, NaN, Infinity.

重要约束: 1. 不允许在对象字面量中使用保留字作为属性名(除非使用方括号语法)。 2. 不允许在点号表达式(如 obj.key)之后直接使用保留字。

2. 数字类型:NaN 与 Infinity

JavaScript 仅有一种数字类型,内部采用双精度 64 位浮点数格式(IEEE 754),与 Java 中的 double 类似。除了常规数值外,需特别注意两个特殊值:

  1. NaN (Not a Number): 表示“非数字”的运算结果。它不等于任何值,甚至不等于自身 (NaN !== NaN 为 true)。检测 NaN 应使用全局函数 isNaN(value),而不是直接用 === NaN 比较。
  2. Infinity: 表示无穷大。当计算结果超过最大可表示值(约 1.7976931348623157E+308)时,返回该值。可通过 isFinite(value) 判断数值是否处于正常范围。

3. 字符串类型与不可变性

JavaScript 中的字符串由 UTF-16 代码单元组成,没有单独的“字符”类型。字符串对象具有**不可变性**(Immutable),这意味着任何修改操作(如拼接、替换)都不会改变原字符串,而是返回一个新的字符串对象。通过 string.length 属性可获取字符串长度。

4. 变量作用域:var 的关键行为

理解 var 的作用域规则是避免 Bug 的核心,其特点与现代 ES6+ 的 let/const 有显著区别:

第1步:区分函数作用域与全局作用域

目的: 明确变量的可见范围,防止变量污染。

  • 函数私有变量: 若在函数内部使用 var 声明,该变量仅在函数执行期间有效,函数结束后回收。
  • 全局变量: 若在函数外部使用 var 声明,或在函数内部未使用 var 直接赋值(例如 m = 3;),则该变量成为全局对象的属性(在浏览器中是 window 对象),贯穿整个程序生命周期。

第2步:警惕代码块不产生新作用域

风险提醒: JavaScript 的代码块(如 if { ... } 或 for { ... })不会创建新的词法作用域。var 声明会“提升”到当前函数的顶部。因此,建议始终在函数顶端声明所有 var 变量,或使用 let/const 以获得块级作用域支持。

5. 对象遍历与安全枚举

使用 for...in 语句可以枚举对象的所有可枚举属性名。由于原型链上的属性也会被枚举,通常需要进行过滤以只处理对象自身的属性。

推荐的安全遍历模板:

for (var prop in obj) {
  // 检查属性是否为对象自有属性,而非继承自原型链
  if (obj.hasOwnProperty(prop)) {
    // 在此处处理 prop
  }
}

假值(Falsy Values)清单: 以下值在布尔上下文中会被视为 false:false, null, undefined, 空字符串 "", 数字 0, 以及 NaN。

以上就是 JavaScript 基础语法中关于标识符、数据类型及作用域的详细内容,更多关于 JavaScript 入门技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表