js中變量聲明提升是什么 js如何定義全局變量?
js如何定義全局變量?當您不在函數(shù)中重新分配a時,a實際上是一個全局變量。如果在函數(shù)中找不到,將轉(zhuǎn)到全局范圍中查找但是,已在函數(shù)中重新分配了。在執(zhí)行之前,解析器將掃描整個函數(shù),并將所有聲明的變量“提升
js如何定義全局變量?
當您不在函數(shù)中重新分配a時,a實際上是一個全局變量。如果在函數(shù)中找不到,將轉(zhuǎn)到全局范圍中查找
但是,已在函數(shù)中重新分配了。在執(zhí)行之前,解析器將掃描整個函數(shù),并將所有聲明的變量“提升”到函數(shù)的頂部。因此,函數(shù)中的a不再是函數(shù)外的a,在定義a之前使用a是未定義的。在其他語言中,會報告referencebefore賦值錯誤,但JavaScript不會。因此,根據(jù)規(guī)范,最好先聲明要使用的所有變量。(當然,如果使用后a的定義仍然沒有定義,請打開窗口。A是A函數(shù)的全局值。你也可以使用窗口。B()來訪問它。窗口表示全局范圍,但nodejs中沒有窗口