真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

語言基礎(chǔ)---變量

語言基礎(chǔ)-變量

前言

從本篇博客開始 博主個(gè)人認(rèn)為重要的知識(shí)點(diǎn)都會(huì)在在行前添加 ? 來進(jìn)行標(biāo)識(shí)

創(chuàng)新互聯(lián)建站專注于網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

變量

ECMASCRIPT變量是松散類型,意思是變量可以用于保存任何類型的數(shù)據(jù)。ECMASCRIPT中有三個(gè)關(guān)鍵字可以來聲明變量:var、let和const。

值得注意的是let和const只能在ES6以及更晚的版本中使用。

var關(guān)鍵字

定義變量的基本方式:

var message;//個(gè)人不推薦,在不初始化的情況下定義變量,就會(huì)保存一個(gè)特殊的值undefinded。

var car="奔馳";//ECMASCRIPT 實(shí)現(xiàn)變量初始化,此時(shí)就可以定義變量并設(shè)置它的初始值。

car=100;//合法,但是不推薦。

上面對(duì)于car變量的操作中,有一點(diǎn)值得注意,car變量首先被定義為一個(gè)字符串變量,后來又被賦值為數(shù)值。雖然這在ECMASCRIPT中完全合法,但是想想當(dāng)項(xiàng)目龐大起來,一個(gè)能被隨意賦值的變量會(huì)給項(xiàng)目增加多大的維護(hù)難度。這可能就是為啥現(xiàn)在TypeScript那么被青睞的原因之一。

var的作用域

?var是函數(shù)作用域,也就是說在函數(shù)內(nèi)定義變量 在會(huì)在函數(shù)內(nèi)部生效,并在函數(shù)退出時(shí)銷毀該變量,這里就會(huì)涉及到j(luò)s的垃圾回收機(jī)制。后面寫到的再細(xì)說,示例代碼如下:

function myfun(){
	var message='hello';
	//message=hello'; 合法,但不推薦,這樣可以再局部作用域中定義全局變量。不推薦的原因也是因?yàn)椴缓镁S護(hù),畢竟想想就很奇怪
}
myfun();
console.log(message);//報(bào)錯(cuò)

var聲明提升

?使用var聲明變量會(huì)把變量自動(dòng)提升到函數(shù)作用域頂部。

function foo(){
	console.log(name);
	var name='Mercy';	
}
foo();//undefined

之所以不會(huì)報(bào)錯(cuò),是因?yàn)镋CMASCRIPT把他等價(jià)于如下代碼:

function foo(){
	var name;
	console.log(name);
	name='Mercy';	
}
foo();//undefined

let關(guān)鍵字

let作用域

?let跟var的作用差不多,但是有著非常重要的區(qū)別。最明顯的區(qū)別就是,let聲明的范圍是塊作用域,而var聲明的范圍是函數(shù)作用域。啥是塊作用域通俗點(diǎn)講就是 花括號(hào) { } 包裹的代碼塊。

if(true){
   var name='Mercy';
   cosnole.log(name);//Mercy
}
cosnole.log(name);//Mercy
if(true){
   let name='Mercy';
   cosnole.log(name);//Mercy
}
cosnole.log(name);//ReferenceError:name 沒有定義

冗余聲明

?let也不允許同一個(gè)塊作用域中出現(xiàn)冗余聲明。

var name;
var name;

let age;
let age;//SyntaxError:標(biāo)識(shí)符age已經(jīng)聲明過了

暫時(shí)性死區(qū)

?let與var的另一個(gè)重要的區(qū)別就是let聲明的變量不會(huì)再作用域中被提升。

cosnole.log(age);
let age=22;//ReferenceError:age 沒有定義

在let聲明之前的執(zhí)行瞬間被稱為“暫時(shí)性死區(qū)”,在此階段引用后面才聲明的變量都會(huì)拋出ReferenceError。

全局聲明

?與var關(guān)鍵字不同,使用let在全局作用域中聲明的變量不會(huì)成為為window對(duì)象的屬性(var聲明的變量則會(huì))。

var name = 'Matt'; 
console.log(window.name); // 'Matt' 
let age = 26; 
console.log(window.age); // undefined

---持續(xù)更新中---


標(biāo)題名稱:語言基礎(chǔ)---變量
URL分享:http://weahome.cn/article/dsojihe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部