JavaScript let var 和 const
var和let var定义的变量为全局变量,没有块级作用域的概念。var可以在同一作用域下多次生命同一变量,let不行。var生命的变量可以在生命语句前调用,let则不行。let定义变量有块级作用域的概念。
if (true) {var num1 = 1;let num2 = 1;
}
console.log('num1 = ' + num1);
console.log('num2 = ' + num2);
let和const let定义变量,有块级作用域。const定义常量,不能修改。在声明时必须赋值,不能再次赋值。
const a = 10;
a = 11;
console.log(a);
const定义的对象,可以修改其属性。
const obj = { name: '张飞' }
console.log(obj.name);
obj.name = '关羽';
console.log(obj.name);
什么时候用let,什么时候用const 定义函数,用const定义对象,可以用const定义一个不变的值,可以用const 总结
在中,变量可以通过三种不同的方式进行声明:var、let和const。它们之间的主要区别如下:
var声明的变量作用域是函数级别的,即在整个函数内都可见,而不仅仅局限于声明的块级作用域。而且,如果使用var重复声明同一个变量,后面的声明不会抛出错误,而是会覆盖前面的声明。
let声明的变量是块级作用域的,只在定义它的块中有效。这意味着对于let声明的变量来说,它仅在定义它的代码块内可见,包括 for 循环和 if 语句。此外,不能用相同名称的 let 变量重复声明。
const的用法与let类似,也是块级作用域的。但const声明的变量是常量,一旦被赋值,就不能再次修改,否则会抛出错误。需要注意的是,使用const声明对象或数组时,虽然不能修改对象本身,但可以修改对象中的属性或元素。
综上,var是函数级作用域的变量声明方式,而let和const是块级作用域的。let 声明的变量可以在同一作用域内被重新赋值,而const声明的变量是常量,不能重新赋值。