您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)JavaScript中標(biāo)準(zhǔn)庫的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
1.什么是標(biāo)準(zhǔn)庫(Standard Library)
標(biāo)準(zhǔn)庫指的是js的標(biāo)準(zhǔn)內(nèi)置對象,是js這門語言本身初始時(shí)提供的在全局范圍的對象
2.Object對象及其實(shí)例
JavaScript原生提供一個(gè)Object對象,所有的其他對象均繼承自這一對象
Object對象的屬性和方法
利用console.dir(Object)查找Object對象的屬性和方法
常用的屬性或方法簡介:
1.prototype對象
prototype是Object對象下的原型對象, 原型對象里面用于放置其他繼承自O(shè)bject對象的屬性和方法,例如: Object.prototype.valueOf() Object.prototype.toString() 兩個(gè)方法都是部署在Object對象下的prototype原型對象, 而其他對象如Number對象、String對象 或是自定義對象var a = new Object()都可以繼承prototype的屬性和方法
2.Object.keys(object)
keys()方法輸入一個(gè)實(shí)例對象并返回對象的屬性數(shù)組
3.Object.getOwnPropertyNames
【注】keys方法只返回可枚舉的屬性,getOwnPropertyNames還返回不可枚舉的屬性名。
4.Object()本身作為方法使用
var a = {name:"teren"} Object(a) //傳入一個(gè)對象實(shí)例返回該實(shí)例 Object {name: "teren"} //傳入一個(gè)原始類型值,則返回該值對應(yīng)的包裝對象
Object對象實(shí)例的屬性和方法
Object對象本身是一個(gè)構(gòu)造函數(shù),可以利用Object構(gòu)造函數(shù)構(gòu)造對象實(shí)例
var person = new Object(); person.name = "teren"; //字面量方法 var person = {name: "teren"};
【注】
所有的對象都是由Object構(gòu)造出來的;
字面量創(chuàng)建對象的方法和利用Object()構(gòu)造對象的方法是等價(jià)的;
Object對象有不少方法部署在Object.prototype對象上,所有的Object的對象實(shí)例都繼承這些方法
1.Object.prototype.valueOf()
valueOf()方法返回一個(gè)對象的“值”。默認(rèn)情況下,返回對象本身
var o = {name:"teren"} o.valueOf()//Object {name: "teren"} var p = {name:"teren",age:18} p.valueOf()//Object {name: "teren", age: 18} var q = {} q.valueOf()//Object {}
【注】
valueOf方法的主要用途是,JavaScript自動(dòng)類型轉(zhuǎn)換時(shí)會(huì)默認(rèn)調(diào)用這個(gè)方法
2.Object.prototype.toString()
toString方法返回一個(gè)對象的字符串形式,默認(rèn)情況下返回類型字符串
var o ={name:"teren"} o.toString()//"[object Object]"
【注】
toString方法的主要用于是,JavaScript自動(dòng)類型轉(zhuǎn)換時(shí)會(huì)默認(rèn)調(diào)用這個(gè)方法
var o = {} o + "world"//"[object Object]world"
3.hasOwnProperty()
hasOwnProperty():判斷某個(gè)屬性是否為當(dāng)前對象自身的屬性,還是繼承自原型對象的屬性,若繼承自原型則返回false
var o = {name:"teren"} o.hasOwnProperty("name")//true o.hasOwnProperty("toString")//false
4.propertyIsEnumerable():判斷某個(gè)屬性是否可枚舉(遍歷)
var arr = [1,2,3] for(var key in arr){console.log(arr[key])} 1 2 3 arr.propertyIsEnumerable("0")//true arr.propertyIsEnumerable("length")//false
3.Number對象及其實(shí)例Number對象是數(shù)值對應(yīng)的包裝
對象,所謂包裝對象如下面例子所示:
var num = 123//這是一個(gè)數(shù)據(jù)類型為數(shù)值的數(shù)值 var num = new Number(123)//這里通過Number函數(shù)構(gòu)造一個(gè)對象,從而把數(shù)值123包裝進(jìn)Number對象中
Number對象的屬性和方法
1.Number對象的屬性
Number.MAX_VALUE Number.MIN_VALUE Number.POSITIVE_INFINITY Number.NEGATIVE_INFINITY Number.NaN
【注】
Number對象實(shí)例是無法獲取去Number對象的屬性
var x = new Number(123); x.MAX_VALUE;//undefined
2.Number對象的方法
1.Number()自身的方法 將任何類型的值轉(zhuǎn)化為數(shù)值 Number(100)//100 Number("100")//100 Number("100e")//NaN Number([1,2,3])//NaN Number(true)//1 Number([])//0 Number({})//NaN 2.toFixed() 把數(shù)字轉(zhuǎn)換為字符串,并保留幾位小數(shù) var a = 123 a.toFixed(2)//"123.00" a.toFixed(3)//"123.000" a.toFixed(0)//"123" 3.toExponential() 把對象的值轉(zhuǎn)換為科學(xué)計(jì)數(shù)法的字符串 a.toExponential(1)//"1.2e+2" a.toExponential(2)//"1.23e+2" a.toExponential(3)//"1.230e+2" a.toExponential(4)//"1.2300e+2" 4.valueOf() a.valueOf()//123 5.toString() a.toString()//"123" 6.isFinite() Number.isFinite(123)//true Number.isFinite(NaN)//false 7.isNaN() Number.isNaN(NaN)//true
下圖是Number對象繼承自O(shè)bject對象的屬性和方法,以及專屬于Number的屬性和方法
Number對象實(shí)例的屬性和方法
//構(gòu)造Number對象的實(shí)例 var num = new Number(123)
【注】
Number對象實(shí)例所運(yùn)用到的屬性和方法基本包含在Number對象的屬性和方法中
4.String對象及其實(shí)例
String對象是字符串的包裝對象,利用String()構(gòu)造函數(shù)創(chuàng)建一個(gè)String對象的實(shí)例
String對象的屬性和方法
1.length屬性
返回字符串長度
var str = "111" str.length//3
1.String()本身作為方法 能夠?qū)⑵渌愋椭缔D(zhuǎn)換為字符串 String(1)//"1" String(true)//"true" String([1,2,3])//"1,2,3" String([])//"" String({name:"teren"})//"[object Object]" 2.charAt() 返回指定位置的字符 var str = "123" str.charAt(2)//"3" 3.charCodeAt() 返回在指定的位置的字符的 Unicode 編碼 str.charCodeAt(0)//49 4.indextOf() 返回字符所在的位置 str.indexOf(1)//0 5.substring() 提取字符串中兩個(gè)指定的索引號之間的字符 var str = "NBA Basketball " str.substring(1,3)//"BA" str.substring(1,5)//"BA B" 6.toUpperCase()&toLowerCase() var str ="hello" str.toUpperCase()//"HELLO" var strr = "HELLO" strr.toLowerCase()//"hello" 7.trim() 刪除空格 var s = " str" s//" str" s.trim()//"str" 8.split() 把字符串分割為字符串?dāng)?shù)組 var s = "hello" s.split("")//["h", "e", "l", "l", "o"] var str = "hello world" str.split(" ")//["hello", "world"] 9.slice(1,5) 從下標(biāo)為1開始(包含元素)至下標(biāo)5(不包含) var str = "helloworld" str.slice(1,5)//"ello" 10.valueOf()&toString() 都是返回字符串
String對象實(shí)例的屬性和方法
var str = new String("hello world"); //字面量 var str = "hello world"
【注】
String對象實(shí)例的屬性和方法基本包含在String對象的屬性與方法中
4.Boolean對象及其實(shí)例
Boolean對象是布爾值的包裝對象,利用Boolean構(gòu)造函數(shù)創(chuàng)建一個(gè)布爾對象
var a = true; typeof a//"boolean" var b = new Boolean (true) typeof b//"object"
【注】
不鼓勵(lì)使用Boolean()構(gòu)造布爾對象
6.Array對象
Array對象是數(shù)組的包裝對象
創(chuàng)建一個(gè)Array對象實(shí)例
var array = new Array(1,2,3) //字面量方法 var arr = [1,2,3]
Array對象的屬性
length屬性 var arr= [1,2,3] arr.length//3
Array對象的方法
1.valueOf & toStrng() valueOf返回?cái)?shù)組對象原始值 toString()返回字符串 var arr = [1,2,3] arr.valueOf()//[1, 2, 3] arr.toString()//"1,2,3" 2.增加數(shù)組元素 arr.push() & arr.unshift()//一個(gè)在尾部一個(gè)在首部增加元素,并返回新數(shù)組的長度 arr.push("h","e","e")//6 arr//[1, 2, 3, "h", "e", "e"] arr.unshift(1,1,1)//9 arr//[1, 1, 1, 1, 2, 3, "h", "e", "e"] 3.刪除數(shù)組元素 arr.pop() & arr.shift()//一個(gè)在尾部一個(gè)在首部刪除元素,并返回刪除的元素,每次調(diào)用只能刪一個(gè) var arr = [1, 1, 1, 1, 2, 3, "h", "e", "e"] arr.pop()//"e" arr//[1, 1, 1, 1, 2, 3, "h", "e"] arr.shift()//1 arr//[1, 1, 1, 2, 3, "h", "e"] 4.靈活刪除增添元素的方法 var arr = [1, 1, 1, 1, 2, 3, "h", "e", "e"] arr.splice(0,4,"w","y")//[1, 1, 1, 1] arr//["w", "y", 2, 3, "h", "e", "e"] 5.join(separator) 把數(shù)組的所有元素放入一個(gè)字符串。元素通過指定的分隔符進(jìn)行分隔 var arr = [1, 1, 1, 1, 2, 3, "h", "e", "e"] arr.join("-")//"1-1-1-1-2-3-h-e-e" 6.sort(func) var arr = [1, 1, 1, 1, 2, 3, "h", "e", "e"] arr.sort()//[1, 1, 1, 1, 2, 3, "e", "e", "h"] 7.reverse() var arr = [1, 1, 1, 1, 2, 3, "h", "e", "e"] arr.reverse()//["e", "e", "h", 3, 2, 1, 1, 1, 1] 8.concat() 合并數(shù)組 var a =[1,3,4] var b = [4,2,1] a.concat(b)//[1, 3, 4, 4, 2, 1]
【注】
Array對象實(shí)例所運(yùn)用到的屬性和方法基本包含在Array對象的屬性和方法中
7.Math對象及其實(shí)例
Math對象提供一些數(shù)學(xué)方面的屬性和方法,但Math對象不能創(chuàng)建實(shí)例對象
Math對象的屬性
Math.E Math.LN2 Math.LN10 Math.PI Math.SQRT2
Math對象的方法
1.Math.abs() Math.abs(-9)//9 2.Math.max() & Math.min() Math.max(-1,1,6)//6 Math.min(-1,1,6)//-1 3.Math.pow() Math.pow(2,3)//8 4.Math.exp() Math.exp(2)//7.3890560989306495 5.Math.sqrt() Math.sqrt(3)//1.7320508075688772 6.Math.log() 返回以e為底的自然對數(shù)值 Math.log(Math.E)//1 7.Math.ceil() & Math.floor() Math.ceil:接受一個(gè)參數(shù),返回大于該參數(shù)的最小整數(shù) Math.floor:接受一個(gè)參數(shù),返回小于該參數(shù)的最大整數(shù) Math.ceil(1.1)//2 Math.floor(1.1)//1 8.Math.round() 用于四舍五入 Math.round(0.1)//0 Math.round(0.5)//1 Math.round(-1.5)//-1 Math.round(-1.6)//2 9.Math.random() 返回0到1之間的一個(gè)偽隨機(jī)數(shù),可能等于0,但是一定小于1 Math.random()*50+50//[50,100)之間的隨機(jī)數(shù) 10.三角函數(shù)方法 略 11.valueOf() & toString() valueOf()返回Math對象的原始值 toString()返回Math的對象類型
8.Date對象
Date對象是JavaScript提供的日期和時(shí)間的操作接口
Date實(shí)例對象的參數(shù)
Date對象的起始時(shí)間為1970年1月1日00:00:00 UTC
new Date()//Tue Jun 21 2016 21:45:31 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) new Date(1000)//Thu Jan 01 1970 08:00:01 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) new Date(3600*24*1000)//Fri Jan 02 1970 08:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) new Date("March 5,2015")//Thu Mar 05 2015 00:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) new Date("2015/5/5")//Tue May 05 2015 00:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) new Date(2014,1,1,23,59,23,999)//Sat Feb 01 2014 23:59:23 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間)
Date對象的方法
1.Date()本身作為方法 var today = new Date() 2.Date.now() 返回當(dāng)前距離1970年1月1日 00:00:00 UTC的毫秒數(shù) Date.now()//1466517135730 3.Date.parse() 用來解析日期字符串,返回距離1970年1月1日 00:00:00的毫秒數(shù) Date.parse(2015,2,2)//1420070400000 4.Date.UTC() 返回當(dāng)前距離1970年1月1日 00:00:00 UTC的毫秒數(shù) Date.UTC(2000,0,1)//946684800000
Date對象實(shí)例的方法
1.to類:返回關(guān)于時(shí)間和日期的字符串 toString():返回一個(gè)完整的日期字符串 var d = new Date(2000,0,1) d.toString()//"Sat Jan 01 2000 00:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間)" -- toUTCString():返回對應(yīng)的UTC時(shí)間 var d = new Date() d//Tue Jun 21 2016 22:00:06 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) d.toUTCString()//"Tue, 21 Jun 2016 14:00:06 GMT" -- toDateString():返回日期字符串 d.toDateString()//"Tue Jun 21 2016" -- toTimeString():返回時(shí)間字符串 d.toTimeString()//"22:00:06 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間)"
2.get類:獲取關(guān)于時(shí)間和日期的值
getTime():返回距離1970年1月1日00:00:00的毫秒數(shù) var d = new Date(2000,0,1) d//Sat Jan 01 2000 00:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) d.getTime()//946656000000 -- getDate():返回實(shí)例對象對應(yīng)每個(gè)月的幾號 d.getDate()//1 -- getDay():返回星期幾 d.getDay()//6 -- getFullYear():返回四位的年份 d.getFullYear()//2000 -- getMonth() & getHours() & getMinutes & getSeconds & getMilliseconds d.getHours()//0 d.getMinutes()//0 d.getSeconds()//0 d.getMilliseconds()//0
3.set類:設(shè)置實(shí)例對象的時(shí)間和日期
var d = new Date(2000,0,1) d.setDate(20)//948297600000 d//Thu Jan 20 2000 00:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) -- setFullYear() d.setFullYear(2005)//1106150400000 d//Thu Jan 20 2005 00:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) -- setMonths & setHours & setMinutes & setSeconds & setMiliseconds效果同上
【注】
關(guān)于jsDate對象的時(shí)間和日期的取值范圍
分鐘和秒:0 到 59
小時(shí):0 到 23
星期:0(星期天)到 6(星期六)
日期:1 到 31
月份:0(一月)到 11(十二月)
年份:距離1900年的年數(shù)
10.標(biāo)準(zhǔn)庫小結(jié)
標(biāo)準(zhǔn)庫是js的初始提供的標(biāo)準(zhǔn)內(nèi)置對象,分為Object對象、Number對象、String對象、Boolean對象、Array對象、Math對象以及Date對象
【注】不限于上述對象,還有RegExp對象和JSON對象
js所有的對象都是由Object對象構(gòu)造的,包括其對象實(shí)例以及Number、String、Boolean、Array、Math和Date等對象;
對象一般都會(huì)包含屬性和方法,屬性代表屬于對象的某些特征值,方法代表對象的某些功能;
對象在屬性當(dāng)中通常設(shè)置constructor(Math對象沒有)和prototype屬性,部分對象包括length屬性(String和Arrary對象的length有實(shí)踐意義);conStructor設(shè)置該對象的構(gòu)造函數(shù)功能,prototype設(shè)置一個(gè)原型對象——使得所有該對象的構(gòu)造函數(shù)創(chuàng)建的對象實(shí)例能夠從prototype對象中繼承相應(yīng)的屬性;
Object對象的屬性和方法最具一般性,大部分屬性和方法可以在其他對象中找到,但是每一個(gè)對象還具有各自的屬性和方法(有些只能對象使用,有些能夠?qū)ο髮?shí)例使用(因?yàn)椴渴鹪诟髯詫ο蟮膒rototype里))
這里特別說一下valueOf()、toString()在不同對象中的效果,一般valueOf()輸出對象的原始值,toString()輸出字符串
var o = new Object(123) var o1 = new Object("123) o.valueOf()//123 o.toString()//"123" o1.valueOf()//"123" o1.toString()//"123" var o2 = [1,2,3] o2.valueOf()//[1, 2, 3] o2.toString()//"1,2,3" var o3 = {name:"teren",age:18} o3.valueOf()//Object {name: "teren", age: 18} o3.toString()//"[object Object]"
Number對象是數(shù)值對應(yīng)的包裝對象,String對象是字符串對應(yīng)的包裝對象,Boolean是布爾值對應(yīng)的包裝對象
var num = 123//type of num -> "number" var num = new Number(123) //type of num -> "object" var str = "hello" var str = new String("hello") var bool = true; var bool = new Boolean(true)
關(guān)于“JavaScript中標(biāo)準(zhǔn)庫的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。