详解JavaScript的变量与标识符

作者:异步漫步

时间:2026-10-29

浏览:473

本文深入解析JavaScript中的变量与标识符机制。涵盖变量的松散类型特性、严格的命名规范(如小驼峰及前缀约定)、var声明与全局变量的区别,以及变量声明提升原理。同时阐述标识符的解析过程与作用域链搜索机制,帮助开发者规范代码并避免常见错误。

文章目录

变量特性与命名规范

一、变量

从字面含义理解,变量代表可变化的量;在编程语境下,变量是用于存储数据的容器。

变量特性与命名规范

1.1变量特性 JavaScript中的变量属于松散类型,能够保存任意类型的数据。由于没有强制规定变量必须存储特定数据类型的规则,变量的值及其数据类型可以在脚本运行期间发生变化。

1.2变量命名 变量名称可以自定义,但必须遵守以下命名规范:

[1]首字符必须是字母、下划线(_)或美元符号($)。后续字符可以是字母、下划线、美元符号或数字。


//错误示范
 6num //开头不能用数字
 %sum //开头不能用除(_ $)外特殊符号,如(% + /等)
 sum+num //开头中间不能使用除(_ $)外特殊符号,如(% + /等)
  

[2]字符集中的字母可以包含扩展ASCII字符或Unicode字符,甚至允许使用中文。

[3]禁止使用JavaScript的关键字、保留字,以及true、false和null。

[4]变量名严格区分大小写。

[5]标识符推荐使用小驼峰命名法,且建议首字母或前缀表示数据类型。常见的标识前缀如下:

数组 a Array aItems 布尔值 b Boolean bIsComplete 浮点数 f Float fPrice 函数 fn Function fnHandler 整数 i Integer iItemCount 对象 o Object oDIv1 正则表达式 re RegExp reEmailCheck 字符串 s String sUserName 变量 v Variant vAnything

变量声明与赋值机制

1.3变量声明 声明的基本格式为:var 变量名;


var num;//声明一个变量
var num1,num2;//声明多个变量

使用var操作符定义的变量,其作用域限定为定义该变量的函数或全局作用域。若省略var操作符直接赋值,会创建一个全局变量;但在严格模式下,这会抛出ReferenceError错误。


var num1=1;
num2=2;//在严格模式下会报错
num3;//报错

如果对一个已存在的JavaScript变量重新进行声明,该变量原有的值不会丢失。


var carname="Volvo";
console.log(carname);//Volvo
var carname;
console.log(carname);//Volvo

1.4声明提升

JavaScript引擎会将变量声明提升到当前作用域(所有函数和语句)的最前面执行。需要注意的是,只有声明被提升,赋值操作并未提升,因此提升后的变量初始值为undefined。


console.log(myvar); // undefined
var myvar = "local value";
console.log(myvar); // "local value"
 

1.5变量赋值 使用等号(=)为变量赋值,即存储具体内容。变量可以在声明的同时进行赋值,但不能在声明语句中直接进行如+=、-=等复合运算操作。


var num = 5;
//上下是等价的
var num;
num = 5;
var a = 2;//正确
var a += 2;//错误
var a = 2++;//错误,++只能用于变量,不能用于常量

标识符解析与作用域

二、标识符

标识符是指代变量名、函数名、属性名或函数参数的名称。

2.1标识符命名 标识符的命名规则与变量相同。对于不符合常规命名规则的属性(如包含连字符的border-color),应使用方括号语法[borderColor]来访问。

2.2标识符解析 标识符解析是一个沿着作用域链逐级搜索标识符的过程。搜索始终从作用域链的前端(当前作用域)开始,逐级向后回溯,直到找到对应的标识符为止。

[1]如果在局部环境中存在同名标识符,则优先使用局部标识符,不会使用父环境中的标识符。

[2]如果遍历完作用域链仍未找到标识符,说明该标识符尚未声明,通常会导致错误发生。

[3]JavaScript引擎对标识符查询进行了优化,访问父环境标识符与局部环境标识符的时间差异极小,可以忽略不计。


var num = 1;
function test(){
 num = 2;
 console.log(num);//2
 console.log(number);//报错
}
test();

以上就是对JavaScript变量与标识符的详细解析,希望能为您的学习提供有益的帮助。

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章