你可能不知道的const

2021-10-10 07:25:14 字數 845 閱讀 8483

眾所周知,使用 const 宣告的變數必須同時初始化為某個值。

一經宣告,在其生命週期的任何時候都不能再重新賦予新值

const a;

// syntaxerror: 常量宣告時沒有初始化

const b =3;

console.

log(b)

;// 3

b =4

;// typeerror: 給常量賦值

const 宣告只應用到頂級原語或者物件。換句話說,賦值為物件的 const 變數不能再被重新賦值

為其他引用值,但物件的鍵則不受限制。

const o1 =

; o1 =

;// typeerror: 給常量賦值

const o2 =

; o2.name =

'jake'

; console.

log(o2.name)

;// 'jake'

如果想讓整個物件都不能修改,可以使用 object.freeze(),這樣再給屬性賦值時雖然不會報錯,

但會靜默失敗:

const o3 = object.

freeze()

; o3.name =

'jake'

; console.

log(o3.name)

;// undefined

開發實踐表明,如果開發流程並不會因此而受很大影響,就應該盡可能地多使用

const 宣告,除非確實需要乙個將來會重新賦值的變數。這樣可以從根本上保證提前發現

重新賦值導致的 bug。

你可能不知道的東西

元素可以分為塊級元素,行內元素以及行內塊級元素。行內元素的margin或者padding只有margin left和margin right以及padding left和padding right有效果,margin top margin bottom padding top padding bot...

你可能不知道的python logging機制

先來看幾個例子,先想一下執行結果,答案稍後揭曉 例一 mylogger logging.getlogger mylogger mylogger.info mylogger info mylogger.warning mylogger warning 例二 mylogger logging.getlo...

你可能不知道的viewport

前幾天偶然看到乙個pc端網頁,發現用手機開啟竟然同比縮放了,作為乙個前端從業者,我自然想要弄清它到底是怎麼縮放的。之後查了它的meta資訊,css和js,發現沒有任何相容手機端的 那它到底是怎麼縮放的呢?百思不得其解,最後無意中看別人說viewport的預設值是980px,才知道原來是viewpor...