javascript
JavaScript 学习笔记3
2019獨角獸企業重金招聘Python工程師標準>>>
第四章 變量,作用域和內存問題
1.變量
可保存兩種類型的值:基本類型值和引用類型值。
基本類型值源于五種基本數據類型。
基本類型值和引用類型值的對比:
1).基本類型值在內存中占據固定大小的空間,因此被保存在棧內存中
2).從一個變量向另一個變量賦值基本類型的值,會創建這個值的一個副本
3).引用類型的值是對象,保存在堆內存中
4).包含引用類型值的變量實際包含的不是對象本身,而是一個指向該對象的指針
5).從一個變量想另一個變量賦值引用類型的值,復制的其實是指針,因此兩個變量最終都指向同一個對象
6).確定一個值是哪種基本類型可以使用typeof操作符,而確定一個值是哪種引用類型可以使用instanceof操作符
2.傳遞參數
訪問變量有按值和按引用兩種方式,而參數只能是按值傳遞的。
3.執行環境和作用域
1.)執行環境有全局執行環境和函數執行環境之分
2.)每次進入一個新執行環境,都會創建一個用于搜索變量和函數的作用域鏈
3.)函數的局部環境不僅有權訪問函數作用域中的變量,而且有全訪問其包含環境,乃至全局環境
4.)全局環境只能訪問全局環境中定義的變量和函數,而不能直接訪問局部環境中的任何數據
5.)變量的執行環境有助于確定應該合適釋放內存
作用域鏈:由于js的變量都是對象的屬性,而該對象可能又是其它對象的屬性,而所有的對象都是window對象的屬性,所以這些對象的關系可以看作是一條鏈?
鏈頭就是變量所處的對象,鏈尾就是window對象
with語句主要用來臨時擴展作用域鏈,將語句中的對象添加到作用域的頭部
4.垃圾收集
1.)離開作用域的值將被自動標記為可以回收,因此將在垃圾收集期間被刪除
2.)最主流:"標記清除"
?
?
?
?
?
?
轉載于:https://my.oschina.net/u/2959270/blog/779015
總結
以上是生活随笔為你收集整理的JavaScript 学习笔记3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux命令:du,df用法说明
- 下一篇: 使用 VisualVM 进行性能分析及调