1. 程式人生 > >JS封閉函數、閉包、內置對象

JS封閉函數、閉包、內置對象

cti on() url 需要 取整 用途 分享 環境 商品

一、變量作用域

變量作用域指的是變量的作用範圍,javascript中的變量分為全局變量和局部變量

1、全局變量:在函數之外定義的變量,為整個頁面公用,函數的內部外部都可以訪問。

2、局部變量:在函數內部定義的變量,只能在定義該變量的函數內部訪問,外部無法訪問。函數內部訪問變量時,先在內部查找是否有此變量,如果有,就使用內部,如果沒有,就去外部查找

技術分享

技術分享

二、封閉函數

封閉函數是javascript中匿名函數的另外一種寫法,創建一個一開始就執行而不用命名的函數。

1、一般函數的定義和執行函數

2、封閉函數的定義和執行:(function(){...})();還可以在函數定義前加上"~"或者"!"符號來定義匿名函數。

技術分享

三、閉包

閉包就是函數嵌套函數,內部函數可以引用外部函數的參數和變量,參數和變量不會被垃圾回收機制收回

技術分享

1、閉包用途1:將一個變量長期駐紮在內存當中,可用於循環中存索引值

技術分享

2、閉包用途2:私有變量計數器,外部無法訪問,避免全局變量的汙染

技術分享

四、內置對象

1、document

  比如說在商品詳情頁觀看時,想去購買,這是會跳轉到登錄頁面,登錄成功後使用該方法跳轉到商品詳情頁

  document.referrer//獲取上一個跳轉頁面的地址(需要服務器環境)

技術分享

2、location

  a、window.location.href // 獲取或者重定url地址

  技術分享

  b、window.location.search //獲取地址參數部分

  技術分享

  c、window.location.hash //獲取頁面錨點或者哈希值

  技術分享

3、Math

  a、Math.random 獲取0-1的隨機值

  技術分享

  b、Math.floor 向下取整

  技術分享

  c、Math.ceil 向上取整

  技術分享

JS封閉函數、閉包、內置對象