成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

javascript---Symbol類型, 引用類型, 作用域

leejan97 / 1717人閱讀

摘要:指針指針指針重要的時(shí)期說(shuō)三遍由于對(duì)象類型為指針引用在變量復(fù)制方面,基本類型和引用類型也有所不同。在瀏覽器中,全局執(zhí)行環(huán)境被認(rèn)為是對(duì)象。

javascript---Symbol類型, 引用類型, 作用域
javascript的引用類型, 即對(duì)象類型是我們最常用的的類型, 其中有許多讓我們需要注意的地方, 最新的 , ES6 的推出, 使得對(duì)象類型的屬性名不僅僅可以是字符串類型,還可是Simbol 類型--(^_^現(xiàn)在有兩種類型了哦)這里奉上傳送門ES6 阮一峰

Symbol 值通過Symbol函數(shù)生成。這就是說(shuō),對(duì)象的屬性名現(xiàn)在可以有兩種類型,一種是原來(lái)就有的字符串,另一種就是新增的 Symbol 類型。凡是屬性名屬于 Symbol 類型,就都是獨(dú)一無(wú)二的,可以保證不會(huì)與其他屬性名產(chǎn)生沖突。

Smbol類型

    let mySymbol = Symbol();
    // 第一種寫法
    let a = {};
    a[mySymbol] = "Hello!"; 
    // 第二種寫法
    let a = {
        [mySymbol] = "Hello!"; 
    };
    // 第三種寫法
    let a = {};
    Object.defineProperty(a, mySymbol, { value: "Hello!" });
    // 以上寫法都得到同樣結(jié)果
    a[mySymbol] // "Hello!"

引用類型
引用類型(對(duì)象類型)是js主要類行,他的用法類似于 c 語(yǔ)言中的指針
js基本類型和引用類型存儲(chǔ)于兩個(gè)地方, 基本類型值指的是那些保存在棧內(nèi)存中的簡(jiǎn)單數(shù)據(jù)段,即這種值完全保存在內(nèi)存中的一個(gè)位置 。而引用類型值則是指那些保存在堆內(nèi)存中的對(duì)象,意思是變量中保存的實(shí)際上只是一個(gè)指針,這個(gè)指針指向內(nèi)存中的另一個(gè)位置,該位置保存對(duì)象。

ps. 指針指針指針!!! (^-^ 重要的時(shí)期說(shuō)三遍)

由于對(duì)象類型為指針引用, 在變量復(fù)制方面,基本類型和引用類型也有所不同?;绢愋蛷?fù)制的是值本身,而引用類型復(fù)制的是地址

    let box = "Lee"; //在棧內(nèi)存生成一個(gè) box "Lee"
    let box2 = box; //在棧內(nèi)存再生成一個(gè) box2 "Lee"

    let box = new Object(); //創(chuàng)建一個(gè)引用類型
    box.name = "Lee"; //新增一個(gè)屬性
    let box2 = box; //把引用地址賦值給 box2

ps. 復(fù)制對(duì)象的時(shí)候要注意你的復(fù)制需求, 到底需要潛復(fù)制還是深復(fù)制

函數(shù)參數(shù)
對(duì)于函數(shù)參數(shù), 如果是基本類型則直接按指?jìng)鬟f, 而如果是引用類型則傳遞的是引用地址--(^_^指針)

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

執(zhí)行環(huán)境是 JavaScript 中最為重要的一個(gè)概念。執(zhí)行環(huán)境定義了變量或函數(shù)有權(quán)訪問的其他數(shù)據(jù),決定了它們各自的行為。

全局執(zhí)行環(huán)境是最外圍的執(zhí)行環(huán)境。在 Web 瀏覽器中,全局執(zhí)行環(huán)境被認(rèn)為是 window對(duì)象。因此所有的全局變量和函數(shù)都是作為 window 對(duì)象的屬性和方法創(chuàng)建的。

PS:當(dāng)執(zhí)行環(huán)境中的所有代碼執(zhí)行完畢后,該環(huán)境被銷毀,保存在其中的所有變量和函數(shù)定義也隨之銷毀。如果是全局環(huán)境下,需要程序執(zhí)行完畢,或者網(wǎng)頁(yè)被關(guān)閉才會(huì)銷毀。

PS:每個(gè)執(zhí)行環(huán)境都有一個(gè)與之關(guān)聯(lián)的變量對(duì)象,就好比全局的 window 可以調(diào)用變量和屬性一樣。局部的環(huán)境也有一個(gè)類似 window 的變量對(duì)象,環(huán)境中定義的所有變量和函數(shù)都保存在這個(gè)對(duì)象中。(我們無(wú)法訪問這個(gè)變量對(duì)象,但解析器會(huì)處理數(shù)據(jù)時(shí)后臺(tái)使用它)

PS:每個(gè)函數(shù)被調(diào)用時(shí)都會(huì)創(chuàng)建自己的執(zhí)行環(huán)境。當(dāng)執(zhí)行到這個(gè)函數(shù)時(shí),函數(shù)的環(huán)境就會(huì)被推到環(huán)境棧中去執(zhí)行,而執(zhí)行后又在環(huán)境棧中彈出(退出),把控制權(quán)交給上一級(jí)的執(zhí)行環(huán)境。

