一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - JavaScript中的變量定義與儲存介紹

JavaScript中的變量定義與儲存介紹

2021-06-15 16:37junjie JavaScript

這篇文章主要介紹了JavaScript中的變量定義與儲存介紹,本文先是講解了變量定義的一些技巧,然后對變量的儲存做了講解,需要的朋友可以參考下

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

 

復(fù)制代碼 代碼如下:

var a;
var m, n;
var x=42, y="test";

 


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

 

由于JS中變量是無類型的,因此完全可以對同一個變量進行不同類型的賦值,如:

 

復(fù)制代碼 代碼如下:

var b = "temp";
console.log(typeof b);//string
b = 108;
console.log(typeof b);//number

 


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

 

復(fù)制代碼 代碼如下:

var c = "hello";
console.log(c);//hello
var c = true;
console.log(c);//true

 


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

 

變量的儲存

 

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

 

復(fù)制代碼 代碼如下:

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

 


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

 

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲黄色三级视频 | 亚色九九九全国免费视频 | 国产在线观看a | 羞羞私人影院可以直接免费观影吗 | 91tm视频 | 欧美一级久久久久久久大片 | 1377大但人文艺术包子铺 | 99久久国产视频 | 色就色欧美综合偷拍区a | 色怡红院| 亚洲成人福利 | 大伊香蕉精品二区视频在线 | 精品无码久久久久久久动漫 | 久热这里在线精品 | 91四虎国自产在线播放线 | 16男男gaygays| 青青草在视线频久久 | 日本69sex护士www | 日韩一品在线播放视频一品免费 | 香蕉tv国产在线永久播放 | 性色香蕉AV久久久天天网 | 91人人在线 | 成人影院入口 | 四虎在线永久免费视频网站 | 精品久久香蕉国产线看观看麻豆 | 草莓视频丝瓜 | 俺去啦最新官网 | 好大好硬好湿好紧h | 草草剧场 | 无人在线视频高清免费观看动漫 | 蜜桃影像传媒破解版 | 国产思妍小仙女一二区 | 亚洲精品国产精品精 | 国产精品青青青高清在线密亚 | 小舞同人18av黄漫网站 | 亚洲欧美日韩天堂在线观看 | 暖暖的韩国免费观看 | 国产午夜精品福利 | 欧美日韩综合一区 | 九九精品视频在线播放 | 韩国情事伦理片观看地址 |