欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

JavaScript變量類型以及變量作用域的示例分析

這篇文章主要介紹JavaScript變量類型以及變量作用域的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)是專業(yè)的老城網(wǎng)站建設(shè)公司,老城接單;提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行老城網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

變量類型

ECMAScript變量可能包含兩種不同類型的數(shù)據(jù)值:基本類型和引用類型。

基本類型

基本類型指的是簡(jiǎn)單的數(shù)據(jù)段,5種基本數(shù)據(jù)類型:undefined、null、boolean、number、string,基本數(shù)據(jù)類型是按值訪問(wèn)的,因此可以操作保存在變量中的實(shí)際的值。

復(fù)制變量值

從一個(gè)變量向另一個(gè)變量復(fù)制基本類型的值,會(huì)在變量對(duì)象上創(chuàng)建一個(gè)新值,然后把該值復(fù)制到為新變量分配的位置上。例如:

var num1 = 5;
var num2 = num1;

復(fù)制前的變量對(duì)象

JavaScript變量類型以及變量作用域的示例分析

復(fù)制后的變量對(duì)象

JavaScript變量類型以及變量作用域的示例分析

引用類型

引用類型指那些可能由多個(gè)值構(gòu)成的對(duì)象,引用類型的值是保存在內(nèi)存中的對(duì)象,JavaScript不允許直接訪問(wèn)內(nèi)存中的位置,在操作對(duì)象時(shí),實(shí)際上是在操作對(duì)象的引用而不是實(shí)際的對(duì)象,因此,引用類型的值是按引用訪問(wèn)的。

動(dòng)態(tài)屬性

引用類型的值,我們可以為其添加屬性和方法,也可以改變和刪除其屬性和方法。如果對(duì)象不被銷毀或者這個(gè)屬性不被刪除,則這個(gè)屬性將一直存在,但是我們不能給基本類型的值添加屬性。例如:

var person = new Object();
person.say = "hello";
alert(person.say); //"hello"

復(fù)制變量值

從一個(gè)變量向另一個(gè)變量復(fù)制引用類型的值時(shí),也會(huì)將存儲(chǔ)在變量對(duì)象中的值復(fù)制一份放到為新變量分配的空間中,這個(gè)值的副本實(shí)際上是一個(gè)指針,而這個(gè)指針指向存儲(chǔ)在堆中的一個(gè)對(duì)象。復(fù)制結(jié)束后,兩個(gè)變量實(shí)際上將引用同一個(gè)對(duì)象,改變其中一個(gè)變量,就會(huì)影響另一個(gè)變量。例如:

var obj1 = new Object();
var obj2 = obj1;
obj1.say = "hello";
alert(obj2.say); //"hello"

JavaScript變量類型以及變量作用域的示例分析

傳遞參數(shù)

ECMAScript中所有函數(shù)的參數(shù)都是按值傳遞的,把函數(shù)外部的值復(fù)制給函數(shù)內(nèi)部的參數(shù)。在向參數(shù)傳遞基本類型的值時(shí),被傳遞的值會(huì)被復(fù)制給一個(gè)局部變量;在向參數(shù)傳遞引用類型的值時(shí),會(huì)把這個(gè)值在內(nèi)存中的地址復(fù)制給一個(gè)局部變量,因此這個(gè)局部變量的變化會(huì)反映在函數(shù)的外部。例如:

function addTen(num) {
 num += 10;
 return num;
}
var count = 20;
var result = addTen(count);
alert(count);  //20 
alert(result);  //30

執(zhí)行環(huán)境及作用域

執(zhí)行環(huán)境定義了變量或函數(shù)有權(quán)訪問(wèn)的其他數(shù)據(jù),決定了他們各自的行為。
全局執(zhí)行環(huán)境是最外圍的執(zhí)行環(huán)境,在WEB瀏覽器中,全局執(zhí)行環(huán)境被認(rèn)為是window對(duì)象,因此全局變量和屬性都是作為window的屬性和方法創(chuàng)建的。
每個(gè)函數(shù)都有自己的執(zhí)行環(huán)境,當(dāng)執(zhí)行流進(jìn)入一個(gè)函數(shù)時(shí),函數(shù)的環(huán)境就會(huì)被推入一個(gè)環(huán)境棧中,在函數(shù)執(zhí)行之后,棧將其彈出,將控制權(quán)返回給之前的執(zhí)行環(huán)境。
當(dāng)代碼在一個(gè)環(huán)境中執(zhí)行時(shí),會(huì)創(chuàng)建變量對(duì)象的一個(gè)作用域鏈,作用域鏈的用途是保證對(duì)執(zhí)行環(huán)境有權(quán)訪問(wèn)的所有變量和函數(shù)的有序訪問(wèn)。作用域鏈的前端始終是當(dāng)前指行代碼所在的變量對(duì)象,作用域鏈中下一個(gè)變量對(duì)象來(lái)自外部環(huán)境,再下一個(gè)變量對(duì)象來(lái)自下一個(gè)外部環(huán)境,這樣一直延續(xù)到全局環(huán)境,全局執(zhí)行環(huán)境的變量對(duì)象始終是作用域鏈的最后一個(gè)對(duì)象。
標(biāo)識(shí)符解析是沿著作用域鏈一級(jí)一級(jí)地搜索標(biāo)識(shí)符的過(guò)程。搜索過(guò)程始終從作用域鏈的前端開(kāi)始,然后逐級(jí)地向后回溯,直到找到標(biāo)識(shí)符為止。

JavaScript變量類型以及變量作用域的示例分析

內(nèi)部環(huán)境可以通過(guò)作用域鏈訪問(wèn)所有的外部環(huán)境,但外部環(huán)境不能訪問(wèn)內(nèi)部環(huán)境中的任何變量和函數(shù)。

無(wú)塊級(jí)作用域

JavaScript中沒(méi)有塊級(jí)作用域,例如:

if(true){
 var color = "blue";
}
alert(color);  //"blue"

在函數(shù)中未使用var聲明的變量會(huì)被成全局變量,例如:

function add(num1,num2){
 sum = num1 + num2;
 return sum;
}
var result = add(10,20);
alert(sum);  //30

以上是“JavaScript變量類型以及變量作用域的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站標(biāo)題:JavaScript變量類型以及變量作用域的示例分析
URL鏈接:http://chinadenli.net/article26/pijccg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)用戶體驗(yàn)、網(wǎng)站建設(shè)、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司