在先前的『Day-06 始於足下:基本语法、陈述句与宣告』一文中,曾经介绍JavaScript的不同宣告法。监於var宣告的作用域(影响范围)太大,如今更倾向使用let(宣告变数)、const(宣告常数)。
而且,这两种新宣告法共享一种特性,称为「暂时死区(Temporal Dead Zone, TDZ)」。
新旧宣告法主要区别,计有:
此时,这个ReferenceError的状态,意味着暂时无法读取,此一「宣告变数、直到变数可以存取之间」的阶段,就是TDZ。透过此一规则设计,可以敦促使用者端正习惯,养成(变数)先宣告再使用的规范。
话虽如此,并不是完全否定var宣告的使用。监於其作用域大、变数提昇、可重复宣告的独特性,在必要情况下,仍无法被let/const宣告所完全取代。
本系列为文一直使用「全域变数」、「区域变数」的便利称呼,但严格上JavaScript并无「全域变数」,而是「全域物件」。在node.js中,全域物件叫 global。在浏览器中,全域物件叫 window。换言之,我们常用的console.log 的全名应该叫 window.console.log。
如前所述,var宣告的作用域为函式,再如前文所述,函式中没有var宣告的变数,就会变成「全域(效果的)变数」。在实务使用中,务必多加注意。
<<: 【把玩Azure DevOps】Day16 Artifacts应用:让外部合作夥伴也可以从Private nuget安装Package
>>: [Day 13]每天前进一点应该也是进步吧?(後端篇)
前几天学到了 PostCSS、Babel 这些後处理器,来协助在打包时改写原始码来支援各种浏览器,今...
有没有想过如果我要调整整个 App 的主色或字体大小,要一个一个元件改有多累? 有没有想过只要改一...
1. -cpu a. 用途: 模拟程序在不同CPU核心数的计算机,效能表现。 b. 用来设定测试执行...
URL : https://tryhackme.com/room/agentsudoctf IP ...
到底什麽是AI? 我想大部份的人应该都对AI/人工智慧/人工智能这些字眼不陌生,尤其是在AlphaG...