優(yōu)雅降級(jí)VS漸進(jìn)增強(qiáng)
(好像是css3出來之后火起來的,低版本的瀏覽器針對(duì)css3兼容性較差床蜘,而又不想放棄優(yōu)秀的css3特效幔荒,就在高版本的瀏覽器使用css3朝抖,低版本保證基本的功能的實(shí)現(xiàn))
優(yōu)雅降級(jí):一開始就構(gòu)建完整的功能啥箭,比如(構(gòu)建一個(gè)css3的應(yīng)用),然后針對(duì)各大瀏覽器進(jìn)行?hack治宣,從而達(dá)到各個(gè)瀏覽器的兼容急侥。
漸進(jìn)增強(qiáng):一開始就從低版本的瀏覽器進(jìn)行頁面和功能的構(gòu)建砌滞,然后再針對(duì)高版本瀏覽器進(jìn)行,效果坏怪,交互贝润,功能的完善,從而達(dá)到用戶更好的體驗(yàn)铝宵。
區(qū)別:優(yōu)雅降級(jí)主要針對(duì)最新版的瀏覽器打掘,而漸進(jìn)增強(qiáng)更注重低版本瀏覽器可用性,再注重高版本的瀏覽器
split()和join()
spilit()?切割鹏秋,返回?cái)?shù)組的形式尊蚁。join()?將數(shù)組轉(zhuǎn)換成字符串的形式
隱式類型轉(zhuǎn)換 !=? ? ? ? ?>? ? ? ? ? ?+? ? ? ? ? ? ?-? ? ? ? ==? ? ? ? ? ? ? ? ? ? ===
強(qiáng)制類型轉(zhuǎn)換
Boolean()?返回ture或false
?Number()?解析成數(shù)字
String()解析成字符串
?parseInt()可解析字符串,返回一個(gè)整數(shù)
?parseFloat()?可解析字符串侣夷,返回一個(gè)浮點(diǎn)數(shù)
引用類型轉(zhuǎn)換
toString()? 可把一個(gè)邏輯值轉(zhuǎn)換成字符串,并返回一個(gè)結(jié)果
?valueOf()可返回Boolean對(duì)象的原始值
數(shù)組方法大全
join()把數(shù)組的元素組成一個(gè)字符串,只接受一個(gè)參數(shù)鱼炒,默認(rèn)是逗號(hào)
push()可以接受所有的元素琴拧,把元素放到數(shù)組最后,返回?cái)?shù)組的長度
pop()數(shù)組末尾刪除最后一位衙传,減少數(shù)組的length值决帖,返回刪除的項(xiàng)
shift()刪除原數(shù)組的第一項(xiàng),返回刪除的值粪牲,如果為空則為underfind
unshift()從數(shù)組第一項(xiàng)添加參數(shù)古瓤,返回?cái)?shù)組的長度
sort()按升序排列,最小的值在第一項(xiàng)腺阳,最大的值在最后一項(xiàng)
reverse()反轉(zhuǎn)數(shù)組的順序
concat()創(chuàng)建一個(gè)數(shù)組副本落君,沒有參數(shù),返回原數(shù)組亭引,有參數(shù)绎速,把數(shù)組添加到副本末尾并返回
slice()可以接受一個(gè)或兩個(gè)參數(shù),起始坐標(biāo)和結(jié)束坐標(biāo)焙蚓,返回選中的項(xiàng)
splice()可以實(shí)現(xiàn)刪除纹冤,插入和替換
indexOf()從開頭查找數(shù)組的項(xiàng)
lastIndexOf()從結(jié)尾向前查找數(shù)組的項(xiàng)
forEach()對(duì)數(shù)組遍歷循環(huán)
map()將調(diào)用的數(shù)組的每個(gè)元素給指定的函數(shù),并返回一個(gè)數(shù)組购公,包含數(shù)組的返回值
filter()過濾功能?返回滿足過濾條件的數(shù)組
every()?判斷數(shù)組中每一項(xiàng)是否滿足條件萌京,只有每一項(xiàng)都滿足條件時(shí),返回true
some()只要數(shù)組中有一項(xiàng)滿足條件宏浩,就返回true
reduce()為每一個(gè)元素以次執(zhí)行回調(diào)函數(shù)知残,不包括數(shù)組中被刪除或從未被賦值的元素
reduceRight()?和reduce()是一樣的,不同之處是從末尾開始執(zhí)行的
Call和Apply的區(qū)別
Call和Apply可以手動(dòng)設(shè)置this的指向比庄。調(diào)用Call的對(duì)象必須是一個(gè)fuanction函數(shù)求妹,call的第一個(gè)參數(shù)將會(huì)是function改變上下文后指向的對(duì)象乏盐,如果不傳,將會(huì)默認(rèn)是全局對(duì)象window制恍,第二個(gè)參數(shù)開始可以接收任意個(gè)參數(shù)父能,這些參數(shù)將會(huì)作為function的參數(shù)傳入function調(diào)用call的方法會(huì)立即執(zhí)行,與call方法的使用基本一致净神,但是只接收兩個(gè)參數(shù)何吝,其中第二個(gè)參數(shù)必須是一個(gè)數(shù)組或者類數(shù)組,這也是這兩個(gè)方法很重要的一個(gè)區(qū)別强挫。
閉包
1.作為一個(gè)函數(shù)變量的一個(gè)引用岔霸,當(dāng)函數(shù)返回時(shí),其處于激活狀態(tài)俯渤。
2.一個(gè)閉包就是當(dāng)一個(gè)函數(shù)返回時(shí)呆细,一個(gè)沒有釋放資源的棧區(qū)。
簡單的說八匠,Javascript允許使用內(nèi)部函數(shù)---即函數(shù)定義和函數(shù)表達(dá)式位于另一個(gè)函數(shù)的函數(shù)體內(nèi)絮爷。而且,這些內(nèi)部函數(shù)可以訪問它們所在的外部函數(shù)中聲明的所有局部變量梨树、參數(shù)和聲明的其他內(nèi)部函數(shù)坑夯。當(dāng)其中一個(gè)這樣的內(nèi)部函數(shù)在包含它們的外部函數(shù)之外被調(diào)用時(shí),就會(huì)形成閉包抡四。
原型鏈
1.普通對(duì)象和函數(shù)對(duì)象
javascript萬物皆對(duì)象柜蜈,對(duì)象分為普通對(duì)象和函數(shù)對(duì)象
比如:new?object()?為普通對(duì)象
比如:new Function()?為函數(shù)對(duì)象
2.構(gòu)造函數(shù)
簡單的說就是,實(shí)例的構(gòu)造函數(shù)屬性指向構(gòu)造函數(shù)(constructor)
舉例:function?Preson(a,b){
????????????????????this.a = a; this.b = b;
????????????????}
var person1 = new Preson('1','2');
console.log(person1.constructor == Preson);
3.原型對(duì)象
每一個(gè)對(duì)象都有__proto__屬性,只有函數(shù)對(duì)象才有prototype屬性
面對(duì)對(duì)象