眾所周知,使用 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...