![](/img/trans.png)
[英]In an isolate scope directive is there any difference between defining variables on scope and defining variables on the controller?
[英]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接受每個變量和函數聲明,並將其置於頂部(位於其相應范圍內),然后按順序向下分配它們。
您似乎已經了解了大部分。 如果您需要進行一些高級的深入研究,這是一個很好的資源。 但是我有一種感覺,你以前去過那里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.