聊一聊js的變數提公升

2021-08-14 19:44:19 字數 1011 閱讀 3007

今天做了變數提公升的題目,發現自己還是一知半解的狀態,以後搞清楚乙個技術點就寫下來記錄一下,儘管自己可能也不知道怎麼表達的會讓大家看的懂,就先慢慢的一步步前進吧,寫多了總比不寫好呀。

function

getclothing

(iscold) else

}

a. referenceerror:freezing is not defined

b. grab a jacket!

c. undefined

d. it』s a shorts kind of day.

答案:c

我在粗略了解變數提公升後還是選錯成了grab a jacket!實際輸出的是undefined,不過應該有些人也會誤打誤撞選對是undefined。

為什麼呢?js在執行前會先編譯,編譯後再執行程式的。而上面這段在編譯後就變成了

function

getclothing

(iscold) else

}

使用var宣告變數就會遇到這個問題,變數會在作用域內進行提公升,es6新的變數宣告已經解決了這個問題,所以能用es6的地方就不要用var了,至少能避免這個問題。

function

getclothing

(iscold) else

}

a. referenceerror: freezing is not defined

b. grab a jacket!

c. undefined

d. it』s a shorts kind of day.

答案:a

這段**編譯器編譯了也是不會變化的,沒有了變數提公升的問題,直接執行else**塊中的**,所以不存在freezing這個變數,連宣告都沒有宣告的變數就會報a的錯誤啦,如果是宣告了變數而沒有賦值的情況,報錯就是c這種情況。

總的來說,如果支援es6的情況下,var已經沒有必要使用了。

聊一聊 Nginx 變數(一)

變數可以認為是存放 值 的容器。而所謂 值 在許多程式語言裡,既可以是3.14這樣的數值,也可以是hello world這樣的字串,甚至可以是像陣列 雜湊表這樣的複雜資料結構。nginx 的變數和 perl php 等語言的類似,由美元符號 開頭,隨後跟著乙個字串,代表這個變數的名稱,例如 name...

聊一聊C語言變數

我們知道每乙個程式的執行都需要記憶體,那麼c語言的變數的定義是什麼含義呢?假如我花了200元買了一塊4g記憶體條,然後我定義了乙個inta 就意味著從這4g的記憶體上要拿走4個位元組,又定義了乙個intb 那麼b同樣也要從4g的記憶體條上拿走4位元組。這就是c語言變數的一般含義,每乙個變數實質上都會...

聊一聊如何提公升團隊開發效率

又是一年年底了,又到了忙著總結,忙計畫的時間了,相信每年的總結計畫裡,大家都有提高團隊開發效率的計畫。列了一大堆提公升計畫和目標。然而,這些計畫真的執行了嗎?這些目標都完成了嗎?過去的一段時間我一有機會就跟其他開發人員交流,並去試著從開發人員自身的角度去發現一些痛。有的開發人員抱怨限制太多,沒有意義...