2013-01-07 17 views
13

的標題說明了一切,但我會提供更多的澄清:聲明JavaScript的變量作爲特定類型

看到的JavaScript的許多樣品,所有變量聲明爲var類型後,看到其他數據類型的支持,爲什麼AREN '特定數據類型的變量是這樣聲明的嗎?意思是,爲什麼不是這樣的:

string hello = 'Hello, World'

用來代替

var hello = 'Hello, World'

在諸如OReilly Javascript網站尋找顯示有其他類型的保留字。再次,他們爲什麼不使用?難道它不會像這樣:typeof(variable)==='string';不再需要?

+6

Javascript是一種無類型的語言。 http://stackoverflow.com/questions/964910/is-javascript-an-untyped-language –

+2

@ JonasG.Drange ECMAScript是一個[* dynamic * typed](http://c2.com/cgi/wiki?DynamicTyping)語言。 (值仍然有類型,因此不能* un * -typed語言。) – 2013-01-07 19:42:18

+1

@pst仔細閱讀鏈接的答案。有人故意濫用「無類型」的語言作爲「無靜態類型」的簡寫。我不同意這種虐待,但那是另一個問題。 –

回答

35

很簡單,JavaScript變量沒有類型。 有類型。

語言允許我們這樣寫代碼:

var foo = 42; 
foo = 'the answer'; 
foo = function() {}; 

因此,這將是毫無意義的指定變量聲明的類型,因爲該類型由變量的值決定的。這在「動態」語言中很常見。

+0

所以不可能事先聲明一個類型? – CBredlow

+4

這是正確的。 –

+0

如果我做了'var speed:float = 10.00;' –