javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JavaScript const var

JavaScript中const和var的区别小结

作者:Never_Satisfied

本文主要介绍了JavaScript中const和var的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在JavaScript中,constvar是两种不同的变量声明方式,它们有以下主要区别:

1. 作用域 (Scope)

var - 函数作用域

function test() {
    if (true) {
        var x = 10;
    }
    console.log(x); // 10 - 在if块外部可以访问
}

const - 块级作用域

function test() {
    if (true) {
        const y = 20;
    }
    console.log(y); // ReferenceError: y is not defined
}

2. 变量提升 (Hoisting)

var - 会提升,初始值为undefined

console.log(a); // undefined
var a = 5;

const - 会提升,但在声明前访问会报错(暂时性死区)

console.log(b); // ReferenceError: Cannot access 'b' before initialization
const b = 10;

3. 重复声明

var - 允许重复声明

var x = 1;
var x = 2; // 不会报错

const - 不允许重复声明

const y = 1;
const y = 2; // SyntaxError: Identifier 'y' has already been declared

4. 重新赋值

var - 可以重新赋值

var name = "Alice";
name = "Bob"; // 允许

const - 不能重新赋值(常量)

const name = "Alice";
name = "Bob"; // TypeError: Assignment to constant variable

5. 必须初始化

var - 可以不初始化

var x; // undefined

const - 必须初始化

const y; // SyntaxError: Missing initializer in const declaration

6. 全局对象属性

var - 在全局作用域声明时成为window对象的属性

var globalVar = "hello";
console.log(window.globalVar); // "hello"

const - 不会成为window对象的属性

const globalConst = "world";
console.log(window.globalConst); // undefined

重要注意事项

对于const声明的对象和数组:

const person = { name: "Alice" };
person.name = "Bob"; // 允许 - 修改对象属性
// person = { name: "Charlie" }; // 错误 - 不能重新赋值

const numbers = [1, 2, 3];
numbers.push(4); // 允许 - 修改数组内容
// numbers = [5, 6, 7]; // 错误 - 不能重新赋值

现代开发建议

// 推荐写法
const PI = 3.14159;
let count = 0;

// 不推荐
var oldWay = "avoid this";

这种模式有助于编写更可预测、更少错误的代码。

到此这篇关于JavaScript中const和var的区别小结的文章就介绍到这了,更多相关JavaScript const var内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文