JavaSctipt高級程序 前5章左右

第二章:小結(jié)

  1. 在使用JavaScript外部腳步時菩佑,src屬性可以鏈接到外部文件浊洞,也可以鏈接到外部域的文件。
<javascript src="路徑" type="text/javascript"></javascript>
  1. 元素會按照默認(rèn)的方式進行虽界,前提是不使用defer和async屬性情況下烤咧,
  1. defer=”defer”屬性將延遲到瀏覽器遇到之后才會執(zhí)行偏陪,但是支持html5標(biāo)準(zhǔn)的瀏覽器中,會忽略這個屬性煮嫌,所以把延遲腳本放在頁面底部是最佳選擇。

  2. async src=”example.js” 屬性目的是為了不讓頁面等待腳本下載抱虐,而異步加載頁面的其他內(nèi)容昌阿,該屬性腳本一定會在頁面的load事件前執(zhí)行。

  3. 一般應(yīng)該把元素放在前面,目的是為了先加載頁面懦冰,在執(zhí)行腳本灶轰,防止出現(xiàn)空白頁面的情況。

放在</body>之后
  1. Js的嚴(yán)格模式:
functiondoSomething(){

“use   strict”;//開啟嚴(yán)格模式的代碼

//函數(shù)體

}

開啟嚴(yán)格模式之后刷钢,ECMAScript一些不確定和規(guī)范的操作將會得到處理

如果有意的忽略var的操作符笋颤,會由于相應(yīng)變量不會馬上就有定義而導(dǎo)致不必要的混亂。在未經(jīng)聲明的變量賦值在嚴(yán)格模式下會拋出ReferenceError的錯誤内地。

  1. Typeof(操作符)用于檢測給定變量的數(shù)據(jù)類型伴澄,undefind,boolean阱缓,string非凌,number,boject荆针,function敞嗡,實例:
alert(typeof 95);--------//number

第四章:變量、作用域和內(nèi)存問題

  1. 賦值變量值:當(dāng)從一個變量復(fù)制基本數(shù)據(jù)類型值時航背,倆個都擁有各自的獨立內(nèi)存喉悴,互不影響。而復(fù)制對象時玖媚,倆著都成為引用箕肃,則都指向一個保存在堆內(nèi)存的對象。
var num1=3最盅;
var num2=num1突雪;
num1=4;
alert(num1);---//5;
alert(num2);---//3

var o1=new object();
var o2=o1;
o1.name=”hasname”;
alert(o2.name);---//hasname;
  1. 基本變量和對象引用變量作為函數(shù)參數(shù)傳遞時:基本變量復(fù)制成另一個內(nèi)部函數(shù)變量涡贱,互不干擾咏删。而對象引用變量給出引用,即多一個引用问词,倆者都指向一個對象督函。

  2. 局部作用域的對象不會在全局中變現(xiàn)出來,在局部建立的對象在函數(shù)結(jié)束時自動銷毀激挪。

  3. with(“object”)語句--將其添加到函數(shù)中辰狡,可以把object對象暫時引入到函數(shù)中,并將其添加到作用域的前端垄分。在with執(zhí)行環(huán)境中宛篇,能夠創(chuàng)建變量和更改object對象的屬性和變量。但是創(chuàng)建的變量是作為函數(shù)執(zhí)行環(huán)境而言薄湿,是函數(shù)的局部變量叫倍,不能夠作為object對象的變量或者屬性偷卧。在結(jié)束with語句之后,該引用就會被銷毀吆倦,重新按執(zhí)行環(huán)境執(zhí)行听诸。

  4. 沒有塊級作用域:在js中,在if語句或者for語句等語句中定義的變量在語句執(zhí)行完成之后不會被銷毀蚕泽。因為它是作為當(dāng)前整個執(zhí)行環(huán)境的變量(局部或者全局)晌梨;

eg:for(vari=0;i<10;i++){

alert(i);

var a=”I am a”;

}

alert(i);alert(a);--//依然有效

第六章:引用類型:

  1. 創(chuàng)建對象的引用,對象字面量定義:
var object1=new object();

var object2={name:”name1”,age:29}; //以逗號隔開须妻,最后一個無符號

varobject3={“name”:”name”,”age”:29};

varobject4={};object4.name=”name”;object4.age=29;

以上創(chuàng)建方法等價W序颉!璧南!

  1. 利用對象面量語法傳遞大量可選參數(shù):
eg:function display(object){

if(type ofobject.name=”string”)alert(object.name+”string類型的name”);

if(type ofobject.age=”number”)alert(object.age+”number類型的age”);

}

display({

name:”thisname”,

age:20

});


display({

age:19

});
  1. Array中模擬類似于堆棧的堆內(nèi)存(先進后出FILO):

