国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

關(guān)于JS變量和作用域詳解

2024-05-06 16:31:40
字體:
供稿:網(wǎng)友

ECMAScript 變量:

1.基本類型值(簡單數(shù)據(jù)段)

2.引用類型值(可能由過個值構(gòu)成的對象) → 保存在內(nèi)存中的對象

------

動態(tài)屬性: 只能給引用型值動態(tài)添加新屬性,以便將來使用。

------

復(fù)制變量值 :

基本類型值的復(fù)制 → 在變量對象上創(chuàng)建一個新值 → 復(fù)制給新變量(互不影響)

引用類型值的復(fù)制 → 將存儲在變量對象中的值復(fù)制到新變量分配空間中(復(fù)制的是一個指針,指向同一個對象,相互影響)

------

傳遞參數(shù):

ECMAScript中所有函數(shù)的參數(shù)都是按值傳遞 。

(函數(shù)外部的值復(fù)制給函數(shù)內(nèi)部的參數(shù)。

 → 可以把ECMA函數(shù)的參數(shù)想象成局部變量。)

原因解釋:

說法一:

函數(shù)參數(shù)是一種局部變量,在外部值傳遞給函數(shù)參數(shù),內(nèi)部外部互不影,引用傳遞復(fù)制的是地址,所以他內(nèi)務(wù)外部相互有影響。

說法二:對象角度(參數(shù)是一個對象 obj)

------

對象按值傳遞 → 參數(shù)對象和外部對象引用同一個對象 → 外部對象指向的對象在堆內(nèi)存中只有一個,且是全局變量。

不要錯認(rèn)為是在局部作用在修改的對象在全局作用域(外部)反映出來的結(jié)果 → 函數(shù)內(nèi)部的局部變量在函數(shù)執(zhí)行完會立即銷毀。

------

執(zhí)行環(huán)境(有時候也簡稱“環(huán)境”)及作用域

執(zhí)行環(huán)境定義了白嬢或函數(shù)有權(quán)訪問其他數(shù)據(jù)決定了他們各自的行為 → 每個執(zhí)行環(huán)境都有一個與之關(guān)聯(lián)的變量對象 → 環(huán)境中定義的所有變量和函數(shù)都保存在這個對象。

------

每個函數(shù)都有自己的執(zhí)行環(huán)境 → 當(dāng)執(zhí)行流進(jìn)入一個函數(shù)時 → 函數(shù)環(huán)境會被推入一個環(huán)境棧中 → 在函數(shù)執(zhí)行后將其彈出 → 把控制權(quán)返回給之前的執(zhí)行環(huán)境
 
代碼在一個環(huán)境執(zhí)行中時,會創(chuàng)建變量對象的一個作用域鏈(scope chain)

作用域鏈用途:保證對執(zhí)行環(huán)境有權(quán)訪問的所有變量和函數(shù)的有序訪問。

作用域鏈的前端,始終都是當(dāng)前執(zhí)行的代碼所在環(huán)境的變量對象
------

內(nèi)部環(huán)境可以通過作用域鏈所有的外部環(huán)境,但是外部環(huán)境不能訪問內(nèi)部環(huán)境(環(huán)境的聯(lián)系是線性的,有次序的 → 向上搜索作用域鏈以查詢變量和函數(shù)名)

函數(shù)參數(shù)也被當(dāng)做變量來對待

------

延長作用域鏈:

有些語句可以在作用域的前端鏈臨時增加一個變量(變量在代碼執(zhí)行后移除)

1.try-catch語句的catch塊

2.with語句
------

Javas沒有塊級作用域

這里可以再簡單區(qū)分一下塊級作用域和函數(shù)作用域

以上這篇關(guān)于JS變量和作用域詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網(wǎng)。

 

注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 保亭| 保靖县| 宜兰县| 伊宁县| 盐山县| 措美县| 平昌县| 黎城县| 阜南县| 乌鲁木齐市| 乡城县| 吉水县| 娄底市| 丹凤县| 万荣县| 哈巴河县| 桦川县| 乐东| 射阳县| 伊宁市| 揭阳市| 丹东市| 罗江县| 洪泽县| 新河县| 钟祥市| 江达县| 西贡区| 陵水| 桃源县| 百色市| 开化县| 万安县| 泾阳县| 保靖县| 康马县| 班玛县| 寿阳县| 承德县| 洛隆县| 台江县|