亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - var, const, let, window.prop 與 Object.defineProperty之間有什么區(qū)別?

瀏覽:115日期:2023-04-29 09:41:37

問題描述

求大神解釋一下下面示例的原因:

變量定義

<script> var a = 1 let b = 2 const c = 3 window.d = 4 Object.defineProperty(window, ’e’, { value: 5 }) console.log(a, b, c, d, e) console.log(window.a, window.b, window.c, window.d, window.e)</script>輸出:1,2,3,4,51 undefined undefined 4 5

重復(fù)聲明

<script> Object.defineProperty(window, ’a’, { value: 1, writable: false }) let a = 2 console.log(a) console.log(window.a)</script>輸出:21

<script> Object.defineProperty(window, ’a’, { value: 1 })</script><script> let a = 2 console.log(a)</script><script> console.log(a)</script>輸出:Uncaught SyntaxError: Identifier ’a’ has already been declared1

問題解答

回答1:

let 有獨立作用域的

const 聲明一個只讀的常量、一旦聲明,常量的值就不能改變。

全局的var會賦值給window、(這可能是你不想要的)

window屬性賦值是很常見的做法、只不過賦值對象是window

Object.defineProperty可以設(shè)置setter和getter方法、或者讓他不可修改、甚至可以不讓他變成對象的枚舉

回答2:

js里面Global這一級別就是window對象。所以a可以在window上訪問到,d直接就在window上賦值的也可以訪問到。e也是綁到了window上。

let和const這兩個呢,屬于ES2015,和他們共同誕生的有一個塊級作用域,就是說他們定義的只會在當(dāng)前塊級作用域,不會被其他地方訪問到。

然后最后一個提示被占用,我覺得可以這樣來解釋

javascript - var, const, let, window.prop 與 Object.defineProperty之間有什么區(qū)別?

標簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 日韩欧美一级a毛片欧美一级 | 国产麻豆一级在线观看 | 国产精品福利视频主播真会玩 | 国产免费人做爰午夜视频 | 青青成人福利国产在线视频 | 亚洲不卡在线观看 | 青青草免费在线视频 | 二区三区不卡不卡视频 | 一级黄毛片 | 久久精品国产亚洲片 | 黄色片网站免费观看 | 精品国产福利久久久 | 亚洲精品一区国产二区 | 天天综合色一区二区三区 | 精品欧美日韩一区二区三区 | 国产91视频观看 | 99久久国语对白精品露脸 | 欧洲亚洲欧美国产日本高清 | 国产高清免费不卡观看 | 日本一级特黄aa毛片免费观看 | 国内精品久久久久 | 日本xxxwww免费视频软件 | 亚洲网站黄色 | 日本黄色福利视频 | 中国女人a毛片免费全部播放 | 久久久久欧美精品 | 色综合一区二区三区 | 免费一级成人毛片 | 国产福利在线 | 国产精品视频一区二区噜噜 | 中日韩欧美视频 | 亚欧成人中文字幕一区 | 午夜高清性色生活片 | 国产三级观看 | 国产免费久久精品 | 国产在线观看美女福利精 | 一级黄色片在线看 | 日韩中文字幕精品视频在线 | 高中生精品视频在线观看 | 97免费在线视频 | 国产成人网 |