push(任意多個內(nèi)容)—將括號內(nèi)的內(nèi)容依次添加到數(shù)組末尾,pop()—取出數(shù)組末尾的數(shù)掌逛。
push()方法返回添加后的數(shù)組長度,pop()返回的是移除的末尾數(shù)組內(nèi)容司倚。

模擬隊列方法(先進先出FIFO):shift()取出位于array中下標(biāo)為0位的內(nèi)容豆混,?>即移除首位元素。

ECMAScript還提供unshift(任意多個內(nèi)容)能夠把任意內(nèi)容插入到數(shù)組前动知,

順序從左至右皿伺,依次插入。

4. 數(shù)組排序:

1.reverse()方法將數(shù)組中的項顛倒順序盒粮。

2.sort()將數(shù)組中的每個項執(zhí)行toString()方法鸵鸥,然后進行升序比較。Sort()方法中接受一個比較函數(shù)丹皱,如果比較函數(shù)返回一個負(fù)數(shù)妒穴,就證明比較函數(shù)中的第一個value應(yīng)該位于第二個value之前。反之比較函數(shù)返回一個正數(shù)摊崭。相等返回0讼油。

eg:var arr=[1,5,0,10,15];

sort(compare);

document.write();//15,10,5,1,0

fucntioncompare(value1,value2){

if(value1){

return 1;

}

Else fi(value1>value2){

Return-1;//返回-1:value1在value2的前面。

}

elsereturn 0;

}

function compare(value1,value2){

returnvalue1-value2;//數(shù)值比較(valueof方法返回為number)呢簸,升序排列矮台、

}

5.復(fù)制數(shù)組:

  1. concat(接受一個或多個任意項)該方法為數(shù)組引用對象的方法,能夠復(fù)制當(dāng)前數(shù)組并將接受的參數(shù)依次添加到創(chuàng)建的副本數(shù)組中根时。并返回該數(shù)組副本瘦赫。

  2. slice(接受一個或者倆個數(shù)值)同為數(shù)組引用對象的方法,能夠根據(jù)參數(shù)確定引用數(shù)組中項的位置蛤迎,并將之提取出來确虱,重新創(chuàng)建一個數(shù)組返回。

var arr=[0,1,2,5,7,9];

var arr2=arr.slice(0,3)//newarr[0,1,2];相當(dāng)于是[0,3)

var arr2=arr.slice(2);//newarray[2,5,7,9];接受一個參數(shù)時替裆,其后都選中蝉娜。

var arr2=arr.slice(-3,-1);//newarray[5,7];如果出現(xiàn)負(fù)數(shù)唱较,則將數(shù)組長度與之相加為位置扎唾。如果還是負(fù)數(shù)召川,則返回空數(shù)組。

3. splice(2個及以上數(shù)量的參數(shù));

刪除--倆個參數(shù):第一個參數(shù)指定位置胸遇,第二個指定刪除個數(shù)荧呐。array.splice(0,2);刪除前倆項。

插入--3個參數(shù)或以上:第一二參數(shù)同上纸镊,第三個及以后參數(shù)為插入項倍阐。array.splice(1,0,”red”,”green”);從第二項開始插入red和green項。

替換—3個參數(shù)或以上:第一二參數(shù)同上逗威,第三個及以后參數(shù)為替換項峰搪。array.splice(1,1,”grey”);刪除第二項,并將之替換為grey凯旭。

splice方始終會返回一個數(shù)組概耻,該數(shù)組包含splice方法刪除的項(如果沒有刪除任何項来涨,則返回一個空的數(shù)組)

上述原理為:不刪除越庇,為插入,刪除即為替換械馆。
  1. 定位查找數(shù)組項:indexOf(查找的,,查找起點位置(可選))順序查找嫉柴。

lastindexOf(查找的項,查找起點位置(可選))末尾開始向前查找厌杜。也從末尾下標(biāo)為0向前計數(shù)。

倆個方法都返回要查找的項在數(shù)組中的位置计螺,在沒有找到的情況下返回-1夯尽,第一個參數(shù)要查找的項必須跟數(shù)組中的項完全相等,用==符號比較登馒。倆者的地址要相等

  1. 迭代方法:都接受倆個參數(shù)匙握,第一個為執(zhí)行的函數(shù),第二個為函數(shù)作用域(this)谊娇。

every()方法:每一item都滿足函數(shù)條件時肺孤,返回true;--每一項都滿足是為true济欢。

filter()方法:返回滿足函數(shù)條件的item的數(shù)組赠堵;--我要看哪些項滿足條件,過濾器法褥。

foreach()方法:為每個item都執(zhí)行該函數(shù)茫叭,無返回;--我只要你們按照函數(shù)執(zhí)行半等。

