大家好!
昨天我们介绍了资料的传递方式,今天就来理解变数的宣告方式吧!
我们进入今天的主题吧!
JavaScript 有 var
、const
和 let
3 种宣告方式,明天我们会再详细介绍。
今天先来理解全域变数和区域变数的差异吧!
var
和 let
宣告全域变数window
的属性var a = [];
let b = [];
a; // []
b; // []
window.a; // []
window.b; // undefined
a === window.a; // true
a
会全等於 window.a
是因为使用 var
的宣告方式。
var
宣告区域变数let
宣告区块区域变数var c = Infinity;
var fn = function (bool) {
var c = 0;
let d = 0;
if (!bool) {
var c = 1;
let d = 1;
}
return [c, d];
};
/* 只能呼叫全域变数 */
c; // Infinity
/* 没有定义全域变数 */
d; // Uncaught ReferenceError: d is not defined
/* 优先呼叫区域变数 */
fn(true); // [0, 0]
/* c = 1` 覆盖 c = 0
d = 1` 只在作用域内覆盖 d = 0(区块外不影响) */
fn(false); // [1, 0]
如果作用域没有宣告区域变数,就会向外呼叫外层作用域的区域变数,都没有才会呼叫全域变数。
上方没有提到 const
是因为,const
宣告的是区块区域常数。
尽管 const
和 let
都有相同的特性,但是 const
更为严谨,不仅宣告时必须赋值,宣告後也不能再更改。
差不多也到尾声了。
如果对文章有任何疑问,欢迎於下方提问和建议!
我是 Felix,我们明天再见!
>>: Rapid Prototyping for Product Development
-VPN 访问(来源:ActForNet) VPN 是一种通过隧道连接节点的虚拟网路。L2F、PP...
Hola,我是Charlie! 在Day08当中,我们完成了後端的JWT机制还有修改个人资料,在今天...
iPhone黑屏是设备的常见问题。 案例1:“我的iPhone 7 Plus 摔倒地上後屏幕黑屏了。...
前言 由於前几天讲了capsule network,attention的笔记我还在制作,因此先来讲讲...
前言 今天来做一个色码转换器~ 我们先认识色码之间的关系,拆解步骤後再一步步完成吧! 颜色表示的方法...