javascript类内部默认启用严格模式,禁止未声明变量、this绑定全局等;类定义仅注册结构不执行逻辑;字段初始化在constructor前完成且不可访问this;静态块在类定义后立即执行一次。

JavaScript 中 class 内部的所有代码默认运行在严格模式(strict mode)下,无需手动加 "use strict";这是语言强制规定的,无法关闭。
严格模式带来的关键约束
类体(包括 constructor、方法、getter/setter、静态块等)自动启用严格模式,体现为:
- 禁止使用未声明变量(
foo = 42会报ReferenceError) -
this在非对象上下文中为undefined(而非自动绑定到全局对象) - 禁止删除不可配置属性(
delete this.prop报错) - 函数参数名不能重复(
constructor(a, a) { }语法错误) - 八进制字面量(如
010)被禁用
类定义本身不执行逻辑,仅注册结构
class 声明或表达式本身只是定义构造函数和原型方法,**不会立即执行内部语句**。例如:
class Logger {<br> constructor() { console.log('init'); }<br> log() { console.log('running'); }<br>}
上面代码运行时,只完成类结构注册;console.log('init') 要等到 new Logger() 时才执行。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
字段初始化发生在 constructor 执行前
类字段(如 count = 0 或 #private = true)的赋值是在 constructor 函数体**开始执行之前**完成的,且此时 this 尚未就绪:
- 字段初始化中不能调用实例方法(
value = this.getValue()→ReferenceError) - 也不能访问
this(name = this.name同样报错) - 动态初始化逻辑必须写进
constructor体内
静态初始化块(static {})的执行时机
ES2022 引入的静态块会在类定义求值完成、但尚未被首次使用时同步执行一次:
class Config {<br> static env = 'dev';<br> static {<br> console.log('Config loaded:', Config.env); // 此处可安全读取 static 字段<br> }<br>}
它适合做类级别的预处理(如环境校验、静态缓存初始化),但不能访问实例内容。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










