為什么我在第一次console.log的后面去改變的extension[0]里面的值, 第一次console.log里面extension[0]的值為什么不是es7而是es2016呢?
<script> ????const?esobj?=?{ ????????name:?"es6", ????????year:?"2015", ????????extension:?["es7",?"es8",?"es9"] ????} ????Object.freeze(esobj); ????esobj.name?=?"es2015" ????console.log(esobj) ????esobj.extension[0]?=?"es2016" ????console.log(esobj) </script>
2022-07-04
1、上面的extension是個(gè)數(shù)組,是引用數(shù)據(jù)類型,引用數(shù)據(jù)類型是存儲(chǔ)在堆內(nèi)存的
2、Object.freeze()是淺層凍結(jié),不是深層凍結(jié)
3、console.log()的輸出可以理解為是一種異步的,可以看下這里:https://www.jianshu.com/p/f7535d62acbd