摘要:所有非本地對(duì)象都屬于宿主對(duì)象。因此,不同類(lèi)型對(duì)象的方法的返回值和返回值類(lèi)型均可能不同。參數(shù)必須目標(biāo)對(duì)象必須目標(biāo)自有屬性示例張三張三功能獲取目標(biāo)對(duì)象上的全部自有屬性名包括不可枚舉屬性組成的數(shù)組。它是正式推薦的設(shè)置原型對(duì)象的方法。
JS三大對(duì)象對(duì)象什么的,程序員可是有很多呢...
對(duì)象,是任何一個(gè)開(kāi)發(fā)者都無(wú)法繞開(kāi)和逃避的話題,她似乎有些深不可測(cè),但如此偉大和巧妙的存在,一定值得你去摸索、發(fā)現(xiàn)、征服。
我們都知道,JavaScript有3大對(duì)象,分別是本地對(duì)象、內(nèi)置對(duì)象和宿主對(duì)象。
在此引用ECMA-262(ECMAScript的制定標(biāo)準(zhǔn))對(duì)于他們的定義:
本地對(duì)象
與宿主無(wú)關(guān),獨(dú)立于宿主環(huán)境的ECMAScript實(shí)現(xiàn)提供的對(duì)象。
簡(jiǎn)單來(lái)說(shuō),本地對(duì)象就是 ECMA-262 定義的類(lèi)(引用類(lèi)型)。
這些引用類(lèi)型在運(yùn)行過(guò)程中需要通過(guò)new來(lái)創(chuàng)建所需的實(shí)例對(duì)象。
包含:Object、Array、Date、RegExp、Function、Boolean、Number、String等。
內(nèi)置對(duì)象
與宿主無(wú)關(guān),獨(dú)立于宿主環(huán)境的ECMAScript實(shí)現(xiàn)提供的對(duì)象。
在 ECMAScript 程序開(kāi)始執(zhí)行前就存在,本身就是實(shí)例化內(nèi)置對(duì)象,開(kāi)發(fā)者無(wú)需再去實(shí)例化。
內(nèi)置對(duì)象是本地對(duì)象的子集。
包含:Global和Math。
ECMAScript5中增添了JSON這個(gè)存在于全局的內(nèi)置對(duì)象。
宿主對(duì)象
由 ECMAScript 實(shí)現(xiàn)的宿主環(huán)境提供的對(duì)象,包含兩大類(lèi),一個(gè)是宿主提供,一個(gè)是自定義類(lèi)對(duì)象。
所有非本地對(duì)象都屬于宿主對(duì)象。
對(duì)于嵌入到網(wǎng)頁(yè)中的JS來(lái)說(shuō),其宿主對(duì)象就是瀏覽器提供的對(duì)象,瀏覽器對(duì)象有很多,如Window和Document等。
所有的DOM和BOM對(duì)象都屬于宿主對(duì)象。
Object類(lèi)型 屬性關(guān)于專業(yè)名詞:本地對(duì)象也經(jīng)常被叫做原生對(duì)象或內(nèi)部對(duì)象,包含Global和Math在內(nèi)的內(nèi)置對(duì)象在《JavaScript高級(jí)程序設(shè)計(jì)》里也被叫做單體內(nèi)置對(duì)象,很多時(shí)候,干脆也會(huì)直接把本地對(duì)象和內(nèi)置對(duì)象統(tǒng)稱為“內(nèi)置對(duì)象”,也就是說(shuō)除了宿主對(duì)象,剩下的都是ECMAScript的內(nèi)部的“內(nèi)置”對(duì)象。
聲明:本文也將采取這種統(tǒng)稱為“內(nèi)置對(duì)象”的方式,比如文章標(biāo)題。
constructor
prototype
1、toString()
功能:返回當(dāng)前對(duì)象的字符串形式,返回值為String類(lèi)型。
示例:
[1,"2",true].toString(); //"1,2,true" (new Date()).toString(); //"Sun Sep 24 2017 14:52:20 GMT+0800 (CST)" ({name:"ryan"}).toString(); //"[object Object]"
該方法屬于Object對(duì)象,由于所有的對(duì)象都"繼承"了Object的對(duì)象實(shí)例,因此幾乎所有的實(shí)例對(duì)象都可以使用該方法。
JavaScript的許多內(nèi)置對(duì)象都重寫(xiě)了該函數(shù),以實(shí)現(xiàn)更適合自身的功能需要。
2、toLocaleString
功能:返回當(dāng)前對(duì)象的"本地化"字符串形式,以便于當(dāng)前環(huán)境的用戶辨識(shí)和使用,返回值為String類(lèi)型。
示例:
(1234567).toLocaleString(); //"1,234,567" (6.37588).toLocaleString(); //"6.376" (new Date()).toLocaleString(); //"2017/9/24 下午2:58:21"
3、valueOf()
功能:返回指定對(duì)象的原始值。
靜態(tài)方法JavaScript的許多內(nèi)置對(duì)象都重寫(xiě)了該函數(shù),以實(shí)現(xiàn)更適合自身的功能需要。因此,不同類(lèi)型對(duì)象的valueOf()方法的返回值和返回值類(lèi)型均可能不同。
1、Object.assign(target, ...sources)
功能:把一個(gè)或多個(gè)源對(duì)象的可枚舉、自有屬性值復(fù)制到目標(biāo)對(duì)象中,返回值為目標(biāo)對(duì)象。
參數(shù):
目標(biāo)對(duì)象(必須)
至少一個(gè)源對(duì)象(可選)
示例:
var target = { a:1 }; var source1 = { b:2 }; var source2 = { c:function(){ console.log("c"); } }; Object.assign(target,source1,source2); console.log(target); //{a: 1, b: 2, c: ?}
拓展:自定義實(shí)現(xiàn)一個(gè)assign方法
//自定義一個(gè)assign方法 function copy(target){ if(target == null){ throwError("出錯(cuò):Cannot convert undefined or null to object"); } var target = new Object(target); for(var i = 1;i < arguments.length;i ++){ var source = arguments[i]; for(var key in source){ if(source.hasOwnProperty(key)){ //若當(dāng)前屬性為源對(duì)象自有屬性,則拷貝至目標(biāo)對(duì)象 target[key] = source[key]; } } } return target; }
2、Object.create(proto [,propertiesObject])
功能:創(chuàng)建一個(gè)對(duì)象,其原型為prototype,同時(shí)可添加多個(gè)屬性。
參數(shù):
proto(必須):原型對(duì)象,可以為null表示沒(méi)有原型。
descriptors(可選):包含一個(gè)或多個(gè)屬性描述符的對(duì)象。
propertiesObject參數(shù)詳解:
數(shù)據(jù)屬性
value:值
writable:是否可修改屬性的值
configurable:是否可通過(guò)delete刪除屬性,重新定義
enumerable:是否可for-in枚舉
訪問(wèn)屬性
get():訪問(wèn)
set():設(shè)置
示例:
function Person(name){ this.name = name; } Person.prototype.say = function(){console.log("my name is " + this.name +",my age is " + this.age);} var person = new Person("ryan"); var p = Object.create(person,{ age:{ value: 23, writable: true, configurable: true }, sex:{ configurable: true, get:function(){return sex + "士";}, set:function(value){sex = value;} } }); p.sex = "男"; p.say(); //"my name is ryan,my age is 23" console.log(p.sex); //"男士" p.sex = "女"; console.log(p.sex); //"女士"
總結(jié):Object.create(proto [,propertiesObject]) 是E5中提出的一種新的對(duì)象創(chuàng)建方式,第一個(gè)參數(shù)是要繼承的原型,如果不是一個(gè)子函數(shù),可以傳一個(gè)null,第二個(gè)可選參數(shù)是對(duì)象的屬性描述符。
3、Object.defineProperty(obj, prop, descriptor)
功能:在一個(gè)對(duì)象上定義一個(gè)新屬性或修改一個(gè)現(xiàn)有屬性,并返回該對(duì)象。
參數(shù):
obj(必須):被操作的目標(biāo)對(duì)象
prop(必須):被定義或修改的目標(biāo)屬性
descriptor(必須):屬性的描述符
示例:
var obj = {}; Object.defineProperty(obj,"name",{ writable: true, configurable: true, enumerable: false, value: "張三" }); console.log(obj.name); //"張三" for(var key in obj){ console.log(obj[key]); //無(wú)結(jié)果 }
總結(jié):在參數(shù) descriptor中,如果不指定configurable, writable, enumerable ,則這些屬性默認(rèn)值為false,如果不指定value, get, set,則這些屬性默認(rèn)值為undefined。
4、Object.defineProperties(obj, props)
功能:在一個(gè)對(duì)象上定義一個(gè)或多個(gè)新屬性或修改現(xiàn)有屬性,并返回該對(duì)象。
參數(shù):
obj(必須):被操作的目標(biāo)對(duì)象
props(必須):該對(duì)象的一個(gè)或多個(gè)鍵值對(duì)定義了將要為對(duì)象添加或修改的屬性的具體配置
示例:
var obj = {}; Object.defineProperties(obj,{ name:{ writable: true, configurable: true, enumerable: false, value: "張三" }, age:{ writable: true, configurable: true, enumerable: true, value: 23 } }); console.log(obj.name); //"張三" console.log(obj.age); //23 for(var key in obj){ console.log(obj[key]); //23 }
5、Object.seal(obj) / Object.isSealed(obj)
功能:密封對(duì)象,阻止其修改現(xiàn)有屬性的配置特性,即將對(duì)象的所有屬性的configurable特性設(shè)置為false(也就是全部屬性都無(wú)法重新配置,唯獨(dú)可以把writable的值由true改為false,即凍結(jié)屬性),并阻止添加新屬性,返回該對(duì)象。
參數(shù):
obj(必須):被密封的對(duì)象
示例:
var obj = {name:"張三"}; Object.seal(obj); console.log(Object.isSealed(obj)); //true obj.name = "李四"; //修改值成功 console.log(obj.name); //"李四" obj.age = 23; //無(wú)法添加新屬性 console.log(obj.age); //undefined Object.defineProperty(obj,"name",{ writable: true, configurable: true, enumerable: true }); //報(bào)錯(cuò):Cannot redefine property: name
補(bǔ)充:Object.isSealed(obj)用于判斷目標(biāo)對(duì)象是否被密封,返回布爾值。
將一個(gè)對(duì)象密封后僅能保證該對(duì)象不被擴(kuò)展且全部屬性不可重配置,但是原屬性值卻是可以被修改的。
6、Object.freeze(obj) / Object.isFrozen(obj)
功能:完全凍結(jié)對(duì)象,在seal的基礎(chǔ)上,屬性值也不可以修改,即每個(gè)屬性的wirtable也被設(shè)為false。
參數(shù):
obj(必須):被凍結(jié)的對(duì)象
示例:
var obj = {name:"張三"}; Object.freeze(obj); console.log(Object.isFrozen(obj)); //true obj.name = "李四"; //修改值失敗 console.log(obj.name); //"張三" obj.age = 23; //無(wú)法添加新屬性 console.log(obj.age); //undefined Object.defineProperty(obj,"name",{ writable: true, configurable: true, enumerable: true }); //報(bào)錯(cuò):Cannot redefine property: name
補(bǔ)充:Object.isFrozen(obj)用于判斷目標(biāo)對(duì)象是否被凍結(jié),返回布爾值。
7、getOwnPropertyDescriptor(obj, prop)
功能:獲取目標(biāo)對(duì)象上某自有屬性的配置特性(屬性描述符),返回值為配置對(duì)象。
參數(shù):
obj(必須):目標(biāo)對(duì)象
prop(必須):目標(biāo)自有屬性
示例:
var obj = {}; Object.defineProperty(obj,"name",{ writable: true, configurable: false, enumerable: true, value: "張三" }); var prop = Object.getOwnPropertyDescriptor(obj,"name"); console.log(prop); //{value: "張三", writable: true, enumerable: true, configurable: false}
8、Object.getOwnPropertyNames(obj)
功能:獲取目標(biāo)對(duì)象上的全部自有屬性名(包括不可枚舉屬性)組成的數(shù)組。
參數(shù):
obj(必須):目標(biāo)對(duì)象
示例:
var obj = {}; obj.say = function(){}; Object.defineProperties(obj,{ name:{ writable: true, configurable: true, enumerable: true, value: "張三" }, age:{ writable: true, configurable: true, enumerable: false, value: 23 } }); var arr = Object.getOwnPropertyNames(obj); console.log(arr); //["say", "name", "age"]
9、Object.getPrototypeOf(obj)
功能:獲取指定對(duì)象的原型,即目標(biāo)對(duì)象的prototype屬性的值。
參數(shù):
obj(必須):目標(biāo)對(duì)象
示例:
function Person(name){ this.name = name; } var person = new Person("張三"); var p = Object.create(person); //對(duì)象p的原型為person console.log(p); //Person {} var __ptoto__ = Object.getPrototypeOf(p); console.log(__ptoto__); //Person {name: "張三"}
10、Object.setPrototypeOf(obj, proto)
功能:設(shè)置目標(biāo)對(duì)象的原型為另一個(gè)對(duì)象或null,返回該目標(biāo)對(duì)象。
參數(shù):
obj(必須):目標(biāo)對(duì)象
proto(必須):原型對(duì)象
示例:
var obj = {a:1}; var proto = {}; Object.setPrototypeOf(obj,proto); //設(shè)置obj對(duì)象的原型 proto.b = 2; //為該原型對(duì)象添加屬性 proto.c = 3; console.log(obj.a); //1 console.log(obj.b); //2 console.log(obj.c); //3
解析:上述代碼將proto對(duì)象設(shè)為obj對(duì)象的原型,所以從obj對(duì)象上可以順利讀取到proto 對(duì)象的屬性,也就是原型鏈上的屬性。
Object.setPrototypeOf()方法的作用與__proto__相同,用來(lái)設(shè)置當(dāng)前對(duì)象的原型指向的對(duì)象(prototype)。它是 ES6 正式推薦的設(shè)置原型對(duì)象的方法。
11、Object.keys(obj)
功能:獲取目標(biāo)對(duì)象上所有可枚舉屬性組成的數(shù)組。
參數(shù):
obj(必須):目標(biāo)對(duì)象
示例:
var person = { type:"person", say:function(){} }; //以person對(duì)象為原型,創(chuàng)建obj對(duì)象 var obj = Object.create(person,{ sex:{ writable: true, configurable: true, enumerable: false, //設(shè)置sex屬性為不可枚舉 value: "male" }, age:{ writable: true, configurable: true, enumerable: true, //設(shè)置age屬性為可枚舉 value: 23 } }); obj.name = "張三"; //自定義屬性name默認(rèn)為可枚舉 console.log(obj.propertyIsEnumerable("name")); //true,成功驗(yàn)證name屬性為可枚舉 //用for-in可獲取obj上全部可枚舉的屬性(包括自有和原型鏈上的) var arr = []; for(var key in obj){ arr.push(key); } console.log(arr); //["age", "name", "type", "say"] //用Object.keys()可獲取obj上全部可枚舉的自有屬性 console.log(Object.keys(obj)); // ["age", "name"]
總結(jié):Object.keys(obj)方法獲取的集合和for-in遍歷獲取的不同在于,Object.keys()只獲取目標(biāo)對(duì)象上可枚舉的自有屬性,而for-in遍歷會(huì)包含原型鏈上可枚舉屬性一并獲取。
Object.keys()和Object.getOwnPropertyNames()的相同之處都是獲取目標(biāo)對(duì)象的自有屬性,區(qū)別在于,后者會(huì)連同不可枚舉的自有屬性也一并獲取組成數(shù)組并返回。
12、Object.preventExtensions(obj) / Object.isExtensible(obj)
功能:使某一對(duì)象不可擴(kuò)展,也就是不能為其添加新屬性。
參數(shù):
obj(必須):目標(biāo)對(duì)象
補(bǔ)充:Object.isExtensible(obj)方法用于判斷一個(gè)對(duì)象是否可擴(kuò)展,即是否可以添加新屬性。
示例:
var obj = { name: "張三" }; Object.preventExtensions(obj); //阻止obj的可擴(kuò)展性 console.log(Object.isExtensible(obj)); //false,表明obj對(duì)象為不可擴(kuò)展,即阻止成功 obj.age = 23; //默認(rèn)添加失敗 console.log(obj.age); //undefinedArray類(lèi)型 Array 對(duì)象屬性
1、length
設(shè)置或返回?cái)?shù)組中元素的數(shù)目。
設(shè)置 length 屬性可改變數(shù)組的大小。如果設(shè)置的值比其當(dāng)前值小,數(shù)組將被截?cái)啵湮膊康脑貙G失。如果設(shè)置的值比它的當(dāng)前值大,數(shù)組將增大,新的元素被添加到數(shù)組的尾部,它們的值為 undefined。
2、constructor
返回對(duì)創(chuàng)建此對(duì)象的數(shù)組函數(shù)的引用。
3、prototype
使您有能力向?qū)ο筇砑訉傩院头椒ā?/p> Array 對(duì)象方法
1、concat()
用于連接兩個(gè)或多個(gè)數(shù)組,該方法不會(huì)改變現(xiàn)有的數(shù)組,而是返回被連接數(shù)組的一個(gè)副本。
如果要進(jìn)行 concat() 操作的參數(shù)是數(shù)組,那么添加的是數(shù)組中的元素,而不是數(shù)組。
2、join()
把數(shù)組中的所有元素放入一個(gè)字符串,元素是通過(guò)指定的分隔符進(jìn)行分隔的。
若省略了分隔符參數(shù),則使用逗號(hào)作為分隔符。
3、push()
向數(shù)組的末尾添加一個(gè)或多個(gè)元素,并返回新的數(shù)組長(zhǎng)度。
4、pop()
用于刪除數(shù)組的最后一個(gè)元素,把數(shù)組長(zhǎng)度減1,并返回被刪除元素。
如果數(shù)組已經(jīng)為空,則 pop() 不改變數(shù)組,并返回 undefined。
5、shift()
用于把數(shù)組的第一個(gè)元素從其中刪除,并返回被移除的這個(gè)元素。
如果數(shù)組是空的,那么 shift() 方法將不進(jìn)行任何操作,返回 undefined。
該方法是直接修改原數(shù)組。
6、unshift()
向數(shù)組的開(kāi)頭添加一個(gè)或更多元素,并返回新的數(shù)組長(zhǎng)度。
該方法是直接修改原數(shù)組。
7、reverse()
用于顛倒數(shù)組中元素的順序。
該方法會(huì)直接修改原數(shù)組,而不會(huì)創(chuàng)建新數(shù)組。
8、sort()
用于對(duì)數(shù)組的元素進(jìn)行排序。
該排序直接修改原數(shù)組,不生成副本。
該方法接受一個(gè)可選參數(shù),若未使用參數(shù),將按字母順序?qū)?shù)組元素進(jìn)行排序,說(shuō)得更精確點(diǎn),是按照字符編碼的順序進(jìn)行排序。要實(shí)現(xiàn)這一點(diǎn),首先應(yīng)把數(shù)組的元素都轉(zhuǎn)換成字符串(如有必要),以便進(jìn)行比較。
如果想按照其他標(biāo)準(zhǔn)進(jìn)行排序,就需要提供比較函數(shù),該函數(shù)要比較兩個(gè)值,然后返回一個(gè)用于說(shuō)明這兩個(gè)值的相對(duì)順序的數(shù)字。比較函數(shù)應(yīng)該具有兩個(gè)參數(shù) a 和 b,其返回值如下:
若 a 小于 b,排序后 a 應(yīng)該在 b 之前,則返回一個(gè)小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于 b,則返回一個(gè)大于 0 的值。
9、slice(start [,end])
截取原數(shù)組從start到end位置(不包含它)元素組成的子數(shù)組。
該方法返回一個(gè)新數(shù)組,不會(huì)修改原數(shù)組。
若未指定end參數(shù),那么截取尾巴直到原數(shù)組最后一個(gè)元素(包含它)。
10、splice(index,howmany [,item1,item2...])
刪除從 index 處開(kāi)始的hownamy個(gè)元素,并且用可選參數(shù)列表中聲明的一個(gè)或多個(gè)值來(lái)替換那些被刪除的元素。
該方法返回的是含有被刪除的元素組成的數(shù)組,若無(wú)被刪元素,則返回空數(shù)組。
若參數(shù)只有index,那么原數(shù)組將從index開(kāi)始刪除直至結(jié)尾。
該方法直接修改原數(shù)組。
map():返回一個(gè)新的Array,每個(gè)元素為調(diào)用func的結(jié)果
filter():返回一個(gè)符合func條件的元素?cái)?shù)組
some():返回一個(gè)boolean,判斷是否有元素是否符合func條件
every():返回一個(gè)boolean,判斷每個(gè)元素是否符合func條件
forEach():沒(méi)有返回值,只是針對(duì)每個(gè)元素調(diào)用func
reduce():reduce方法有兩個(gè)參數(shù),第一個(gè)參數(shù)是一個(gè)callback,用于針對(duì)數(shù)組項(xiàng)的操作;第二個(gè)參數(shù)則是傳入的初始值,這個(gè)初始值用于單個(gè)數(shù)組項(xiàng)的操作。需要注意的是,reduce方法返回值并不是數(shù)組,而是形如初始值的經(jīng)過(guò)疊加處理后的操作。
Date類(lèi)型Date對(duì)象:封裝一個(gè)時(shí)間點(diǎn),提供操作時(shí)間的API。Date對(duì)象中封裝的是從1970年1月1日0點(diǎn)至今的毫秒數(shù)。
創(chuàng)建Date對(duì)象4種方式
var now = new Date(); //獲取客戶端的當(dāng)前系統(tǒng)時(shí)間 var date - new Date("1994/02/04 03:23:55"); //創(chuàng)建自定義時(shí)間 var date = new Date(yyyy, MM, dd, hh, mm, ss); //創(chuàng)建自定義時(shí)間 var oldDate = new Date("1994/02/04"); var newDate = new Date(oldDate); //復(fù)制一個(gè)時(shí)間對(duì)象
日期API
日期分量:FullYear、Month、Date、Day、Hours、Minutes、Seconds、Milliseconds。
每一個(gè)日期分量都有一個(gè)get和set方法(除了Day沒(méi)有set方法),分別用于獲取和設(shè)置時(shí)間對(duì)象。
RegExp類(lèi)型 RegExp對(duì)象屬性日期的單位及范圍:
年FullYear (無(wú)范圍)
月Month (0~11, 0開(kāi)始,沒(méi)有12)
日Date (1~31, 和現(xiàn)實(shí)生活一樣)
星期Day (0~6, 0是星期日,沒(méi)有7)
時(shí)Hours (0~23. 0開(kāi)始,沒(méi)有24)
分Minutes (0~59)
秒Seconds (0~59)
毫秒MilliSeconds
1、global
描述:RegExp 對(duì)象是否具有標(biāo)志 g,即全局匹配。
值:true或false。
2、ignoreCase
描述:RegExp 對(duì)象是否具有標(biāo)志 i,即忽略大小寫(xiě)。
值:一個(gè)整數(shù),它聲明的是上一次匹配文本之后的第一個(gè)字符的位置。
3、lastIndex
描述:lastIndex用于規(guī)定下次匹配的起始位置。
值:true或false。
RegExp對(duì)象方法不具有標(biāo)志 g 和不表示全局模式的 RegExp 對(duì)象不能使用 lastIndex 屬性。
1、compile()
compile() 方法用于在腳本執(zhí)行過(guò)程中編譯正則表達(dá)式。
compile() 方法也可用于改變和重新編譯正則表達(dá)式。
2、exec()
功能:用于檢索字符串中的正則表達(dá)式的匹配。
參數(shù):string,必須,要檢索的字符串。
返回值:返回一個(gè)數(shù)組,其中存放匹配的結(jié)果。如果未找到匹配,則返回值為 null。
3、test()
功能:用于檢測(cè)一個(gè)字符串是否匹配某個(gè)模式。
參數(shù):string,必須,要檢索的字符串。
返回值:true或者false。
Function類(lèi)型 Function對(duì)象屬性注意:支持正則表達(dá)式的 String 對(duì)象的方法有:search()、match()、replace()和split()。
1、arguments
arguments.length:獲取函數(shù)實(shí)參的個(gè)數(shù)
arguments.callee:獲取函數(shù)對(duì)象本身的引用
arguments.callee.length:獲取函數(shù)形參的個(gè)數(shù)
Javascrip中每個(gè)函數(shù)都會(huì)有一個(gè)Arguments對(duì)象實(shí)例arguments,它引用著函數(shù)的實(shí)參,可以用數(shù)組下標(biāo)的方式"[]"引用每個(gè)實(shí)際傳入的參數(shù)。
示例:
function say(a,b,c){ console.log(arguments.length); //2 console.log(arguments[0],arguments[1]); //hello world } say("hello","world");Function對(duì)象方法
1、toString()
功能:將函數(shù)體轉(zhuǎn)換成對(duì)應(yīng)的字符串。
Boolean類(lèi)型常用方法:
1、toString()
功能:根據(jù)布爾值返回字符串 "true" 或 "false"。
注釋:在 Boolean 對(duì)象被用于字符串環(huán)境中時(shí),此方法會(huì)被自動(dòng)調(diào)用。
2、valueOf()
功能:返回 Boolean 對(duì)象的原始值。
Number類(lèi)型常用方法:
1、toString()
功能:將Number數(shù)值轉(zhuǎn)換為字符串,該方法接受一個(gè)可選參數(shù)基數(shù),若省略該參數(shù),則默認(rèn)基數(shù)為10,即十進(jìn)制。
var num = 10; console.log(num.toString(2)); //1010
2、toLocaleString()
功能:把一個(gè) Number 對(duì)象轉(zhuǎn)換為本地格式的字符串。
3、valueOf()
功能:返回一個(gè) Number 對(duì)象的基本數(shù)字值。
String類(lèi)型 String對(duì)象屬性valueOf() 方法通常由 JavaScript 在后臺(tái)自動(dòng)進(jìn)行調(diào)用,而不是顯式地處于代碼中。
1、length
功能:String 對(duì)象的 length 屬性聲明了該字符串中的字符數(shù)。
String對(duì)象方法1、charAt()
功能:返回指定位置的字符。
參數(shù):必須,為目標(biāo)字符的下標(biāo)位置。
若參數(shù) index 不在 0 與 string.length 之間,該方法將返回一個(gè)空字符串。
2、charCodeAt()
功能:返回在指定的位置的字符的 Unicode 編碼。
參數(shù):必須,為目標(biāo)字符的下標(biāo)位置。
若參數(shù) index 不在 0 與 string.length 之間,該方法將返回NaN。
3、indexOf()
功能:檢索字符串,返回指定子字符串在字符串中首次出現(xiàn)的位置。
參數(shù)1:檢索目標(biāo)子字符串,必須。
參數(shù)2:在字符串中開(kāi)始檢索的位置,可選。其合法取值是 0 到 stringObject.length - 1。如省略該參數(shù),則將從字符串的首字符開(kāi)始檢索。
注意:indexOf() 方法對(duì)大小寫(xiě)敏感!
注意:如果要檢索的字符串值沒(méi)有出現(xiàn),則該方法返回 -1。
4、lastIndexOf()
功能:從后向前搜索字符串,返回指定子字符串在字符串中首次出現(xiàn)的位置。
參數(shù)1:檢索目標(biāo)子字符串,必須。
參數(shù)2:在字符串中開(kāi)始檢索的位置,可選。其合法取值是 0 到 stringObject.length - 1。如省略該參數(shù),則將從字符串的最后一個(gè)字符開(kāi)始檢索。
5、match()
功能:返回指定位置的字符。
參數(shù):必須,規(guī)定要檢索的字符串值或待匹配的 RegExp 對(duì)象。
返回值:存放匹配結(jié)果的數(shù)組。該數(shù)組的內(nèi)容依賴于 regexp 是否具有全局標(biāo)志 g。
如果 regexp 沒(méi)有標(biāo)志 g,那么 match() 方法就只能在 stringObject 中執(zhí)行一次匹配。如果沒(méi)有找到任何匹配的文本, match() 將返回 null。否則,它將返回一個(gè)數(shù)組,其中存放了與它找到的匹配文本有關(guān)的信息。該數(shù)組的第 0 個(gè)元素存放的是匹配文本,而其余的元素存放的是與正則表達(dá)式的子表達(dá)式匹配的文本。除了這些常規(guī)的數(shù)組元素之外,返回的數(shù)組還含有兩個(gè)對(duì)象屬性。index 屬性聲明的是匹配文本的起始字符在 stringObject 中的位置,input 屬性聲明的是對(duì) stringObject 的引用。
如果 regexp 具有標(biāo)志 g,則 match() 方法將執(zhí)行全局檢索,找到 stringObject 中的所有匹配子字符串。若沒(méi)有找到任何匹配的子串,則返回 null。如果找到了一個(gè)或多個(gè)匹配子串,則返回一個(gè)數(shù)組。不過(guò)全局匹配返回的數(shù)組的內(nèi)容與前者大不相同,它的數(shù)組元素中存放的是 stringObject 中所有的匹配子串,而且也沒(méi)有 index 屬性或 input 屬性。
示例:
var s = "hello21 world21"; console.log(s.match(/d{2}/)); //[ "21", index: 5, input: "hello21 world21" ] var s = "hello21 world21"; console.log(s.match(/d{2}/g)); //[ "21", "21" ]
6、replace()
功能:在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串。
參數(shù)1:regexp/substr,必須,規(guī)定子字符串或要匹配的 RegExp 對(duì)象。
參數(shù)2:replacement,必須,用于替換的字符串值。
返回值:替換后的一個(gè)新字符串。
示例:
var s = "hello world hello"; console.log(s.replace("hello","hi")); //hi world hello console.log(s.replace(/hello/,"hi")); //hi world hello console.log(s.replace(/hello/g,"hi")); //hi world hi
replace方法返回一個(gè)新字符串,并不會(huì)修改原字符串。
7、search()
功能:用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。
參數(shù):regexp/substr,必須,規(guī)定子字符串或要匹配的 RegExp 對(duì)象。
返回值:原字符串中第一次匹配到目標(biāo)字符串的起始位置。
示例:
var s = "hello world hello"; console.log(s.search("hello")); //0 console.log(s.search(/hello/g)); //0 console.log(s.search(/hello2/)); //-1
search()方法不執(zhí)行全局匹配,它將忽略標(biāo)志 g。也就是說(shuō),它只匹配一次。若沒(méi)匹配到結(jié)果,則返回-1。
8、toLowerCase() & toUpperCase()
功能:把字符串轉(zhuǎn)換為小寫(xiě)/大寫(xiě)。
返回值:一個(gè)新的字符串。
示例:
var s = "Hello World"; console.log(s.toLowerCase()); //hello world console.log(s.toUpperCase()); //HELLO WORLD
9、concat()
功能:用于連接兩個(gè)或多個(gè)字符串。
語(yǔ)法:stringObject.concat(stringX,stringX,...,stringX)
參數(shù):
返回值:銜接后的一個(gè)新字符串。
concat方法不會(huì)修改原字符串。
stringObject.concat() 與 Array.concat() 很相似。
通常使用 " + " 運(yùn)算符來(lái)進(jìn)行字符串的連接運(yùn)算通常會(huì)更簡(jiǎn)便一些。
示例:
var s1 = "hello "; var s2 = "world "; var s3 = "233"; console.log(s1.concat(s2,s3)); //hello world 233
10、split()
功能:用于把一個(gè)字符串分割成字符串?dāng)?shù)組,是 Array.join( ) 的逆操作。
參數(shù)1:separator,必須,字符串或正則表達(dá)式,從該參數(shù)指定的地方分割原字符串。
參數(shù)2:howmany,可選,指定返回?cái)?shù)組的最大長(zhǎng)度。
返回值:一個(gè)字符串?dāng)?shù)組。
示例:
var s = "hi baby"; console.log(s.split("")); //[ "h", "i", " ", "b", "a", "b", "y" ] console.log(s.split(" ")); //[ "hi", "baby" ] console.log(s.split("b")); //[ "hi ", "a", "y" ]
11、slice()
功能:截取字符串的某個(gè)部分,并以新的字符串返回被提取的部分。
參數(shù)1:截取的起始位置,必須。
參數(shù)2:截取的結(jié)束位置,可選。
返回值:截取部分,一個(gè)新的字符串。
注意:String.slice() 與 Array.slice() 相似。
slice方法的兩個(gè)參數(shù)接受負(fù)值,若為負(fù)數(shù),則該參數(shù)規(guī)定的是從字符串的尾部開(kāi)始算起的位置。也就是說(shuō),-1 指字符串的最后一個(gè)字符,-2 指倒數(shù)第二個(gè)字符,以此類(lèi)推。
若未指定第二個(gè)參數(shù),則默認(rèn)截取至字符串的末尾。
slice方法不修改原字符串。
示例:
var s = "hi baby"; console.log(s.slice(3)); //baby console.log(s.slice(1,5)); //i ba console.log(s.slice(-4)); //baby console.log(s.slice(-4,-2)); //ba
12、substr()
功能:截取從指定下標(biāo)開(kāi)始的指定數(shù)目的字符。
參數(shù)1:start,必須,截取的起始位置,接受負(fù)值。
參數(shù)2:length,可選,截取字符串的長(zhǎng)度,若未指定,則默認(rèn)截取到原字符串的末尾。
返回值:截取部分,一個(gè)新的字符串。
注意:ECMAscript 沒(méi)有對(duì)該方法進(jìn)行標(biāo)準(zhǔn)化,因此不建議使用它。
示例:
var s = "hi baby"; console.log(s.substr(3)); //baby console.log(s.substr(3,2)); //ba console.log(s.substr(-3,2)); //ab
13、substring()
功能:截取字符串中介于兩個(gè)指定下標(biāo)之間的字符。
參數(shù)1:start,必須,截取的起始位置。
參數(shù)2:end,可選,截取的結(jié)束位置,若未指定,則默認(rèn)截取到原字符串的末尾。
返回值:截取部分,一個(gè)新的字符串。
示例:
var s = "hi baby"; console.log(s.substring(3)); //baby console.log(s.substring(3,5)); //ba console.log(s.substring(5,3)); //ba console.log(s.substring(3,3)); //""
Global對(duì)象(全局對(duì)象)注意:與 slice() 和 substr() 方法不同的是,substring() 不接受負(fù)的參數(shù)。
如果參數(shù) start 與 stop 相等,那么該方法返回的一個(gè)空串。
如果 start 比 stop 大,那么該方法在提取子串之前會(huì)先交換這兩個(gè)參數(shù)。
屬性關(guān)于全局對(duì)象:全局對(duì)象只是一個(gè)對(duì)象,而不是類(lèi)。既沒(méi)有構(gòu)造函數(shù),也無(wú)法實(shí)例化一個(gè)新的全局對(duì)象。
Infinity
代表正的無(wú)窮大的數(shù)值。
示例:
console.log(6/0); //Infinity console.log(-6/0); //-Infinity console.log(0/0); //NaN console.log(1.7976931348623157E+10308); //Infinity console.log(-1.7976931348623157E+10308); //-Infinity
Infinity代表了超出JavaScript處理范圍的數(shù)值。也就是說(shuō)JS無(wú)法處理的數(shù)值都是Infinity。實(shí)踐證明,JS所能處理的最大值是1.7976931348623157e+308,而最小值是5e-324。
NaN
代表非數(shù)字的值。
示例:
var a = Number("100"); var b = Number("hello world"); console.log(a); //100 console.log(b); //NaN console.log(isNaN(a)); //false console.log(isNaN(b)); //true
提示:請(qǐng)使用 isNaN() 方法來(lái)判斷一個(gè)值是否是數(shù)字,原因是 NaN 與所有值都不相等,包括它自己。
Undefined
代表未定義的值。
示例:
var a; var b = ""; var c = null; console.log(a === undefined); //true console.log(b === undefined); //false console.log(c == undefined); //true
方法提示:判斷一個(gè)變量是否未定義,只能用 === undefined 運(yùn)算來(lái)測(cè)試,因?yàn)?== 運(yùn)算符會(huì)認(rèn)為 undefined 值等價(jià)于 null,即undefined == null會(huì)返回true。
注釋:null 表示無(wú)值,而 undefined 表示一個(gè)未聲明的變量,或已聲明但沒(méi)有賦值的變量,或一個(gè)并不存在的對(duì)象屬性。
1、encodeURI(URIString)
功能:將字符串作為URI進(jìn)行編碼,返回值為URIstring 的副本。
參數(shù):
URIString(必須):一個(gè)待編碼的字符串。
示例:
console.log(encodeURI("http://www.baidu.com")); //http://www.baidu.com console.log(encodeURI("http://www.baidu.com/my mind")); //http://www.baidu.com/my%20mind console.log(encodeURI(",/?:@&=+$#")); //,/?:@&=+$#
該方法不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼,也不會(huì)對(duì)這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * " ( ) 。
該方法的目的是對(duì) URI 進(jìn)行完整的編碼,因此對(duì)以下在 URI 中具有特殊含義的 ASCII 標(biāo)點(diǎn)符號(hào),encodeURI() 函數(shù)是不會(huì)進(jìn)行轉(zhuǎn)義的:;/?:@&=+$,#
提示:如果 URI 組件中含有分隔符,比如 ? 和 #,則應(yīng)當(dāng)使用 encodeURIComponent() 方法分別對(duì)各組件進(jìn)行編碼。
2、encodeURIComponent(URIString)
功能:將字符串作為URI組件進(jìn)行編碼,返回值為URIstring的副本。
該方法不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼,也不會(huì)對(duì)這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * " ( ) 。
其他字符(比如 :;/?:@&=+$,# 這些用于分隔 URI 組件的標(biāo)點(diǎn)符號(hào)),都是由一個(gè)或多個(gè)十六進(jìn)制的轉(zhuǎn)義序列替換的。
參數(shù):
URIString(必須):一個(gè)待編碼的字符串。
示例:
encodeURI和encodeURIComponent的區(qū)別:
它們都是編碼URL,唯一區(qū)別就是編碼的字符范圍,其中encodeURI方法不會(huì)對(duì)下列字符編碼 ASCII字母、數(shù)字、~!@#$&*()=:/,;?+"
encodeURIComponent方法不會(huì)對(duì)下列字符編碼 ASCII字母、數(shù)字、~!*()"
所以encodeURIComponent比encodeURI編碼的范圍更大。
實(shí)際例子來(lái)說(shuō),encodeURIComponent會(huì)把 http:// 編碼成 http%3A%2F%2F 而encodeURI卻不會(huì)。
使用場(chǎng)景:
當(dāng)你需要編碼整個(gè)URL,然后使用這個(gè)URL,則使用encodeURI。
console.log(encodeURI("http://www.baidu.com/home/some other thing")); //編碼后為:http://www.baidu.com/home/some%20other%20thing; 其中,空格被編碼成了%20 //但是如果你用了encodeURIComponent console.log(encodeURIComponent("http://www.baidu.com/home/some other thing")); //http%3A%2F%2Fwww.baidu.com%2Fhome%2Fsome%20other%20thing 連 "/" 都被編碼了,整個(gè)URL已經(jīng)沒(méi)法用了
當(dāng)你需要編碼URL中的參數(shù)時(shí),那么使用encodeURIComponent。
var param = "http://www.baidu.com/home/"; //param為參數(shù) param = encodeURIComponent(param); var url = "http://www.baidu.com?next=" + param; console.log(url) //"http://www.baidu.com?next=http%3A%2F%2Fwww.baidu.com%2Fhome%2F" //顯然,參數(shù)中的 "/" 被編碼了,而如果用encodeURI肯定要出問(wèn)題,因?yàn)楹竺娴?是需要編碼的。
補(bǔ)充:相應(yīng)的,存在decodeURI()和decodeURIComponent是用來(lái)解碼的,逆向操作。
3、parseInt(string,radix)
功能:解析一個(gè)字符串,并返回一個(gè)整數(shù)。
參數(shù):
string(必須):待解析的字符串
radix(可選):表示要解析的數(shù)字的基數(shù)。該值介于 2 ~ 36 之間。
如果省略該參數(shù)或其值為 0,則數(shù)字將以 10 為基礎(chǔ)來(lái)解析。如果它以 “0x” 或 “0X” 開(kāi)頭,將以 16 為基數(shù)。如果該參數(shù)小于 2 或者大于 36,則 parseInt() 將返回 NaN。
示例:
console.log(parseInt("10")); //10 console.log(parseInt("11",9)); //10 (9+1) console.log(parseInt("11",2)); //3 (2+1) console.log(parseInt("17",8)); //15 (8+7) console.log(parseInt("1f",16)); //31 (16+15) console.log(parseInt("010")); //10 console.log(parseInt("0x0011")); //17
4、parseFloat()
功能:解析一個(gè)字符串,并返回一個(gè)浮點(diǎn)數(shù)。
該函數(shù)指定字符串中的首個(gè)字符是否是數(shù)字。如果是,則對(duì)字符串進(jìn)行解析,直到到達(dá)數(shù)字的末端為止。
參數(shù):
string(必須):待解析的字符串
示例:
console.log(parseFloat("10")); //10 console.log(parseFloat("10.00")); //10 console.log(parseFloat("10.33")); //10.33 console.log(parseFloat(" 60 ")); //60 首尾的空格會(huì)忽略 console.log(parseFloat("23 34 45")); //23 中間的空格不會(huì)忽略,會(huì)中斷 console.log(parseFloat("23 years")); //23 console.log(parseFloat("i am 23")); //NaN
提示:開(kāi)頭和結(jié)尾的空格是允許的。如果字符串的第一個(gè)字符不能被轉(zhuǎn)換為數(shù)字,那么 parseFloat() 會(huì)返回 NaN。如果只想解析數(shù)字的整數(shù)部分,請(qǐng)使用 parseInt() 方法。
5、isFinite(number)
功能:用于檢查其參數(shù)是否是無(wú)窮大。
參數(shù):
number(必須):待檢測(cè)數(shù)字。
如果 number 是有限數(shù)字(或可轉(zhuǎn)換為有限數(shù)字),那么返回 true。否則,如果 number 是 NaN(非數(shù)字),或者是正、負(fù)無(wú)窮大的數(shù),則返回 false。
示例:
console.log(isFinite(123)); //true console.log(isFinite(-1.23)); //true console.log(isFinite(5-2)); //true console.log(isFinite(0)); //true console.log(isFinite(0/0)); //false console.log(isFinite("Hello")); //false
6、isNaN(number)
功能:用于檢查其參數(shù)是否為非數(shù)字值。
參數(shù):
number(必須):待檢測(cè)數(shù)字。
如果 number 是非數(shù)字值 NaN(或者能被轉(zhuǎn)換成NaN),返回 true,否則返回 false。
示例:
console.log(isNaN(123)); //false console.log(isNaN(-1.23)); //false console.log(isNaN(5-2)); //false console.log(isNaN(0)); //false console.log(isNaN(0/0)); //true console.log(isNaN("Hello")); //true
提示:isNaN() 函數(shù)通常用于檢測(cè) parseFloat() 和 parseInt() 的結(jié)果,以判斷它們表示的是否是合法的數(shù)字。當(dāng)然也可以用 isNaN() 函數(shù)來(lái)檢測(cè)算數(shù)錯(cuò)誤,比如用 0 作除數(shù)的情況。
7、Number(object)
功能:把對(duì)象的值轉(zhuǎn)換為數(shù)字。
參數(shù):
object(必須):待轉(zhuǎn)換的對(duì)象。
如果參數(shù)是 Date 對(duì)象,Number() 返回從1970年1月1日至今的毫秒數(shù),即時(shí)間戳。如果對(duì)象的值無(wú)法轉(zhuǎn)換為數(shù)字,那么 Number() 函數(shù)返回 NaN。
示例:
console.log(Number(new Boolean(true))); //1 console.log(Number(new Boolean(false))); //0 console.log(Number(new Date())); //1506266494726 console.log(Number(new String("999"))); //999 console.log(Number(new String("999 888"))); //NaN
8、String(object)
功能:把對(duì)象的值轉(zhuǎn)換為字符串。
參數(shù):
object(必須):待轉(zhuǎn)換的對(duì)象。
示例:
console.log(String(new Boolean(true))); //"true" console.log(String(new Boolean(false))); //"false" console.log(String(new Date())); //"Sun Sep 24 2017 23:25:43 GMT+0800 (CST)" console.log(String(new String("999"))); //"999" console.log(String(new String("999 888"))); //"999 888" console.log(String(12345)); //"12345"Math對(duì)象
常用方法:
Math.abs(); //取絕對(duì)值 Math.ceil(); //向上取整 Math.floor(); //向下取整 Math.round(); //四舍五入取整 Math.random(); //生成0~1間的隨機(jī)數(shù)(>0) Math.max(x,y); //取x、y中較大的那個(gè) Math.min(x,y); //取x、y中較小的那個(gè)JSON對(duì)象
我們常說(shuō)的對(duì)象字面量其實(shí)不是JSON對(duì)象,但是有真正的JSON對(duì)象。
兩者完全不一樣概念,在新版的瀏覽器里JSON對(duì)象已經(jīng)被原生的內(nèi)置對(duì)象了,目前有2個(gè)靜態(tài)方法:JSON.parse用來(lái)將JSON字符串反序列化成對(duì)象,JSON.stringify用來(lái)將對(duì)象序列化成JSON字符串。
老版本的瀏覽器不支持這個(gè)對(duì)象,但你可以通過(guò)json2.js來(lái)實(shí)現(xiàn)同樣的功能。
JSON對(duì)象方法1、JSON.parse()
功能:將字符串反序列化成對(duì)象
參數(shù):JSON字符串
返回值:對(duì)象
示例:
var jsonString = "{"name":"ryan"}"; //JSON字符串(比如從AJAX獲取字符串信息) var obj = JSON.parse(jsonString); //將字符串反序列化成對(duì)象 console.log(obj); //{ name: "ryan" } console.log(obj.name == "ryan"); //true
2、JSON.stringify()
功能:將一個(gè)對(duì)象解析為JSON字符串
參數(shù):對(duì)象
返回值:JSON字符串
示例:
var obj = {name:"ryan",age:23}; var jsonString = JSON.stringify(obj); console.log(jsonString); //"{"name":"ryan","age":23}"
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/88900.html
摘要:采用了新舊的對(duì)比,獲取差異的,最后一次性的更新到真實(shí)上。對(duì)基本屬性進(jìn)行監(jiān)聽(tīng)對(duì)對(duì)象進(jìn)行監(jiān)聽(tīng)對(duì)對(duì)象某一個(gè)屬性監(jiān)聽(tīng)監(jiān)聽(tīng)自定義指令全局指令,第一個(gè)參數(shù)是指令名,第二個(gè)參數(shù)是一個(gè)對(duì)象,對(duì)象內(nèi)部有個(gè)的函數(shù),函數(shù)里有這個(gè)參數(shù),表示綁定了這個(gè)指令的元素。 11.vue 虛擬DOM的理解 Web界面由DOM樹(shù)(樹(shù)的意思是數(shù)據(jù)結(jié)構(gòu))來(lái)構(gòu)建,當(dāng)其中一部分發(fā)生變化時(shí),其實(shí)就是對(duì)應(yīng)某個(gè)DOM節(jié)點(diǎn)發(fā)生了變化,??...
摘要:題目來(lái)源前端實(shí)習(xí)生面試總結(jié)最近開(kāi)始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄下來(lái)進(jìn)行一個(gè)總結(jié),同樣也希望對(duì)正在準(zhǔn)備面實(shí)習(xí)生的童鞋們有所幫助最后一個(gè)參數(shù)是做什么用的答規(guī)定事件是冒泡還是捕獲。 最近一直在多看基礎(chǔ)的書(shū)多碼代碼準(zhǔn)備找實(shí)習(xí),在網(wǎng)上也搜羅了不少面經(jīng),現(xiàn)在把搜羅到的實(shí)習(xí)生面試題自己整理一下。 題目來(lái)源:前端實(shí)習(xí)生面試總結(jié)最近開(kāi)始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄...
摘要:題目來(lái)源前端實(shí)習(xí)生面試總結(jié)最近開(kāi)始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄下來(lái)進(jìn)行一個(gè)總結(jié),同樣也希望對(duì)正在準(zhǔn)備面實(shí)習(xí)生的童鞋們有所幫助最后一個(gè)參數(shù)是做什么用的答規(guī)定事件是冒泡還是捕獲。 最近一直在多看基礎(chǔ)的書(shū)多碼代碼準(zhǔn)備找實(shí)習(xí),在網(wǎng)上也搜羅了不少面經(jīng),現(xiàn)在把搜羅到的實(shí)習(xí)生面試題自己整理一下。 題目來(lái)源:前端實(shí)習(xí)生面試總結(jié)最近開(kāi)始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄...
摘要:題目來(lái)源前端實(shí)習(xí)生面試總結(jié)最近開(kāi)始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄下來(lái)進(jìn)行一個(gè)總結(jié),同樣也希望對(duì)正在準(zhǔn)備面實(shí)習(xí)生的童鞋們有所幫助最后一個(gè)參數(shù)是做什么用的答規(guī)定事件是冒泡還是捕獲。 最近一直在多看基礎(chǔ)的書(shū)多碼代碼準(zhǔn)備找實(shí)習(xí),在網(wǎng)上也搜羅了不少面經(jīng),現(xiàn)在把搜羅到的實(shí)習(xí)生面試題自己整理一下。 題目來(lái)源:前端實(shí)習(xí)生面試總結(jié)最近開(kāi)始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄...
閱讀 2272·2021-10-09 09:41
閱讀 3430·2021-09-13 10:34
閱讀 1937·2019-08-30 12:59
閱讀 572·2019-08-29 17:27
閱讀 1073·2019-08-29 16:07
閱讀 2966·2019-08-29 13:15
閱讀 1321·2019-08-29 13:14
閱讀 1573·2019-08-26 12:18