当前位置: 首页 > article >正文

JavaScript(一):变量与常量

目录

var

let

const


在JavaScript中,主要使用var、let和const关键字来声明变量或常量

var

var是JavaScript早期时声明变量的方式,目前比较少用到

作用域

  • 函数内部声明:只在函数内部有效
  • 函数外部声明:全局有效

变量提升:在执行代码时,var声明的变量就算在后面才被定义,也会被提升到当前作用域的顶部,但只有变量会被提升,值不会被提升

例如:

function testVar() {
    console.log(x); // undefined, 因为x已被提升
    var x = 10;
    console.log(x); // 10
}

testVar();

在上述代码中,尽管var x=10在第一个console.log之后声明,但是console.log(x)会输出undefined而不是报错,因为变量提升

let

let是var的改进版本,let声明的变量只在所在的代码块(if语句、for循环等)内有效

暂时性死区:由let声明的变量在声明之前不能被访问,直到let语句被执行时,变量才会进入作用域

function testLet() {
    console.log(x); // ReferenceError: Cannot access 'x' before initialization
    let x = 10;
    console.log(x); // 10
}

testLet();

与let不同,如果在声明前使用变量,就会报错

const

const声明的变量不再可变,而是常量

必须在声明时就进行初始化,且一旦赋值就不可更改

和let相似,const也只在声明的代码块中有效

const x = 10;
console.log(x); // 10

x = 20; // TypeError: Assignment to constant variable.

注意:尽管const创建的变量不能重新赋值,但如果是一个对象或者数组,则可以修改对象或数组的属性或元素

const只保证变量指向的内存地址不变,不限制对象内容的修改

const obj = { name: 'Alice' };
obj.name = 'Bob'; // 允许,修改对象内容

obj = {}; // TypeError: Assignment to constant variable.

在上述代码中,虽然对象obj的引用不能变,但对象的内部属性可以变


http://www.kler.cn/a/454856.html

相关文章:

  • C# OpenCV机器视觉:凸包检测
  • 部分背包问题
  • xwd-ant组件库笔记
  • 使用 Spring Boot 实现文件上传:从配置文件中动态读取上传路径
  • IntelliJ Idea常用快捷键详解
  • ES 磁盘使用率检查及处理方法
  • 微信小程序与蓝牙模组通信
  • 计算机网络习题(第1章 概论 第2章 数据通信基础)
  • OpenCV 入门
  • Java重要面试名词整理(六):MongoDB
  • 3D云展厅平台如何提升教育覆盖面?
  • Bluetooth Spec【0】蓝牙核心架构
  • 【入门】买杯子
  • QTDemo:串口调试工具
  • Rust使用国内源加速在线安装开发环境搭建
  • leetcode热题100(240. 搜索二维矩阵 II)c++
  • 蓝桥杯——最小的或运算
  • 【MATLAB】股票(和指数)数据下载--雅虎财经
  • MyBatis X 插件只有xml文件目录显示图标的原因?
  • ARM学习(39)ARM-GCC编译出的Bin文件过大解决方案
  • 使用 OWASP Dependency-Check 扫描 Spring Framework 漏洞
  • YOLOv9-0.1部分代码阅读笔记-train.py
  • 数据库索引与 MVCC:原理、应用及事务隔离
  • 什么是Ceph?它的技术特点是什么?部署挑战及解决方案如何?
  • Joget研究——Joget8商业版部署
  • 2024-2030全球防臭包行业调研及趋势分析报告