严格模式下变量必须先声明后使用、命名合法且达意,需用let/const显式声明并初始化,全局启用需在脚本顶部或函数首行写"use strict";,禁用隐式全局变量和var。

在严格模式下规范变量命名与声明,核心是“先声明、再使用,名达意、符规则”。它不只是语法要求,更是避免隐式错误、提升协作效率的基础习惯。
严格模式必须显式启用
不加 "use strict";,其他规范都失去约束力。它必须出现在脚本顶部或函数体第一行:
- 全局启用:整个 .js 文件开头第一行写 "use strict";
- 局部启用:函数内部第一行写 "use strict";,仅对该函数生效
- ⚠️ 如果前面有空行、注释甚至 console.log(),严格模式将失效
变量必须用 let 或 const 显式声明
严格模式禁止隐式创建全局变量,所以不能跳过声明直接赋值:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- ✅ 正确:let count = 0; 或 const API_URL = "https://api.example.com";
- ❌ 错误:count = 0;(会抛出 ReferenceError: count is not defined)
- var 已不推荐:虽仍可用,但存在变量提升、函数作用域等易混淆行为,现代项目应统一用 let/const
命名要合法且有意义
合法是底线,达意是关键:
- 只能用字母、数字、下划线(_)、美元符($),且不能以数字开头
- 不能是关键字(如 if、class、let)或保留字(如 enum、await)
- 区分大小写:userName 和 username 是两个变量
- 推荐驼峰命名:isActive、maxRetryCount、apiResponseData
- 常量全大写加下划线:MAX_RETRY_COUNT、DEFAULT_TIMEOUT_MS
声明时尽量初始化,避免 undefined 坑
let 和 const 都要求声明即初始化(const 更强制),这能减少运行时意外:
- let score; 合法,但值为 undefined,后续使用前需确保已赋值
- const PI; ❌ 报错:Missing initializer in const declaration
- 建议:声明时就赋予合理初始值,比如 let items = [];、const isDev = process.env.NODE_ENV === "development";
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










