<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關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScrip關(guān)于創(chuàng)建常量的知識點

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:24:00
        文檔

        JavaScrip關(guān)于創(chuàng)建常量的知識點

        JavaScrip關(guān)于創(chuàng)建常量的知識點:本文通過JS中創(chuàng)建常量的定義用法以及函數(shù)寫法中常見的錯誤進行深入分析,希望對大家有所用處: 所謂常量即只能讀取不能編輯(刪除,修改)的變量。 js并沒有原始的常量說法(即自定義的,原生態(tài)的),但是可以用一些偏僻的路子去創(chuàng)建。 1:const es6中的
        推薦度:
        導讀JavaScrip關(guān)于創(chuàng)建常量的知識點:本文通過JS中創(chuàng)建常量的定義用法以及函數(shù)寫法中常見的錯誤進行深入分析,希望對大家有所用處: 所謂常量即只能讀取不能編輯(刪除,修改)的變量。 js并沒有原始的常量說法(即自定義的,原生態(tài)的),但是可以用一些偏僻的路子去創(chuàng)建。 1:const es6中的

        本文通過JS中創(chuàng)建常量的定義用法以及函數(shù)寫法中常見的錯誤進行深入分析,希望對大家有所用處:

        所謂常量即只能讀取不能編輯(刪除,修改)的變量。

        js并沒有原始的常量說法(即自定義的,原生態(tài)的),但是可以用一些偏僻的路子去創(chuàng)建。

        1:const es6中的聲明關(guān)鍵詞。

        上面聲明了兩個變量,當執(zhí)行修改操作時就將報錯。從某種程度上來說,const是可以創(chuàng)建變量(基本類型)的。但是對引用類型就捉襟見肘。

        當聲明的變量是一個引用類型時即對象,對對象的操作(刪除,修改,添加)都是可以進行的。

        2:Object 方法(defineProperty,seal,freeze)實現(xiàn)

        1) Object.defineProperty:   該方法會直接在一個對象上定義一個新屬性,或者修改一個對象的現(xiàn)有屬性, 并返回這個對象。   

        采用上述方法之后后續(xù)對a的修改功能就失效了,雖然修改功能不能正常執(zhí)行, 但是刪除功能卻還是可以照常進行。

        刪除之后繼續(xù)添加a屬性時,a又變成可改的了。上述只是將a屬性的可寫屬性改了,還有一個configurable屬性可以進行設(shè)置。writable屬性只是將對應(yīng)的屬性變更為不可直接更改,但是可以走小路(先刪除在添加)。

        到此屬性a就算定下來了,及不能修改,也不能刪除。

        但是,新的風暴有出現(xiàn)了。。a雖然定下來了,但對于TEST_D這個變量來說,還沒有結(jié)束。。

        雖然屬性a不能變動了,但是并不影響對其他屬性的操作,比如b,s,u啊的,當然針對這些屬性也可以像上述方式一樣將其余屬性的描述符,但是還是不能解決對TEST_D的擴展。

        2) Object.preventExtensions:  該方法讓一個對象變的不可擴展,也就是永遠不能再添加新的屬性。 查看詳情

        通過該方法就可以將對象設(shè)置為不可擴展了,即不可添加新屬性了,這樣這個變量就不能被修改了。

        3)Object.seal:讓一個對象密封并返回被密封之后的對象,新對象將變得不可擴展,即不能添加新的屬性但是可以修改原本可寫狀態(tài)的屬性

        利用上述兩種方法循環(huán)使用是可以去創(chuàng)建常量的,但是比較復雜,而且當對象比較大的時候,代碼量會比較大。Object.seal()可以簡化這個過程。這個方法可以將對象變得不可擴展,屬性不可刪除。在此基礎(chǔ)上在將對象的所有屬性的描述符writable改為false就能得到我們要的變量了,即所謂常量。

        4) Object.freeze:  該方法可以凍結(jié)一個對象,凍結(jié)指的是不能向這個對象添加新的屬性,不能修改其已有屬性的值,不能刪除已有屬性,以及不能修改該對象已有屬性的可枚舉性、可配置性、可寫性。也就是說,這個對象永遠是不可變的。該方法返回被凍結(jié)的對象。

        Object.freeze方法是在seal基礎(chǔ)上在將所有屬性的描述符writable改為false。

        但是當變量的屬性值又為對象時,及下列情況:

        對于user屬性而言,他的值是還是可以更改的,這個時候就得對他也進行凍結(jié)。

          

        /**
         * 
         * 
         * @param {any} obj 
         */
        function freezeObj(obj) {
         Object.freeze(obj);
         Object.keys(obj).forEach(key => {
         if (typeof obj[key] === 'object') {
         freezeObj(obj[key])
         }
         })
        }

        即:當存在多重對象時,需要循環(huán)調(diào)用凍結(jié)方法。

         3: 閉包

        const USER = (() => {
         const USER = {
         name: 'evening',
         gender: 'M'
         }
         return {
         get(name){
         return user[name]
         }
         }
        })()
        USER.get('name')

        閉包用了比較隱秘的方法,將真正的對象原型保存在內(nèi)存中而且不會被回收,變相的將USER這個變量‘保護'起來,并且提供訪問的接口,但是不提供修改的接口。

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

        文檔

        JavaScrip關(guān)于創(chuàng)建常量的知識點

        JavaScrip關(guān)于創(chuàng)建常量的知識點:本文通過JS中創(chuàng)建常量的定義用法以及函數(shù)寫法中常見的錯誤進行深入分析,希望對大家有所用處: 所謂常量即只能讀取不能編輯(刪除,修改)的變量。 js并沒有原始的常量說法(即自定義的,原生態(tài)的),但是可以用一些偏僻的路子去創(chuàng)建。 1:const es6中的
        推薦度:
        標簽: js javascript 知識點
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲啪啪综合AV一区| 亚洲午夜国产片在线观看| 亚洲最新在线视频| 4444www免费看| 亚洲国产综合第一精品小说| 91福利视频免费| 亚洲午夜久久久精品电影院| 99久久免费精品高清特色大片| 亚洲卡一卡2卡三卡4卡无卡三| 97国产在线公开免费观看| 亚洲一区二区成人| 最近中文字幕大全中文字幕免费| 亚洲精品456在线播放| 最近最新MV在线观看免费高清| 国产精品亚洲一区二区麻豆| 国产免费人成视频在线观看 | 亚洲欧美日韩中文字幕在线一区| 免费看少妇作爱视频| 青青草97国产精品免费观看| 中文亚洲成a人片在线观看| 无码国产精品一区二区免费式芒果| 久久狠狠高潮亚洲精品| 成人免费淫片在线费观看| 美女羞羞视频免费网站| 亚洲精品美女久久777777| 日本免费网址大全在线观看| 亚洲a∨无码精品色午夜| 亚洲色婷婷六月亚洲婷婷6月| 在线免费观看亚洲| 国产成人亚洲精品91专区高清| 国产综合亚洲专区在线| 曰曰鲁夜夜免费播放视频| 国产成人亚洲精品无码AV大片| 人人狠狠综合久久亚洲婷婷| 我们的2018在线观看免费高清| 男女猛烈无遮掩视频免费软件| 亚洲大片在线观看| 免费国产成人高清在线观看麻豆| 毛片免费在线观看| 看一级毛片免费观看视频| 久久久亚洲欧洲日产国码aⅴ|