map()方法:每個item執(zhí)行函數(shù)揍愁,并返回執(zhí)行后的數(shù)組呐萨;--你們都執(zhí)行函數(shù),我要看你們的執(zhí)行結(jié)果莽囤。

some()方法:每個item執(zhí)行函數(shù)谬擦,只有要一個item執(zhí)行后返回true,就返回一個true的值朽缎。--查看有沒有item滿足惨远。

arra=[1,5,10,20,3,4,7];

varresult=arra.map(function(item,index,array){//index為項的索引array為數(shù)組的對象

returnitem*2;

});

console.log(result.toString());//2 10 20 40 60 8 14
  1. reduce()和reduceRight()累加器:他們都接受倆個參數(shù),一個為執(zhí)行的函數(shù)话肖,一個為可選的縮小值北秽。
執(zhí)行的函數(shù)內(nèi),包含4個參數(shù)最筒。pre為前一項贺氓,curr為當(dāng)前項,index為索引床蜘,array為數(shù)組對象辙培。當(dāng)?shù)谝淮芜\行函數(shù)式,pre為第一項悄泥,curr為第二項虏冻。
arra=[1,5,10,20,3,4,7];

result=arra.reduce(function(pre,curr,index,array) {//pre為1 curr為5

returnpre+curr;//求和示例

});

console.log(result);//50
  1. Date類型:類型是早期java.util.Date類基礎(chǔ)上構(gòu)建的。

  2. RegExp對象(正則表達(dá)式):

1.創(chuàng)建:new RegExp(/ab+c/, 'i'); //ES6新增允許的寫法

a) g---global全局模式弹囚,表示正則將會依次查找并匹配整個文本厨相。

b) i---case-insensitive忽略匹配的文本的大小寫。

c) m---multiline多行匹配鸥鹉,即會在匹配到一行末尾時蛮穿,依然會匹配下一行。

  1. 對象方法:reg.exec(進行匹配的字符串)該方法進行捕獲字符串中的匹配值毁渗。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末践磅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子灸异,更是在濱河造成了極大的恐慌府适,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肺樟,死亡現(xiàn)場離奇詭異檐春,居然都是意外死亡,警方通過查閱死者的電腦和手機么伯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門疟暖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事俐巴」峭” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵欣舵,是天一觀的道長擎鸠。 經(jīng)常有香客問我,道長邻遏,這世上最難降的妖魔是什么糠亩? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮准验,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘廷没。我一直安慰自己糊饱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布颠黎。 她就那樣靜靜地躺著另锋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狭归。 梳的紋絲不亂的頭發(fā)上夭坪,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音过椎,去河邊找鬼室梅。 笑死,一個胖子當(dāng)著我的面吹牛疚宇,可吹牛的內(nèi)容都是我干的亡鼠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼敷待,長吁一口氣:“原來是場噩夢啊……” “哼间涵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起榜揖,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤勾哩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后举哟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體思劳,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年炎滞,在試婚紗的時候發(fā)現(xiàn)自己被綠了敢艰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡册赛,死狀恐怖钠导,靈堂內(nèi)的尸體忽然破棺而出震嫉,到底是詐尸還是另有隱情,我是刑警寧澤牡属,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布票堵,位于F島的核電站,受9級特大地震影響逮栅,放射性物質(zhì)發(fā)生泄漏悴势。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一措伐、第九天 我趴在偏房一處隱蔽的房頂上張望特纤。 院中可真熱鬧,春花似錦侥加、人聲如沸捧存。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昔穴。三九已至,卻和暖如春提前,著一層夾襖步出監(jiān)牢的瞬間吗货,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工狈网, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宙搬,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓孙援,卻偏偏與公主長得像害淤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拓售,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

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

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,237評論 0 4
  • 第5章 引用類型 引用類型的值(對象)是引用類型的一個示例窥摄。在ECMAScript 中,引用類型是一種數(shù)據(jù)結(jié)構(gòu)础淤,用...
    力氣強閱讀 716評論 0 0
  • 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的 JavaScript 類型 使用基本類型和基本包裝類型 引用類型的...
    悶油瓶小張閱讀 681評論 0 0
  • 今日鍛煉如下:中午1h瑜伽晚上45m拳擊課+20m卷腹&腿部運動 工作日雷打不動每天給自己留出時間鍛煉鸽凶,早已習(xí)慣了...
    魔都阿貍閱讀 1,155評論 2 4
  • 因為老哥搬家币砂,想送點兒東西,千挑萬選選中了多肉玻侥,手欠買了一堆(其實是故意的(*∩_∩*))决摧,準(zhǔn)備送他個拼盤,我自己...
    白跑磨鞋底閱讀 199評論 1 1