PS:當(dāng)代碼在一個(gè)環(huán)境中執(zhí)行時(shí),就會(huì)形成一種叫做作用域鏈的東西。它的用途是保證對(duì)執(zhí)行環(huán)境中有訪問權(quán)限的變量和函數(shù)進(jìn)行有序訪問。作用域鏈的前端,就是執(zhí)行環(huán)境的變量對(duì)象

作用域
javascript設(shè)計(jì)之初并沒有塊級(jí)作用域, 而只有函數(shù)作用域(^_^是不是有點(diǎn)反人類)
所以給程序員帶來(lái)了不便,不過可以通過立即執(zhí)行匿名函數(shù)來(lái)模仿塊級(jí)作用域

(function () {
  var name = "Iris";
})()

ES6: 沒有塊級(jí)作用域的語(yǔ)音一切都要?dú)w罪于 var 關(guān)鍵字, 于是 ES6 推出了新的關(guān)鍵字 let const 現(xiàn)在官方推薦所有的 var 關(guān)鍵字都可以用 let 代替, let cost 將存在塊級(jí)作用域功能 具體他們的不同可以參考鏈接描述

    (function(){
      if (4) {
        var name = "Iris";
      }
      console.log(name);//Iris  
      if (5) {
        let age = "23";
      }
      console.log(age);//age is not defined
    })()

ps. name在代碼塊外部是不可見的

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/107195.html

相關(guān)文章

  • Javascript Symbol 隱匿的未來(lái)之星

    摘要:通常,它做為一個(gè)偏功能性的標(biāo)記來(lái)表示,在全劇中它是唯一的。并且使用來(lái)生成,會(huì)在存入當(dāng)前全局上下文中一個(gè)結(jié)構(gòu)中,我們稱它為顧名思義,它是全局的,所以使用時(shí)我們需要謹(jǐn)慎,尤其是在大型項(xiàng)目中。 ES6中基礎(chǔ)類型增加到了7種,比上一個(gè)版本多了一個(gè)Symbol,貌似出現(xiàn)了很長(zhǎng)時(shí)間,但卻因沒有使用場(chǎng)景,一直當(dāng)作一個(gè)概念層來(lái)理解它,我想,用它的最好的方式,還是要主動(dòng)的去深入了解它吧,所以我從基礎(chǔ)部分...

    wwolf 評(píng)論0 收藏0
  • 變量、作用和內(nèi)存問題

    摘要:使用聲明的變量會(huì)動(dòng)被添加到最近的環(huán)境中查詢標(biāo)識(shí)符,現(xiàn)在作用域鏈的最前端開始搜索,逐步向上級(jí)查詢,直到找到匹配的標(biāo)識(shí)符,在變量查詢中,訪問局部變量要比全局變量更快,因?yàn)椴恍枰蛏纤阉髯饔糜颉? 基本類型和引用類型的值 基本類型值指的是簡(jiǎn)單的數(shù)據(jù)段;引用類型值指那些可能由多個(gè)值構(gòu)成的對(duì)象。不能給基本類型添加屬性,可以給引用類型值動(dòng)態(tài)的添加屬性。 基本類型按值訪問,存放在棧內(nèi)存中。引用類型按引...

    lentrue 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)》筆記:變量、作用、內(nèi)存問題

    摘要:作用域鏈中的下一個(gè)變量對(duì)象來(lái)自包含外部環(huán)境,而再下一個(gè)變量對(duì)象則來(lái)自下一個(gè)包含環(huán)境。這樣,一直延續(xù)到全局執(zhí)行環(huán)境全局執(zhí)行環(huán)境的變量對(duì)象始終都是作用域鏈中的最后一個(gè)對(duì)象標(biāo)識(shí)符解析沿作用域鏈一級(jí)一級(jí)搜索標(biāo)識(shí)符。 一、寫在前面 最近研究了創(chuàng)建Android虛擬機(jī)、vscode結(jié)合weex開發(fā)Android APP、Vmware裝MAC虛擬機(jī)的事,看的內(nèi)容不夠多,接下來(lái)加油 二、變量、作用域和...

    U2FsdGVkX1x 評(píng)論0 收藏0
  • JavaScript變量、作用和內(nèi)存問題

    摘要:全局變量是最外圍的一個(gè)執(zhí)行環(huán)境,代碼在環(huán)境中執(zhí)行,會(huì)創(chuàng)建一個(gè)作用域鏈,用途是保證對(duì)執(zhí)行環(huán)境有權(quán)訪問所有變量和函數(shù)的有序訪問。作用域鏈中最后一個(gè)對(duì)象始終是全局執(zhí)行環(huán)境。內(nèi)部環(huán)境可以通過作用域鏈訪問所有的外部環(huán)境,外部則不能訪問內(nèi)部。 1、基本類型和引用類型的值 * 基本類型 : 指的是簡(jiǎn)單的數(shù)據(jù)段,五種基本類型是按值訪問的,可以直接操作保存在變量中實(shí)際的值。 * 引用類型 : 指那些可能...

    Dr_Noooo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<