當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript 高级程序设计第四章解读,总结。
生活随笔
收集整理的這篇文章主要介紹了
JavaScript 高级程序设计第四章解读,总结。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第四章 變量,作用域與內存
通過變量使用原始值
- 1. 原始值與引用值+ 原始值: 最簡單的數據+ 引用值: 多個值構成的對象 - 2. 原始值有哪些+ Undefined Null Boolean Number String Symbol+ 訪問時 直接訪問存儲在變量中的實際值+ 由于JavaScript不允許直接訪問內存,所以不能直接操作對象所在的內存空間。在操作對象時,實際上操作的式對改對象的引用,而非對象本身。 - 3. 動態屬性+ 只有引用值可以動態的增加或者顯示的刪除該屬性+ 而給原始值增加屬性的時候,不報錯,但是增加無效,打印時 : undefined+ let name = "Nicholas";name.age = 19;console.log(age); //expected output : undefined - 4. 復制值+ 原始值:利用賦值運算符便可進行+ 引用值:簡單的進行賦值,實現的是倆個引用值指向的是一塊存儲空間 - 5. 傳遞參數+ 原始值傳遞參數和引用值傳遞參數都一樣,都是傳值。引用值也不是傳引用:看一下例子:+ function setName(obj){obj.name = "Nicholas";obj = new Object();obj.name = "Tom";}let persion = new Object();setName(persion.name);console.log(persion.name); // expected output : "Nicholas" - 6 確定類型+ typeof 確定原始值類型+ instanceof 確定Object類型+ console.log(person instanceof Object);+ console.log(colors instanceof Array);+ console.log(pattern instanceof RegExp);+ instanceof 操作符檢測任何引用值和Object構造函數都會返回true 若是檢測到原始值,會返回false理解執行上下文
- 1 執行上下文與作用域- 表示全局上下文的對象可能不一樣,所有通過var定義的全局變量和全局函數都會成為window對象的屬性和方法- 使用let 和 const 的頂級聲明不會定義在全局上下文中,但在作用域解析上效果是一樣的,上下文在其所有代碼執行完畢后會被銷毀,包括定義在它上面的所有變量和函數。- 每個函數都有自己的上下文,函數的上下文會被推到一個上下文棧上。在函數執行完,上下文棧會彈出該函數的上下文。- 作用域鏈:+ 決定訪問各級上下文中的代碼在訪問變量和函數時的執行順序。+ 如果上下文是函數,活動對象作為變量對象,活動對象最初只有一個定義變量:arguments 全局上下文中沒有這個變量。作用域鏈中的下一個對象來自包含上下文,再下一個對象來自下一個包含上下文,依次類推,知道window上下文。+ 內部上下文通過作用域鏈可以訪問到所有父級上下文,而父級上下文不能訪問自己上下文。- 作用域鏈增強:+ 某些語句會導致在作用于前端臨時添加一個上下文,在這個上下文執行后會被刪除+ try/catch 語句中的catch塊+ catch 會創建一個新的變量對象,這個變量對象會包含要拋出的錯誤對象的聲明+ with 語句+ 會向作用域鏈前端添加指定對象+ function buildUrl() {let qs = "?debug=true";with (location) {let url = href + qs;}return ul;}理解垃圾回收
- JavaScript是使用垃圾回收的語言,也就是說執行環境負責在代碼執行時管理內 - 瀏覽器的發展史上,用到過兩種主要的 標記策略:標記清理和引用計數+ 標記清理 + 引用計數總結
以上是生活随笔為你收集整理的JavaScript 高级程序设计第四章解读,总结。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王者荣耀表现分会重置吗
- 下一篇: 建行生活APP如何买单