變量的作用域贸伐、封閉函數(shù)勘天、用變量的方式定義函數(shù)、閉包捉邢、跳轉(zhuǎn)的源頁面脯丝、獲取地址欄參數(shù)

變量的作用域

全局變量:函數(shù)外部定義的變量,函數(shù)內(nèi)部和外部都可以訪問伏伐,它的值可以共享

局部變量:函數(shù)內(nèi)部定義的變量宠进,函數(shù)內(nèi)部可以訪問,外部無法訪問藐翎。函數(shù)內(nèi)部訪問變量時材蹬,先在內(nèi)部查找是否有此變量,如果有吝镣,就使用內(nèi)部變量堤器,如果沒有,就去外部查找

函數(shù)內(nèi)部如果不用'var'關(guān)鍵字定義變量末贾,變量可能會變成全局變量闸溃,如果用嚴(yán)格模式解析會報錯


封閉函數(shù)

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>封閉函數(shù)</title>

<script type="text/javascript">

/*原來的寫法

function myAlert(){

var str = '歡迎訪問我的主頁';

alert(str);

}

myAlert();*/

var str = function(){

alert('test');

}

//封閉函數(shù)的一般寫法

//封閉函數(shù)定義:(function(){……})()

/*

;;(function(){

var str = '歡迎訪問我的主頁';

alert(str);

})();//最后的()表示馬上執(zhí)行

*/

//封閉函數(shù)其他的寫法:在匿名函數(shù)前加“!”或者“~”,之后加“()”

~function(){

var str = '歡迎訪問我的主頁';

alert(str);

}();

</script>

</head>

<body>

</body>

</html>


用變量的方式定義函數(shù)

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>用變量的方式定義函數(shù)</title>

<script type="text/javascript">

/*

原來的寫法:可以提前

myAlert();

function myAlert(){

alert('hello!');

}*/

//函數(shù)用變量方式定義:先定義再使用

// myalert();//提前會報錯

var myAlert = function(){

alert('hello!');

}

myAlert();//放在下面可以執(zhí)行

</script>

</head>

<body>

</body>

</html>


閉包

閉包的本質(zhì)就是函數(shù)嵌套辉川,就是在函數(shù)里面定義函數(shù)表蝙,

內(nèi)部函數(shù)可以引用外部函數(shù)的參數(shù)和變量

參數(shù)和變量不會被垃圾回收機制給回收

閉包的用途:可以存循環(huán)的索引值、做私有變量計數(shù)器

閉包的一般寫法

function aa(b){

var a = 12;

function bb(){

alert(a);

alert(b);

}

return bb;

}

var cc = aa(24);*/

//閉包的封閉函數(shù)寫法

var cc = (function(b){

var a = 12;

function bb(){

alert(a);

alert(b);

}

return bb;

})(24);

cc();

/*

//只能調(diào)用一次的閉包

(function(b){

var a = 12;

function bb(){

alert(a);

alert(b);

}

return bb;

})(24)();

*/

</script>

閉包存循環(huán)的索引值


閉包做私有變量計數(shù)器


閉包做選項卡

<style type=''text-css''>

.btns{

?? /*按鈕*/

? ? ? width:500px;

? ? ? height:50px;

}

?? /*選項卡的樣式*/

?? .btns input{

? ? ? width:100px;

? ? ? height:50px;

? ? ? background-color:#ddd;/*默認(rèn)灰色*/

? ? ? color:#666;

? ? ? border:0px;

}

.btns input.cur{

? ? ? background-color:#bbaaff;

}

?? /*內(nèi)容區(qū)的樣式*/

?? .contents div{

? ? ? width:500px;

? ? ? height:300px;

? ? ? background-color:#bbaaff;

? ? ? /*內(nèi)容隱藏*/

? ? ? display:none;

? ? ? text-align:center;

? ? ? line-height:300px;

}

.contents div.active{

? ? ? display:block;

}

</style>

<script type=''text/javascript''>

//閉包做選項卡

