深入理解JavaScript const用法与顶层对象的区别

需积分: 8 0 下载量 200 浏览量 更新于2024-09-07 收藏 2KB MD 举报
本文档主要探讨了JavaScript中的两个关键概念:`const`用法和顶层对象。首先,我们来深入理解`const`的作用。 const用法 1. 声明和赋值的必要性: `const`关键字用于声明常量,它的核心特性在于一旦声明并赋值,就不能再改变其值。这是与变量(如`let`和`var`)的主要区别,变量可以被重新赋值,而常量一旦设置,其值不可更改。 2. 常量类型: 常量分为两种:字面常量(如数字10, 字符串'helloworld')和`const`声明的常量。尽管字面常量的值不可变,但通过`const`声明的变量(如`constAPPLE`和`constBANANA`)实际上是创建了对某个值的引用,而不是复制该值,所以在某些情况下,如果值是复杂数据类型(如对象),修改对象内部状态不会影响到`const`声明的引用。 3. 常量命名规范: 在JavaScript中,通常将常量定义为全大写字母(如`constAPPLE`),以区分它们与变量。函数名和方法名遵循小写或小驼峰命名规则(如`functionAnimal`和`getTitle`),变量名则倾向于小写或使用下划线(如`lettitle`和`letgetTitle`)。 4. 错误处理: 如果尝试对`const`声明的变量进行修改,将会抛出错误。例如,试图重新赋值`consta`或修改`constobj`的属性都会导致编译时错误。 顶层对象 在JavaScript中,`window`对象是全局作用域的代表,它包含了浏览器提供的全局API和变量。在ES5中,全局变量(通过`var`或`function`声明)会被自动挂载到`window`对象上,可以通过`window.name`访问。 然而,随着ES6的到来,`let`和`const`声明的全局变量和常量不会自动成为`window`对象的属性。这意味着,虽然这些变量在全局范围内可见,但它们并不像`var`那样在`window`对象上体现。因此,当使用`lettitle`和`constAPPLE`等变量时,直接访问`window.title`或`window.constAPPLE`将会找不到对应的属性。 总结来说,本文讨论了如何在JavaScript中正确使用`const`声明常量,包括命名规则和修改限制,以及`let`和`const`声明的全局变量与`window`对象之间的关系变化。这对于理解JavaScript的变量作用域和命名约定至关重要。