欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 【javascript从零单排】变量let、var、const

【javascript从零单排】变量let、var、const

2025/9/19 4:07:27 来源:https://blog.csdn.net/qq_42476938/article/details/143791199  浏览:    关键词:【javascript从零单排】变量let、var、const

在这里插入图片描述

🌈"It always seems impossible until it’s done." — Nelson Mandela
种一棵树最好是机会是十年前,其次是现在。

📗概念

在 JavaScript 中,变量是用于存储数据值的容器。可以使用变量来保存不同类型的数据,并在程序中引用这些数据。

声明变量

在 JavaScript 中,可以使用三种关键字来声明变量:var、let 和 const。

1️⃣var:

作用域是函数作用域或全局作用域。
可以被重新声明和更新。
在声明之前可以被访问(提升)。

var name = 'John';
console.log(name); // 输出: John

2️⃣let:

作用域是块级作用域。
不能被重新声明,但可以更新。
在声明之前不能被访问(无提升)。

let age = 30;
age = 31; // 更新值
console.log(age); // 输出: 31

3️⃣ const:

作用域是块级作用域。
不能被重新声明或更新(常量)。
必须在声明时初始化。

const pi = 3.14;
// pi = 3.14159; // 会报错
console.log(pi); // 输出: 3.14

作用域

函数作用域:

是指在函数内部声明的变量只能在该函数内部访问。函数外部无法访问这些变量。

使用 var 声明的变量是函数作用域的。

function myFunction() {var x = 10; // x 是函数作用域console.log(x); // 输出: 10
}myFunction();
console.log(x); // 报错: Uncaught ReferenceError: x is not defined

特点:

  • 变量在函数内部声明后,只能在该函数内访问。
  • 函数执行后,函数内部的局部变量会被销毁。

块作用域

块作用域是指在 {} 代码块(例如 if 语句、for 循环等)内部声明的变量只能在该代码块内部访问。

使用 let 和 const 声明的变量是块作用域的。

if (true) {let y = 20; // y 是块作用域console.log(y); // 输出: 20
}console.log(y); // 报错: Uncaught ReferenceError: y is not defined

特点:

  • 变量在块内部声明后,只能在该块内访问。
  • 块作用域可以嵌套,外部块可以访问内部块的变量,但内部块无法访问外部块的变量。

作用域链

当访问一个变量时,JavaScript 会从当前作用域开始查找,直到找到该变量或到达全局作用域为止。这种查找机制称为作用域链。

变量类型

JavaScript 中的变量可以存储多种类型的数据,包括:

基本类型:

1️⃣ 字符串(String):文本数据。

let greeting = "Hello, World!";
2️⃣ 数字(Number):整数或浮点数。

let score = 95;

3️⃣ 布尔值(Boolean):真或假。

let isActive = true;
4️⃣ 未定义(Undefined):未赋值的变量。

let value;
console.log(value); // 输出: undefined
5️⃣空值(Null):表示“无”或“空”。

let obj = null;

引用类型:

1️⃣ 对象(Object):键值对集合,可以嵌套。

let person = {name: 'Alice',age: 25
};

2️⃣数组(Array):有序的数据集合,可以嵌套。

let fruits = ['apple', 'banana', 'orange'];

💻代码

//基本类型
var greeting = 'hello';//string类型
const MyAge = 29;//number类型
const Price = 100.2//number类型
let isOldEnoughToParty = true;//boolean类型
console.log(Price); //=> 100.2
console.log(greeting); // => 'hello'
console.log(MyAge); // => 29
console.log(isOldEnoughToParty); // true//var声明的变量的作用域是函数内部
var x = 'oh dang';function MyFunction() {var x = 10;var x = 1;var x = false;console.log(x);
}
MyFunction();
console.log(x);
//输出
// false
// oh dang//let块级作用域,只在{}块内生效
let array = [101,'name','age'];
for(let i = 0; i < array.length; i++) {// Loop!}console.log(i); // => undefined//var 函数级作用域,不推荐这样写
for(var i = 0; i < array.length; i++) {// Loop!}console.log(i); // => undefined//不能重复定义
let first = 10;
first  += 5;
const first = 20; // => Exception: Identifier 'first' has already been declared//let对比const
//let可以重新分配,但const不能。let first1 = 10;
first1 = 20; // => OK
const second = 1000;
second = 2000; // => Exception: Cannot reassign 'const' value//const声明的数组是可变的
//尽管 myArray 是用 const 声明的,但它的内容(元素)是可以改变的。const 仅保证变量的引用不变,而不是数组的内容。
const myArray = ['raining', 'cats', 'and', 'dogs'];
myArray.pop();//pop() 是数组的一个内置方法,它用于移除数组的最后一个元素,并返回该元素
console.log(myArray); // => [ 'raining', 'cats', 'and' ]
//const 声明的 myArray 数组可以修改其内容,但不能重新赋值。

💡 Tips

  • 除非需要函数范围,否则不要使用 var。
  • const声明的常量如果是基本类型,则不可改变,如果是引用类型,则可以改变其中的某个值,但是不可以重新赋值。

💪Dream it. Wish it. Do it.
有梦不难,跟着我去闯。

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词