?? window.onload = function(){

? ? ? var btns = document.getElementById('btns'

? ? ? ).getElementsByTagName('input');

? ? ? var cons = document.getElementById('contents'

? ? ? ).getElementsByTagName('div');

? ? ? for (var i=0; i<btns.length; i++){

? ? ? ?? btns[i].onclick =function () {

? ? ? ? ? ? for (var j=0;j<btns.length; j++){

? ? ? ? ? ? ?? btns[j].className = '';

}

? ? ? ? ? ? this.className = 'cur';

}

}

?? }

</script>

<div class="btns" id="btns">

?? <input type="button" value="tab01" class="cur">

?? <input type="button" value="tab02">

?? <input type="button" value="tab03">

</div>

<div class="contents" id="contents">

?? <div class="active">tab文字內(nèi)容一</div>

?? <div>tab文字內(nèi)容二</div>

?? <div>tab文字內(nèi)容三</div>

</div>


跳轉(zhuǎn)的源頁面

<script type="text/javascript">

?? var backurl = document.referrer;

?? //登錄邏輯

?? //跳轉(zhuǎn)到上一個頁面

?? window.location.href = backurl;

? </script>

<body>

? ? < a >北財網(wǎng)</ a>

</body>


獲取地址欄參數(shù)

<script type="text/javascript">

? ? ? //file:///D:/HTML/%E5%89%8D%E7%AB%AF/demo/demo-A/156%E8%8E%B7%E5%8F%96%E5%9C%B0%E5%9D%80%E6%A0%8F%E5%8F%82%E6%95%B0.html?username=tom#12

? ? ? var data = window.location.search;//獲取地址參數(shù)部分

? ? ? // console.log(data);// ?username=tom 打印獲取到的數(shù)據(jù)

? ? ? var arr = data.split('=');

? ? ? console.log(arr);//用=切割['?username','tom']

? ? ? var name = arr[1];//

? ? ? var span01 = document.getElementById('span01')

? ? ? span01.innerHTML = name;//往span里添加內(nèi)容

? ? ? var hash = window.location.hash;

? ? ? console.log(hash);//#12

?</script>

<body>

<div>歡迎<span id="span01"></span>訪問我的主頁</div>

</body>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乓旗,一起剝皮案震驚了整個濱河市府蛇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寸齐,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抄谐,死亡現(xiàn)場離奇詭異渺鹦,居然都是意外死亡,警方通過查閱死者的電腦和手機蛹含,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門毅厚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浦箱,你說我怎么就攤上這事吸耿。” “怎么了酷窥?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵咽安,是天一觀的道長。 經(jīng)常有香客問我蓬推,道長妆棒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任沸伏,我火速辦了婚禮糕珊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘毅糟。我一直安慰自己红选,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布姆另。 她就那樣靜靜地躺著喇肋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迹辐。 梳的紋絲不亂的頭發(fā)上苟蹈,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音右核,去河邊找鬼慧脱。 笑死,一個胖子當(dāng)著我的面吹牛贺喝,可吹牛的內(nèi)容都是我干的菱鸥。 我是一名探鬼主播宗兼,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼氮采!你這毒婦竟也來了殷绍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鹊漠,失蹤者是張志新(化名)和其女友劉穎主到,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躯概,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡登钥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了娶靡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牧牢。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖姿锭,靈堂內(nèi)的尸體忽然破棺而出塔鳍,到底是詐尸還是另有隱情,我是刑警寧澤呻此,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布轮纫,位于F島的核電站,受9級特大地震影響焚鲜,放射性物質(zhì)發(fā)生泄漏蜡感。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一恃泪、第九天 我趴在偏房一處隱蔽的房頂上張望郑兴。 院中可真熱鬧,春花似錦贝乎、人聲如沸情连。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽却舀。三九已至,卻和暖如春锤灿,著一層夾襖步出監(jiān)牢的瞬間挽拔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工但校, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留螃诅,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像术裸,于是被迫代替她去往敵國和親倘是。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容