const str = "example"; document.write(str.charAt(5)); // 输出 'l'
这两句中const是干啥的
const 是 JavaScript 中用于声明常量的关键字,其作用为:
不可重新赋值:用
const声明的变量(如str)不能被重新赋值(如str = "new"会报错)。块级作用域:仅在当前代码块(如
{}内部)有效,避免变量污染全局。必须初始化:声明时需直接赋值(如
const str = "example"),否则报错。
对比其他声明方式:
let:可重新赋值,块级作用域。var:可重新赋值,函数作用域(旧版写法,不推荐)。
在示例中,const str = "example" 确保 str 始终指向字符串 "example",后续若尝试修改 str 会触发错误,保证代码稳定性。
JavaScript中const和var啥区别
JavaScript中const和var的主要区别体现在作用域、变量提升、重复声明和可变性等方面:
作用域
var具有函数作用域或全局作用域,在函数内部声明的变量只能在函数内访问,但在if、for等块级代码中声明的变量会泄露到外部const具有块级作用域({}内有效),在块级代码外不可访问
变量提升
var存在变量提升,声明会被提升到作用域顶部(赋值不会),因此在声明前访问会得到undefinedconst不存在变量提升,存在暂时性死区(TDZ),声明前访问会报错
重复声明与修改
var允许重复声明同名变量,后声明的值会覆盖前者const禁止重复声明,且声明时必须初始化,后续不可重新赋值(基本数据类型不可变,但引用类型的属性可修改)
全局属性
var在全局作用域声明的变量会成为window对象的属性const声明的变量不会绑定到window对象
典型示例
if (true) {
var a = 1; // 函数/全局作用域
const b = 2; // 块级作用域
}
console.log(a); // 1(var泄露到外部)
console.log(b); // 报错(const仅在块内有效)