11.9 JavaScript 学习

11.9

上篇博客中有句话是觉得欠妥当的 —— “JavaScript 允许重复声明变量,后声明的覆盖之前的”

JavaScript 允许变量被重复声明,在声明变量时 JavaScript 会自行判断这个变量是否已经被声明了,如果已经被声明(即已经存在),那么重复声明(即除了变量的非首次声明)会被跳过,不再执行声明的操作。

JavaScript 变量的值是可以被重复赋值的,最后的赋值是这个变量最后的结果。

var a=1;
var a=2;

//赋值覆盖相当于:
var a;
//a=1;
a=2;

//声明覆盖相当于:
//var a=1;
var a=2;

这个笔记所说的覆盖,其实是赋值的覆盖。如果说后声明的会覆盖已声明的,那么后声明的应该是 undefined 而不是第一次声明时候的赋值,也就是说如果是声明覆盖的话,相当于没有 var a=1 那么一个只有声明没有赋值的变量,它的值就是 undefined。

我们如何验证这个覆盖是声明的覆盖还是赋值的覆盖呢?看下面的代码:

var a=1;
var a;

//赋值覆盖相当于:
var a;
//a=1;
a;

//声明覆盖相当于:
//var a=1;
var a;

我们再输出a的值,验证下是 undefined 还是 1 就知道了。

console.log(a);
posted @ 2020-11-09 17:35  不会编程的肉蛋葱鸡  阅读(63)  评论(0)    收藏  举报