<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        javascript中undefined的本質解析

        來源:懂視網 責編:小采 時間:2020-11-27 21:52:53
        文檔

        javascript中undefined的本質解析

        javascript中undefined的本質解析:一、列出7種數據類型(面試可能問) Undefined Null Boolean String Number Symbol Object 二、undefined本質 undefined是window對象的一個屬性,其類型是Undefined。 下面解釋javascript中屬性的本質,因為undefined是一個屬
        推薦度:
        導讀javascript中undefined的本質解析:一、列出7種數據類型(面試可能問) Undefined Null Boolean String Number Symbol Object 二、undefined本質 undefined是window對象的一個屬性,其類型是Undefined。 下面解釋javascript中屬性的本質,因為undefined是一個屬

        一、列出7種數據類型(面試可能問)

      1. Undefined
      2. Null
      3. Boolean
      4. String
      5. Number
      6. Symbol
      7. Object
      8. 二、undefined本質

        undefined是window對象的一個屬性,其類型是Undefined。

        下面解釋javascript中屬性的本質,因為undefined是一個屬性,了解undefine的本質要用到屬性的本質。

        三、屬性本質

        對JavaScript來說,屬性并非只是簡單的名稱和值,JavaScript用一組特征(attribute)來描述屬性(property)。

        先來說第一類屬性,數據屬性。它比較接近于其它語言的屬性概念。數據屬性具有四個特征。

      9. value:就是屬性的值。
      10. writable:決定屬性能否被賦值。
      11. enumerable:決定for in能否枚舉該屬性。
      12. configurable:決定該屬性能否被刪除或者改變特征值。
      13. 補充:第二類屬性是訪問器(getter/setter)屬性,它也有四個特征。 (本文用不到,但可以和第一類屬性放在一起記憶)

      14. getter:函數或undefined,在取屬性值時被調用。
      15. setter:函數或undefined,在設置屬性值時被調用。
      16. enumerable:決定for in能否枚舉該屬性。
      17. configurable:決定該屬性能否被刪除或者改變特征值。
      18. 我們通常用于定義屬性的代碼會產生數據屬性,其中的writable、enumerable、configurable都默認為true。我們可以使用內置函數 Object.getOwnPropertyDescripter來查看,如以下代碼所示:

        const print = console.log
        const o = {a: 1}
        o.b = 2
        // a和b均為數據屬性
        const aa = Object.getOwnPropertyDescriptor(o, 'a')
        // {value: 1, writable: true, enumerable: true, configurable: true}
        const bb = Object.getOwnPropertyDescriptor(o, 'b')
        // {value: 2, writable: true, enumerable: true, configurable: true}
        print('aa', aa)
        print('bb', bb)

        對window對象的undefined施加此函數:

        由此看出undefined是window的第一類屬性--數據屬性,而且該屬性不能能被賦值(writable=false),不能被for in枚舉(enumerable=false),不能刪除或改變特征值(configurable=false)。這也解釋為什么給undefined重新賦值后其值卻不改變:因為writable=false

        以及解釋為什么不能重新用Object.defineProperty函數定義undefined:因為configurable=false

        注:如果我們要想改變屬性的特征,或者定義訪問器屬性,我們可以使用 Object.defineProperty

        四、Undefined與Null

        一個問題,為什么有的編程規范要求用void 0代替undefined?現在我們就分別來看一下。

        Undefined 類型表示未定義,它的類型只有一個值,就是 undefined。任何變量在賦值前是 Undefined 類型、值為 undefined,一般我們可以用全局變量undefined(就是名為undefined的這個變量)來表達這個值,或者 void 運算來把任一一個表達式變成 undefined 值。

        但是呢,因為JavaScript的代碼undefined是一個變量,而并非是一個關鍵字,這是JavaScript語言公認的設計失誤之一,所以,為了避免無意中被篡改,建議使用 void 0 來獲取undefined值。

        Undefined跟 null 有一定的表意差別,null表示的是:“定義了但是為空”。所以,在實際編程時,我們一般不會把變量賦值為 undefined,這樣可以保證所有值為 undefined 的變量,都是從未賦值的自然狀態 。

        Null 類型也只有一個值,就是 null,它的語義表示空值,與 undefined 不同,null 是 JavaScript 關鍵字,所以在任何代碼中,你都可以放心用 null 關鍵字來獲取 null 值。

        五、總結

        undefined是window對象的一個屬性其類型是Undefined,屬性不是簡單的名值對,它還具有一組特征值(attribute)。通過Object.getOwnPropertyDescriptor函數可以得到這組特征值。通過Object.defineProperty函數可以添加一個自定義特征值的屬性,在已有屬性的特征值configurable為true的前提下也可以通過該函數修改已有屬性的特征值。

        補充:undefined在全局環境沒法被賦值,在局部環境是可以被賦值的!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        javascript中undefined的本質解析

        javascript中undefined的本質解析:一、列出7種數據類型(面試可能問) Undefined Null Boolean String Number Symbol Object 二、undefined本質 undefined是window對象的一個屬性,其類型是Undefined。 下面解釋javascript中屬性的本質,因為undefined是一個屬
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成人亚洲性情网站WWW在线观看| 亚色九九九全国免费视频| 国产麻豆免费观看91| 亚洲一区在线视频观看| 亚洲精品视频免费看| 91精品国产亚洲爽啪在线影院 | 国产亚洲AV无码AV男人的天堂| 国产精品偷伦视频免费观看了 | 日韩视频免费一区二区三区| 亚洲精品无码高潮喷水A片软| 在线免费一区二区| 国产精品亚洲а∨无码播放麻豆| 日本人的色道www免费一区| 国产精品亚洲色图| 综合亚洲伊人午夜网 | 99久久免费国产精品特黄| 亚洲免费福利在线视频| 日本免费一区尤物| fc2免费人成在线| 亚洲AV电影院在线观看| 波多野结衣免费在线| 亚洲色欲啪啪久久WWW综合网| 成人免费视频国产| 国产精品免费αv视频| 亚洲精品线在线观看| 欧美a级成人网站免费| 在线看亚洲十八禁网站| 伊人亚洲综合青草青草久热| 99久久久国产精品免费牛牛 | 久久国产精品免费一区二区三区| 久久青青草原亚洲AV无码麻豆| 免费人成在线观看69式小视频| 亚洲高清国产拍精品熟女| 久久亚洲欧洲国产综合| 99久久精品日本一区二区免费| 苍井空亚洲精品AA片在线播放 | 久久久久亚洲?V成人无码| 日本免费xxxx色视频| 一级看片免费视频囗交| 亚洲精品午夜视频| 亚洲AV永久无码精品一区二区国产|