簡體   English   中英

在javascript中定義和聲明變量之間有什么區別嗎?

[英]Is there any difference between defining and declaring variables in javascript?

這似乎是很瑣碎的問題,但對我來說卻很混亂又反復出現。 在javascript或教程的某些手冊中,這些術語是交替使用的。 在其他文章中,我找到了這樣的解釋:當我們使用var const let創建變量時聲明變量,並在將一些值/對象附加到聲明的變量時定義變量,如下所示:

var name; //declaring
name = 'Adam' //defining
var age = 'dead' //declaring + defining

是否有使用這兩個術語的任何已批准且正確的規則?

我會說“ 變量定義 ”不是標准的JavaScript術語。

可以定義 (各種)函數和對象屬性,但始終聲明變量。 該術語可能暗示變量的聲明性-聲明始終適用於完整的當前作用域,它不是要執行並執行某些操作的動作。

var name是一個聲明。 var age = 'dead'是帶有初始化程序的聲明。 name = 'Adam'只是一個分配。 我猜想“定義”變量是指它不再是undefined ,因此賦值語句或聲明的初始化程序都可以做到這一點。 不過,我寧願談論變量的初始化

var x是一個聲明,因為您沒有定義它擁有什么值,而是聲明了它的存在以及內存分配的需要。

var x = 1既是聲明又是定義,但是以x開頭分開,而x的定義位於指定的行(變量賦值以內聯方式發生)。

我看到您已經了解了hoisting的概念,但對於那些不了解的概念,Javascript接受每個變量和函數聲明,並將其置於頂部(位於其相應范圍內),然后按順序向下分配它們。

您似乎已經了解了大部分。 如果您需要進行一些高級的深入研究,這是一個很好的資源。 但是我有一種感覺,你以前去過那里。

Javascript花園

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM