封闭函数:时javascript中匿名函数的另一种写法,创建一个一开始就执行而不用命名的函数
示例:
1)
(function(){ ???var str = ‘欢迎访问我的主页‘; ???alert(str); ???a++; })();
2)
!function(){ ???var str = ‘欢迎访问我的主页‘; ???alert(str); ???a++; }();
3)
~function(){ ???var str = ‘欢迎访问我的主页‘; ???alert(str); ???a++; }();
注:在封闭函数前面加;可以避免一些不必要的问题~
闭包:函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制收回。
闭包作用:
1)将一个变量长期驻扎在内存当中,可用于循环中存索引值。
???????var aLi = document.getElementsByTagName(‘li‘); ???????????????for(var i=0;i<aLi.length;i++) ???????{ ???????????(function (i) { ????????????????????aLi[i].onclick = function () { ???????????????????????????alert(i); ???????????????} ????????????})(i); ???????} ???
2)私有变量计数器,外部无法访问,避免全局变量的污染。
???????var count = aa(); ???????function aa() { ???????????var a = 1; ???????????function bb() ???????????{ ???????????????a++; ???????????????return a; ???????????} ???????????return bb; ???????} ???????alert(count()); ???????alert(count());
内置对象:
1)document
document.referrer //获取上一个跳转页面的地址(需要服务器环境)
2)location
window.location.href //获取或者重定url地址;
window.location.search //获取地址参数部分;
window.location.hash //获取页面锚点或者叫哈希值;
<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>Title</title> ???<script type="text/javascript"> ???????window.onload = function (){ ???????????var Dat = window.location.search; ???????????var oSpan = document.getElementById(‘span01‘); ???????????var arr = Dat.split(‘=‘); ???????????var a = arr[1]; ???????????oSpan.innerHTML = a; ???????} ???</script></head><body> ???<div>欢迎<span id="span01"></span>来到我的主页</div></body></html>
3)Math
Math.random //获取0-1的随机数;
Math.floor //向下取整;
Math.ceil //向上取整;
JS——封闭函数、闭包、内置对象
原文地址:https://www.cnblogs.com/gaoquanquan/p/9200661.html