技术文摘
如何从js角度理解变量
如何从js角度理解变量
在JavaScript编程中,变量是一个基础且关键的概念,理解变量的工作原理对于掌握这门语言至关重要。
变量,简单来说,就是用于存储数据值的容器。在JavaScript里,使用 var、let 或 const 关键字来声明变量。var 是ES5中声明变量的方式,它具有函数作用域。例如在一个函数内部声明的 var 变量,在整个函数内都可访问。但它存在变量提升现象,即变量可以在声明之前访问,只是值为 undefined。
let 和 const 是ES6引入的声明变量方式,它们具有块级作用域。这意味着变量只在其所在的块({} 内)有效。比如在 if 语句块或 for 循环块中声明的 let 或 const 变量,出了这个块就无法访问。
let 用于声明可重新赋值的变量。我们可以先声明一个 let 变量,之后根据程序逻辑随时改变它的值。例如:let num = 5; num = 10;,这里变量 num 的值从5变为了10。
const 用于声明常量,一旦赋值,就不能再重新赋值。如果尝试对 const 声明的常量重新赋值,会导致运行时错误。例如:const PI = 3.14159;,PI 的值就固定为3.14159,不能再更改。不过,如果 const 声明的是一个对象或数组,虽然不能重新赋值整个对象或数组,但可以修改其内部属性或元素。比如:const obj = {name: 'John'}; obj.name = 'Jane'; 这是允许的。
变量在内存中的存储也有其特点。基本数据类型(如 number、string、boolean 等)的值直接存储在栈内存中,而引用数据类型(如 object、array、function 等)的值存储在堆内存中,变量在栈内存中存储的是指向堆内存中实际数据的引用。这就导致在传递和比较引用数据类型时,比较的是引用地址而非实际数据内容。
深入理解JavaScript变量的声明方式、作用域、可变性以及内存存储原理,能帮助开发者编写出更高效、稳定且符合预期的代码。
- 为何需要 AtomicReference ?
- 鸿蒙 HarmonyOS 三方件开发之 Logger 组件(4)
- 高并发服务因 Redis 瓶颈导致 Time-Wait 事故
- 10 个提升 TypeScript 幸福感的高级技巧
- TensorFlow 五岁,其成为最受欢迎 ML 框架的五大原因
- Python 开发鸿蒙应用直播图文(2021.01.07)
- 鸿蒙 Java UI 组件与布局示例代码
- 重拾 JAVA:该编程语言缘何式微?
- 2020 年 JavaScript 调查:Angular 满意度欠佳,Svelte 崭露头角
- Vue3 为何选用 CSS 变量
- 一次线上 Java 程序故障的两小时惊魂记
- JS 中这些强大操作符 总有几个你未知
- 前沿洞察:可由佩戴 VR 头盔控制的机器人
- 2021 年支持 Vue 3 的 UI 组件库整理
- 你在 Go 中正确使用枚举了吗?