溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ecmascript使用變量是否需要聲明

發(fā)布時(shí)間:2022-01-27 11:35:19 來源:億速云 閱讀:137 作者:柒染 欄目:web開發(fā)

ecmascript使用變量是否需要聲明,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

ecmascript使用變量不需要聲明。在ecmascript中,使用變量之前不必聲明,變量聲明不是必須的;原因:ECMAScript的解釋程序遇到未聲明過的標(biāo)識(shí)符時(shí),會(huì)用該變量名創(chuàng)建一個(gè)全局變量,并將其初始化為指定的值。

本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

ECMAScript 變量無需明確的類型聲明

變量名需要遵守一些簡(jiǎn)單的規(guī)則。

聲明變量

ECMAScript 中的變量是用 var 運(yùn)算符(variable 的縮寫)加變量名定義的。例如:

var test = "hi";

在這個(gè)例子中,聲明了變量 test,并把它的值初始化為 "hi"(字符串)。由于 ECMAScript 是弱類型的,所以解釋程序會(huì)為 test 自動(dòng)創(chuàng)建一個(gè)字符串值,無需明確的類型聲明。

還可以用一個(gè) var 語句定義兩個(gè)或多個(gè)變量:

var test1 = "hi", test2 = "hello";

前面的代碼定義了變量 test1,初始值為 "hi",還定義了變量 test2,初始值為 "hello"。

不過用同一個(gè) var 語句定義的變量不必具有相同的類型,如下所示:

var test = "hi", age = 25;

這個(gè)例子除了(再次)定義 test 外,還定義了 age,并把它初始化為 25。即使 test 和 age 屬于兩種不同的數(shù)據(jù)類型,在 ECMAScript 中這樣定義也是完全合法的。

與 Java 不同,ECMAScript 中的變量并不一定要初始化(它們是在幕后初始化的,將在后面討論這一點(diǎn))。因此,下面這一行代碼也是有效的:

var test;

此外,與 Java 不同的還有變量可以存放不同類型的值。這是弱類型變量的優(yōu)勢(shì)。例如,可以把變量初始化為字符串類型的值,之后把它設(shè)置為數(shù)字值,如下所示:

var test = "hi";
alert(test);
test = 55;
alert(test);

這段代碼將毫無問題地輸出字符串值和數(shù)字值。但是,如前所述,使用變量時(shí),好的編碼習(xí)慣是始終存放相同類型的值。

命名變量

變量名需要遵守兩條簡(jiǎn)單的規(guī)則:

  • 第一個(gè)字符必須是字母、下劃線(_)或美元符號(hào)($)

  • 余下的字符可以是下劃線、美元符號(hào)或任何字母或數(shù)字字符

下面的變量都是合法的:

var test;
var $test;
var $1;
var _$te$t2;

著名的變量命名規(guī)則

只是因?yàn)樽兞棵恼Z法正確,并不意味著就該使用它們。變量還應(yīng)遵守以下某條著名的命名規(guī)則:

Camel 標(biāo)記法

首字母是小寫的,接下來的字母都以大寫字符開頭。例如:

var myTestValue = 0, mySecondValue = "hi"; 

Pascal 標(biāo)記法

首字母是大寫的,接下來的字母都以大寫字符開頭。例如:

var MyTestValue = 0, MySecondValue = "hi";

匈牙利類型標(biāo)記法

在以 Pascal 標(biāo)記法命名的變量前附加一個(gè)小寫字母(或小寫字母序列),說明該變量的類型。例如,i 表示整數(shù),s 表示字符串,如下所示“

var iMyTestValue = 0, sMySecondValue = "hi"; 

本教程采用了這些前綴,以使示例代碼更易閱讀:

類型前綴示例
數(shù)組aaValues
布爾型bbFound
浮點(diǎn)型(數(shù)字)ffValue
函數(shù)fnfnMethod
整型(數(shù)字)iiValue
對(duì)象ooType
正則表達(dá)式rerePattern
字符串ssValue
變型(可以是任何類型)vvValue

變量聲明不是必須的

ECMAScript 另一個(gè)有趣的方面(也是與大多數(shù)程序設(shè)計(jì)語言的主要區(qū)別),是在使用變量之前不必聲明。例如:

var sTest = "hello ";
sTest2 = sTest + "world";
alert(sTest2);

在上面的代碼中,首先,sTest 被聲明為字符串類型的值 "hello"。接下來的一行,用變量 sTest2 把 sTest 與字符串 "world" 連在一起。變量 sTest2 并沒有用 var 運(yùn)算符定義,這里只是插入了它,就像已經(jīng)聲明過它一樣。

ECMAScript 的解釋程序遇到未聲明過的標(biāo)識(shí)符時(shí),用該變量名創(chuàng)建一個(gè)全局變量,并將其初始化為指定的值。

這是該語言的便利之處,不過如果不能緊密跟蹤變量,這樣做也很危險(xiǎn)。最好的習(xí)慣是像使用其他程序設(shè)計(jì)語言一樣,總是聲明所有變量。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI