国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

const聲明常量以及凍結一個對象

jeyhan / 2884人閱讀

摘要:是新增加的關鍵字,作用是聲明一個只讀變量。暫時性死區塊級作用域聲明的值是基礎數據類型,那么這個變量的值就不可以改變。

const是ES6新增加的關鍵字,作用是聲明一個只讀變量。這個變量指向的內容地址是不可以改動的。

const a = 1

a = 4  // TypeError: Assignment to constant variable.

let一樣,它也有暫時性死區和塊級作用域的特性。

// 暫時性死區
console.log(b)  // ReferenceError
const b = 2
// 塊級作用域
if (true)
{
    const c = 2
}
console.log(c) // Uncaught ReferenceError: MAX is not defined

const聲明的值是基礎數據類型(Number,String,Boolean),那么這個變量的值就不可以改變。如果值是復合類型(主要是對象和數組),那么里面的屬性或者每一項則可以改變。因為const只能保證這個指針是固定的,但是指向的數據結構則不可以控制。

const d = {}

d.name = "123"
console.log(d.name) // "123"

d = {} // TypeError: "d" is read-only
const f = []
f.push("123") // ["123"]
console.log(f) // ["123"]
f = [] // Uncaught TypeError: Assignment to constant variable.

如果想要將一個對象給鎖死,應該使用Object.freeze

const e = Object.freeze({})
// 常規模式時,下面一行不起作用
// 嚴格模式時,該行會報錯 Uncaught TypeError: Cannot add property name, object is not extensible
e.name = "123"

如果想要徹底鎖死,應該將對象下面的所有屬性鎖死

function freezeObj(obj) {
    Object.freeze(obj)
  Object.keys(obj).forEach(function (v) {
    if (typeof obj[v] === "object") {
      freezeObj(obj[v])
    }
  })
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107827.html

相關文章

  • 前端如何定義一個常量

    摘要:很多編程語言提供了關鍵詞聲明一個常量,在中也是提供了,但是在前端的與其他編程語言不同,其并不意味著聲明的變量就是一個常量。所以,在前端中到底如何實現一個常量可以凍結對象,不能新增和刪除屬性,同時對象已有屬性都是不可枚舉不可配置不可寫。 很多編程語言提供了const關鍵詞聲明一個常量,在ES6中也是提供了const,但是在前端的const與其他編程語言不同,其并不意味著聲明的變量就是一個...

    widuu 評論0 收藏0
  • ES6學習筆記:const

    摘要:學習筆記的使用其他特性用來聲明常量,聲明時必須初始化聲明的常量不能重新賦值對于基本類型,值不能改變對于引用類型,存儲的是一個地址,地址不能變,但對象本身是可變的如果不想后續更改對象,使用文檔用來凍結一個對象。該方法返回被凍結的對象。 let命令有的幾個特性,const也有。ES6學習筆記:let的使用 其他特性: 用來聲明常量,聲明時必須初始化 const PI;//SyntaxErr...

    sydMobile 評論0 收藏0
  • ES6入門之let、cont

    摘要:凡是在聲明之前就使用這些變量,就會報錯。這在語法上,稱為暫時性死區,簡稱。同樣也不會聲明提升,也存在暫時死區,只能在聲明之后使用,且和一樣不得重復聲明,不能重新賦值。全局環境中,會返回頂層對象。 showImg(https://segmentfault.com/img/remote/1460000018739573?w=3240&h=2160); 一、前提 解決ES5中只有全局作用域和...

    wwq0327 評論0 收藏0
  • ES6 -- let和const

    摘要:和不同,沒有變量提升,聲明之前,該變量都是不可用的。聲明創建一個只讀的常量。這不意味著常量指向的值不可變,而是變量標識符的值只能賦值一次。聲明同時必須賦值。 LET和const命令 var 變量聲明提升原則 var語句聲明的變量的作用域是當前執行位置的上下文 給一個非聲明變量賦值會隱式創建一個全局變量(全局object的一個屬性),注意這里是非聲明賦值 聲明和賦值是兩回事,注意區分,...

    whidy 評論0 收藏0
  • 工作中常用es6+特性

    摘要:結合工作中使用情況,簡單對進行一些復習總結,包括常用的語法,等,以及短時間內要上手需要重點學習的知識點不同工作環境可能有一些差別,主要參考鏈接是阮一峰的博客以及外文博客阮老師大部分文章是直接翻譯的這個博客簡介先說一下,是一個標準化組織,他們 結合工作中使用情況,簡單對es6進行一些復習總結,包括常用的語法,api等,以及短時間內要上手需要重點學習的知識點(不同工作環境可能有一些差別),...

    xcold 評論0 收藏0

發表評論

0條評論

jeyhan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<