1.在JavaScript中定义变量有两种方式
Es6之前:
var 变量名称;
Es6开始:let 变量名称;
2.两种定义变量方式的区别
- 如果通过var定义变量,可以重复定义同名的变量,并且不会报错,且后定义的会覆盖先定义的
var num = 1;
var num = 2;
console.log(num);
// 输出结果为2,因为后定义的会覆盖先定义的
- 如果通过var定义变量,可以先使用后定义(预解析)
console.log(num);
var num = 1;
输出结果为undefined 先使用后定义可以理解成下述代码
//var num;
//console.log(num);
//num = 1
- 如果通过let定义变量,不可以重复定义同名的
let num = 1;
let num = 2;
console.log(num);
// Uncaught SyntaxError: Identifier 'num' has already been declared
如果重复定义,会报错
- 如果通过let定义变量,不可以先使用再定义,因为浏览器不会对let定义的变量进行预解析
console.log(num);
let num = 1;
// Uncaught SyntaxError: Identifier 'num' has already been declared
3.什么是全局变量
全局变量就是定义在{}外面的变量,我们就称之为全局变量
4.什么是局部变量
局部变量就是定义在{}里面的变量,我们就称之为局部变量
5.全局变量和局部变量的区别
如果是全局变量,那么有效范围是从定义数量的那一行开始直到文件的末尾都可以使用
如果是局部变量,那么有效范围是从定义变量的那一行开始知道大括号结束位置(只有在大括号中才能使用)
无论是通过var还是通过let定义的全局变量,都是从定义的那一行到文件末尾都可以使用
如果是通过var定义的局部变量,和全局变量一样,后续都可以被使用
如果是通过let定义的局部变量,那么这个变量只能在当前定义的变量的{}中使用
网友评论