JavaScript 中的日变量:通过实际示例了解'const”、'let”和'var”。
当您使用 JavaScript 时,您首先要学习的事情之一就是如何声明变量。变量就像存储信息的容器,例如数字、文本甚至复杂数据。在 JavaScript 中,声明变量有三种方式:const、let 和 var。其中每一个都有自己的规则和最佳实践,一开始可能会有点令人困惑。在这篇文章中,我们将通过简单的示例对其进行分解,以帮助您了解何时以及如何使用每个示例。
示例代码
让我们从一段简单的代码开始:
`javascript
const accountId = 14423;
var accountEmail = "aman@google.com";
让 accountPassword = "12345";
accountCity = "贾姆谢德布尔";
让 accountRoll;
// accountId = 13242; // 不允许 - 将抛出错误
console.table([accountEmail, accountId, accountRoll, accountPassword]);
`
理解常量
我们声明的第一个变量是使用 const 的 accountId。当您想要声明一个其值永远不会改变的变量时,可以使用 const 关键字。一旦将值分配给 const 变量,就无法将其重新分配给其他变量。例如:
const accountId = 14423; accountId = 13242; // This will throw an error!
在上面的示例中,尝试重新分配 accountId 将导致错误,因为 const 变量在初始分配后是不可变的。
const 要点:
- 无法重新分配:一旦将值分配给 const 变量,就无法更改。
- 块作用域: 变量只能在声明它的块内访问(例如,在 {} 内)。
理解让
接下来,我们使用 let 声明 accountPassword。当您想要声明一个其值稍后可能会更改的变量时,请使用 let 关键字。与 const 不同,您可以重新分配 let 变量:
let accountPassword = "12345"; accountPassword = "67890"; // This is perfectly fine!
但是,与 const 一样,let 也是块作用域的,这意味着它只能在声明它的块内访问。
let 要点:
- 可以重新赋值:在赋值后,您可以更改 let 变量的值。
- 块作用域:变量只能在声明它的块内访问。
理解变量
最后,我们来谈谈 var,这就是我们声明 accountEmail 的方式。 var 是 JavaScript 中声明变量的旧方法。与 let 和 const 相比,它有一些关键区别:
var accountEmail = "aman@google.com"; var accountEmail = "john@google.com"; // This is allowed!
如您所见,与 let 和 const 不同,您可以在同一范围内重新声明 var 变量,而不会出现任何错误。这有时会导致错误和意外行为,这就是许多开发人员更喜欢 let 和 const 的原因。
关于 var 的要点:
- 可以重新赋值和重新声明:您可以更改值,甚至可以重新声明 var 变量。
- 函数作用域: 与块作用域的 let 和 const 不同,var 是函数作用域。这意味着它可以在声明的函数内访问,但不限于块。
快速比较
这里有一个快速比较来总结差异:
{ var x = 10; var x = 20; // Allowed, no error let y = 10; let y = 20; // Not allowed, will throw a syntax error }
实际示例:使用console.table
在代码末尾,我们使用 console.table 以简洁的表格格式显示变量的值:
console.table([accountEmail, accountId, accountRoll, accountPassword]);
这会输出一个表,其中包含 accountEmail、accountId、accountRoll 和 accountPassword 的当前值。这是在调试或检查工作时可视化变量的便捷方法。
结论
理解 const、let 和 var 之间的差异对于编写干净、无错误的 JavaScript 代码至关重要。快速回顾一下:
- 当您希望变量保持常量时,请使用 const。
- 当你期望变量的值改变时使用let。
- 避免使用 var,除非您有特定原因使用它(由于其函数范围的行为)。
通过掌握这三个关键字,您将能够编写更可靠和可维护的 JavaScript 代码。如需更详细的信息,您可以随时参考 MDN 文档。
祝您编码愉快,下一篇见!
以上是JavaScript 中的日变量:通过实际示例了解'const”、'let”和'var”。的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undress AI Tool
免费脱衣服图片

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript的作用域决定变量可访问范围,分为全局、函数和块级作用域;上下文决定this的指向,依赖函数调用方式。1.作用域包括全局作用域(任何地方可访问)、函数作用域(仅函数内有效)、块级作用域(let和const在{}内有效)。2.执行上下文包含变量对象、作用域链和this的值,this在普通函数指向全局或undefined,在方法调用指向调用对象,在构造函数指向新对象,也可用call/apply/bind显式指定。3.闭包是指函数访问并记住外部作用域变量,常用于封装和缓存,但可能引发

Vue3中CompositionAPI更适合复杂逻辑和类型推导,OptionsAPI适合简单场景和初学者;1.OptionsAPI按data、methods等选项组织代码,结构清晰但复杂组件易碎片化;2.CompositionAPI用setup集中相关逻辑,利于维护和复用;3.CompositionAPI通过composable函数实现无冲突、可参数化的逻辑复用,优于mixin;4.CompositionAPI对TypeScript支持更好,类型推导更精准;5.两者性能和打包体积无显着差异;6.

JavaScript的WebWorkers和JavaThreads在并发处理上有本质区别。1.JavaScript采用单线程模型,WebWorkers是浏览器提供的独立线程,适合执行不阻塞UI的耗时任务,但不能操作DOM;2.Java从语言层面支持真正的多线程,通过Thread类创建,适用于复杂并发逻辑和服务器端处理;3.WebWorkers使用postMessage()与主线程通信,安全隔离性强;Java线程可共享内存,需注意同步问题;4.WebWorkers更适合前端并行计算,如图像处理,而

初始化项目并创建package.json;2.创建带shebang的入口脚本index.js;3.在package.json中通过bin字段注册命令;4.使用yargs等库解析命令行参数;5.用npmlink本地测试;6.添加帮助、版本和选项增强体验;7.可选地通过npmpublish发布;8.可选地用yargs实现自动补全;最终通过合理结构和用户体验设计打造实用的CLI工具,完成自动化任务或分发小工具,以完整句⼦结束。

使用document.createElement()创建新元素;2.通过textContent、classList、setAttribute等方法自定义元素;3.使用appendChild()或更灵活的append()方法将元素添加到DOM中;4.可选地使用insertBefore()、before()等方法控制插入位置;完整流程为创建→自定义→添加,即可动态更新页面内容。

TypeScript的高级条件类型通过TextendsU?X:Y语法实现类型间的逻辑判断,其核心能力体现在分布式条件类型、infer类型推断和复杂类型工具的构建。1.条件类型在裸类型参数上具有分布性,能自动对联合类型拆分处理,如ToArray得到string[]|number[]。2.利用分布性可构建过滤与提取工具:Exclude通过TextendsU?never:T排除类型,Extract通过TextendsU?T:never提取共性,NonNullable过滤null/undefined。3

Microfrontendssolvescalingchallengesinlargeteamsbyenablingindependentdevelopmentanddeployment.1)Chooseanintegrationstrategy:useModuleFederationinWebpack5forruntimeloadingandtrueindependence,build-timeintegrationforsimplesetups,oriframes/webcomponents

varisfunction-scoped,canbereassigned,hoistedwithundefined,andattachedtotheglobalwindowobject;2.letandconstareblock-scoped,withletallowingreassignmentandconstnotallowingit,thoughconstobjectscanhavemutableproperties;3.letandconstarehoistedbutnotinitial
