最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

JavaScript中的變量定義與儲(chǔ)存介紹_javascript技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:31:21
文檔

JavaScript中的變量定義與儲(chǔ)存介紹_javascript技巧

JavaScript中的變量定義與儲(chǔ)存介紹_javascript技巧:與C、Java等編程語言不同,JavaScript中的變量是無類型的,所有的變量定義使用的關(guān)鍵詞均為var: 代碼如下: var a; var m, n; var x=42, y=test; 如果定義變量后未對(duì)該變量進(jìn)行賦值,那么該變量的值為undefined。如上面代碼中的a、m、n三個(gè)
推薦度:
導(dǎo)讀JavaScript中的變量定義與儲(chǔ)存介紹_javascript技巧:與C、Java等編程語言不同,JavaScript中的變量是無類型的,所有的變量定義使用的關(guān)鍵詞均為var: 代碼如下: var a; var m, n; var x=42, y=test; 如果定義變量后未對(duì)該變量進(jìn)行賦值,那么該變量的值為undefined。如上面代碼中的a、m、n三個(gè)

與C、Java等編程語言不同,JavaScript中的變量是無類型的,所有的變量定義使用的關(guān)鍵詞均為var:


代碼如下:
var a;
var m, n;
var x=42, y="test";


如果定義變量后未對(duì)該變量進(jìn)行賦值,那么該變量的值為undefined。如上面代碼中的a、m、n三個(gè)變量的值均為undefined。

由于JS中變量是無類型的,因此完全可以對(duì)同一個(gè)變量進(jìn)行不同類型的賦值,如:


代碼如下:
var b = "temp";
console.log(typeof b);//string
b = 108;
console.log(typeof b);//number


除了可以對(duì)同一變量進(jìn)行不同類型的賦值,JavaScript中還可以對(duì)變量進(jìn)行重復(fù)定義;如果這么做,則第一次之后的變量定義語句等價(jià)于賦值語句:


代碼如下:
var c = "hello";
console.log(c);//hello
var c = true;
console.log(c);//true


在ECMAScript標(biāo)準(zhǔn)的嚴(yán)格模式(strict mode)下,所有的變量定義均需使用var關(guān)鍵詞。如果不使用嚴(yán)格模式,那么當(dāng)JS程序?qū)δ硞€(gè)未被定義過的變量進(jìn)行賦值時(shí),程序?qū)⒃贘S全局對(duì)象中創(chuàng)建一個(gè)名稱與該變量相同的屬性,也即創(chuàng)建一個(gè)新的全局變量。這種做法會(huì)帶來很多問題(比如,多個(gè)JS程序間產(chǎn)生全局變量污染等),給后期維護(hù)帶來不小的麻煩;因此在實(shí)際開發(fā)過程中,應(yīng)當(dāng)盡量避免使用這種做法。

變量的儲(chǔ)存

如果定義的變量為全局變量,同時(shí)在變量定義過程中沒有使用var關(guān)鍵詞,那么該變量會(huì)作為全局對(duì)象的屬性而存在,可以通過訪問this(全局對(duì)象)的相應(yīng)屬性而獲得,也可以通過使用delete關(guān)鍵詞將其從全局對(duì)象中刪除掉:


代碼如下:
var e = "globalVariableValue";//defined outside of any function, it is a global variable, but does not store in "this"
f = "globalVariableValue2";
this.g = "globalVariableValue3";
console.log(this.e);//undefined
console.log(this.f);//globalVariableValue2
console.log(this.g);//globalVariableValue3

delete f;
delete g;
console.log(this.f);//undefined
console.log(this.g);//undefined


對(duì)于JavaScript中的每一次函數(shù)調(diào)用,JavaScript都會(huì)創(chuàng)建一個(gè)局部對(duì)象以儲(chǔ)存在該函數(shù)中定義的局部變量;如果在該函數(shù)內(nèi)部還有一個(gè)嵌套定義的函數(shù)(nested function),那么JavaScript會(huì)在已經(jīng)定義的局部對(duì)象內(nèi)部再定義一個(gè)嵌套局部對(duì)象。對(duì)于一個(gè)函數(shù),其內(nèi)部有多少層的嵌套函數(shù)定義,也就有多少層的嵌套局部對(duì)象。該局部對(duì)象稱為“函數(shù)調(diào)用對(duì)象”(ECMAScript 3中的“call object”,ECMAScript 5中改名為“declarative environment record”,但個(gè)人認(rèn)為還是ECMAScript 3中的名稱更容易理解一些)。

與全局對(duì)象this相反,JavaScript中不提供任何方式來訪問這些局部對(duì)象(函數(shù)調(diào)用對(duì)象)。因此,開發(fā)人員無法對(duì)這些局部對(duì)象進(jìn)行操作。不過,理解這些函數(shù)調(diào)用對(duì)象對(duì)于理解JavaScript中的一些概念會(huì)有很大的幫助,比如說變量的作用域和閉包。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JavaScript中的變量定義與儲(chǔ)存介紹_javascript技巧

JavaScript中的變量定義與儲(chǔ)存介紹_javascript技巧:與C、Java等編程語言不同,JavaScript中的變量是無類型的,所有的變量定義使用的關(guān)鍵詞均為var: 代碼如下: var a; var m, n; var x=42, y=test; 如果定義變量后未對(duì)該變量進(jìn)行賦值,那么該變量的值為undefined。如上面代碼中的a、m、n三個(gè)
推薦度:
標(biāo)簽: 保存 技巧 定義
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top