使用关键字 let var const来进行声明
如果不使用关键字来进行声明,也是能声明的,这时这个变量就成了全局变量(非严格模式下),严格模式下会报错ReferenceError;
function example() {
console服务器托管网.log(a); // 输出:undefined,变量 a 已被提升,但尚未赋值
a = 1; // 赋值,此时 a 变成了全局对象的属性
console.log(a); // 输出:1
}
example();
console.log(a); // 输出:1,因为 a 已成为全局对象的属性
三种方式区别
因为let和const差不多,所以主要说 var 和 let 的区别
变量声明区别
var 声明的变量,是函数作用域的;简单来说就是在函数内声明,函数内可以使用,出了函数就不能使用;如果在全局进行声明,那么被声明的变量就会变成 window 对象的属性;
let 声明的变量,是块级作用域的;同一个块内可以用,出了这个块就不能用;全局声明服务器托管网不会成为window 对象的属性;
var name = 'Matt';
console.log(window.name); // 'Matt'
let age = 26;
console.log(window.age)
声明提升区别
使用 var 来声明变量时,先使用变量,再声明变量,变量在使用时的值为 undefined ,原理如下:
console.log(age) //undefined
var age = 1;
// 与下面代码等同
var age;
console.log(age)
age = 1;
js 执行代码时,会将所有变量的声明提升到最上边,当执行到原本的声明变量那一行时,再赋值;可以理解为先占位,再设置这个指向的指针;
使用 let 来声明的时候,不会进行变量提升,会进入暂时性死区;
const的特殊性
跟 let 相比,const 只是不能修改的变量;其特殊性在于
- 定义一个不能修改的变量
- 定义常量,例如 MAX_NUM = 123
此外需要注意的是,如果 const 定义了一个对象,我们仍然可以修改其中的内容,但是我们不能直接让这个对象指向另一个对象;
const student = {
age : 1 ,
name : 'test'
}
student.age = 2
console.log(student) //{age: 2, name: 'test'}
student = {} //Uncaught TypeError: Assignment to constant variable.
//at :1:9
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: lr电脑版-lightroom中文简体官版下载 官方免激活
Adobe Lightroom 服务器托管网2021拥有许多强大的功能,包括: RAW文件处理:支持RAW格式文件的导入和处理,并提供了各种工具来优化图像质量。 色彩和曝光调整:可以通过调整曝光、对比度、曲线、饱和度等来改善图像色彩和亮度对比度。 镜头校正:支…