當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
轻松搞定javascript变量(闭包,预解析机制,变量在内存的分配 )
生活随笔
收集整理的這篇文章主要介紹了
轻松搞定javascript变量(闭包,预解析机制,变量在内存的分配 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
變量: ?存儲數據的容器 1.聲明????? ??var 2.作用域全局變量、 局部變量、 閉包(相對的全局變量); 3.類型a.基本類型(undefined, null, boolean, number, string) ? b.引用類型;(object, function),其實function 也是對象-->var a = new Function(alert('我也是對象')); 4.類型轉換??? 隱式轉換(==,?-, *, /, alert)、 ? 顯式轉換(parseInt, parseFloat, Number, String, Boolean)。 5.命名規范?? ??可由 數字、 字母、 下劃線組成, 不能以數字開頭, 不能使用關鍵字和保留字;匈牙利命名法。 上面的補充: 命名規范 養成良好的變量使用習慣: 1.一個變量只存一種類型的數據, 2.盡量減少對隱式轉換的依賴,這樣可增強程序的可讀性,日后修改程序時不至于混亂, 3.使用匈牙利命名法, 4.使用局部變量時記得加 ?var 進行聲明,不然會與全局變量沖突, 作用域 ? ? 閉包:?子函數可以使用 父函數、祖先函數 的局部變量,(其實就是變種的 全局變量,這個變量在子函數眼中就是全局變量) ? ? javascript?預解析機制:? ?
? ?已補充,請看這:輕松搞定javascript預解析機制 ? ? 類型 內存分布(這里所說的內存是 RAM,電腦所有程序都在這運行,詳情請問度娘),
首先,將內存分為兩個區域, ? a.棧區 ? b.堆區
JS把 基本類型 存在棧區, ?把引用類型放在堆區
為什么呢,他們有什么特點嗎?
基本類型?-----> 固定空間?------體積小 ------> 所以是值傳遞(就是復制一份傳遞)??------> 存放在?棧?中 --------> 查找速度快(放在固定文件夾,當然快啦)----- 自由度小(只能點菜) 引用類型?-----> 無固定空間?------體積通常比較大------> 復制很耗性能,所以是引用傳遞(房子只有一間,就是配多一條鑰匙)??------> 存放在?堆?中 ( 一個文件夾放N種格式文件 )--------> 查找速度相對慢 ----自由度大(DIY菜式) 下面舉兩個例子 1. 房子:引用值; 鑰匙:引用地址; ?通過鑰匙可以找到房子,也可以修改里面的東西; 你朋友來了你所在的城市,晚上沒地方睡,就去酒店,你有幾套房子,你說“兄弟,來到我的地盤,怎么能讓你去住酒店呢,我那邊還有幾套房子,你來住”,這時,你是把房子背起來,直接送他那呢,還是配一條鑰匙給他呢? 很明顯,必須是配一條鑰匙! 這和引用類型是類似的, 引用類型(房子)通常是很大的,直接拷貝一份是很消耗性能的,所以直接用引用地址(鑰匙)會方便很多; 再引申到另一個問題,如果你又把 這個 引用值?賦值給別一個變量, 其實就是相當把你朋友給你的鑰匙,你又復制了一條,給了別人,那么那個人在房子里移動一下沙發什么的,改變的還是那個房子(引用值)里的東西,所以你過去時那沙發位置也就變了; 2.文件夾:引用值; 文件夾快捷方式:引用地址;?通過快捷方式可以找到文件夾,也可以修改里面的東西;
補充中....
? ?已補充,請看這:輕松搞定javascript預解析機制 ? ? 類型 內存分布(這里所說的內存是 RAM,電腦所有程序都在這運行,詳情請問度娘),
首先,將內存分為兩個區域, ? a.棧區 ? b.堆區
JS把 基本類型 存在棧區, ?把引用類型放在堆區
為什么呢,他們有什么特點嗎?
基本類型?-----> 固定空間?------體積小 ------> 所以是值傳遞(就是復制一份傳遞)??------> 存放在?棧?中 --------> 查找速度快(放在固定文件夾,當然快啦)----- 自由度小(只能點菜) 引用類型?-----> 無固定空間?------體積通常比較大------> 復制很耗性能,所以是引用傳遞(房子只有一間,就是配多一條鑰匙)??------> 存放在?堆?中 ( 一個文件夾放N種格式文件 )--------> 查找速度相對慢 ----自由度大(DIY菜式) 下面舉兩個例子 1. 房子:引用值; 鑰匙:引用地址; ?通過鑰匙可以找到房子,也可以修改里面的東西; 你朋友來了你所在的城市,晚上沒地方睡,就去酒店,你有幾套房子,你說“兄弟,來到我的地盤,怎么能讓你去住酒店呢,我那邊還有幾套房子,你來住”,這時,你是把房子背起來,直接送他那呢,還是配一條鑰匙給他呢? 很明顯,必須是配一條鑰匙! 這和引用類型是類似的, 引用類型(房子)通常是很大的,直接拷貝一份是很消耗性能的,所以直接用引用地址(鑰匙)會方便很多; 再引申到另一個問題,如果你又把 這個 引用值?賦值給別一個變量, 其實就是相當把你朋友給你的鑰匙,你又復制了一條,給了別人,那么那個人在房子里移動一下沙發什么的,改變的還是那個房子(引用值)里的東西,所以你過去時那沙發位置也就變了; 2.文件夾:引用值; 文件夾快捷方式:引用地址;?通過快捷方式可以找到文件夾,也可以修改里面的東西;
補充中....
轉載于:https://www.cnblogs.com/Ivangel/p/3682868.html
總結
以上是生活随笔為你收集整理的轻松搞定javascript变量(闭包,预解析机制,变量在内存的分配 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UI测试注意事项
- 下一篇: web在线聊天系统。非ajax轮询