ES6 語法基礎(chǔ)2--標準庫

4. 標準庫

a. Object對象

JavaScript 原生提供Object對象
JavaScript 的所有其他對象都繼承自O(shè)bject對象憔辫,即那些對象都是Object的實例力崇。
Object對象的原生方法分成兩類:Object本身的方法與Object的實例方法骡湖。

(1)Object對象本身的方法

Object.print = function (o) { console.log(o) };

(2)Object的實例方法

Object.prototype.print = function () {
  console.log(this);
};

主要方法:

Object.prototype.toString() 返回一個對象的字符串形式,默認情況下返回類型字符串楣导。

Object.prototype.hasOwnProperty() 接受一個字符串作為參數(shù)烦租,返回一個布爾值豺鼻,表示該實例對象自身是否具有該屬性

b. Array對象

// bad
let arr = new Array(1, 2);

// good
let arr = [1, 2];

arr.length // 2

Array.isArray(arr) // true

arr.valueOf() // [1, 2]

arr.toString() // “1, 2”
添加刪除元素
arr.push(3) // [1, 2, 3]
arr.pop() // 3
arr // [1, 2]
arr.shift() // 1
arr // [2]
a.unshift('x'); // 2 返回數(shù)組長度
a // ['x', 2]
連接移動
['a',, 'b'].join('-')
// ‘a(chǎn)--b'

['hello'].concat(['world'], ['!'])
// ["hello", "world", “!"]

let a = ['a', 'b', 'c'];
a.reverse() // ["c", "b", “a"] 原地修改
a.slice(1, 2) // [“b"] 不修改原數(shù)組

let a = ['a', 'b', 'c', 'd', 'e', 'f'];
a.splice(4, 2) // ["e", “f"] 提取并修改原數(shù)組
排序
[4, 3, 2, 1].sort()
// [1, 2, 3, 4]
[
  { name: "張三", age: 30 },
  { name: "李四", age: 24 },
  { name: "王五", age: 28  }
].sort(function (o1, o2) {
  return o1.age - o2.age;
})

// [
//   { name: "李四", age: 24 },
//   { name: "王五", age: 28  },
//   { name: "張三", age: 30 }
// ]
列舉

map() ****將數(shù)組的所有成員依次傳入?yún)?shù)函數(shù)沫勿,然后把每一次的執(zhí)行結(jié)果組成一個新數(shù)組返回

let numbers = [1, 2, 3];
numbers.map(function (n) {
  return n + 1;
});

// 返回[2, 3, 4] 挨约,不影響原數(shù)組

forEach() 與map方法很相似,但是參數(shù)方法不返回值产雹,只用于遍歷數(shù)組

function log(element, index, array) {
  console.log('[' + index + '] = ' + element);
}

[2, 5, 9].forEach(log);

// [0] = 2
// [1] = 5
// [2] = 9

filter()用于過濾數(shù)組成員烫罩,滿足條件的成員組成一個新數(shù)組返回

[1, 2, 3, 4, 5].filter(function (elem) {
  return (elem > 3);
})
// [4, 5]

reduce方法和reduceRight****方法依次處理數(shù)組的每個成員,最終累計為一個值洽故。

它們的差別是,reduce是從左到右處理盗誊,reduceRight則是從右到左时甚,其他完全一樣

indexOf方法返回給定元素在數(shù)組中第一次出現(xiàn)的位置隘弊,如果沒有出現(xiàn)則返回-1

['a', 'b', 'c'].indexOf('a') //0
填充
new Array(3).fill(7)
// [7, 7, 7]

c.Number對象

(10).toString() // “10"

(10.005).toFixed(2) // “10.01" 將一個數(shù)轉(zhuǎn)為指定位數(shù)的小數(shù),然后返回這個小數(shù)對應(yīng)的字符串

(10).toExponential()  // “1e+1" 將一個數(shù)轉(zhuǎn)為科學(xué)計數(shù)法形式

(12.34).toPrecision(3) // “12.3" 將一個數(shù)轉(zhuǎn)為指定位數(shù)的有效數(shù)字(用于四舍五入時不太可靠荒适,跟浮點數(shù)不是精確儲存有關(guān))

自定義方法

Number.prototype.add = function (x) {
  return this + x;
};

8.add(2) // 10

d. String對象

let s = 'hello';
s.length // 5
'abc'[1] // "b"
let one = 1;
let two = 2;
let three = ‘3';
one + two + three // “33"
'JavaScript'.slice(0, 4) // “Java"不改變原字符串
'hello world'.indexOf('o') // 4
'  hello world  '.trim()
// "hello world” 不改變原字符串
'Hello World'.toLowerCase()
// "hello world"
'Hello World'.toUpperCase()
// "HELLO WORLD”

'cat, bat, sat, fat'.match('at') // ["at"]
'cat, bat, sat, fat'.match('xt') // null
'cat, bat, sat, fat'.search('at') // 1 返回值為匹配的第一個位置

'aaa'.replace('a', 'b') // “baa"

'a|b|c'.split('|') // ["a", "b", "c"] 

e. Math對象

Math.PI:常數(shù) Pi
Math.abs():絕對值
Math.ceil():向上取整
Math.floor():向下取整
Math.max():最大值
Math.min():最小值
Math.pow():指數(shù)運算
Math.sqrt():平方根
Math.log():自然對數(shù)
Math.exp():e的指數(shù)
Math.round():四舍五入
Math.random():隨機數(shù)

f. Date對象

new Date();
// "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)” 當(dāng)前時間

// 參數(shù)為時間零點開始計算的毫秒數(shù)
new Date(1378218728000)
// Tue Sep 03 2013 22:32:08 GMT+0800 (CST)

// 參數(shù)為日期字符串
new Date('January 6, 2013');
// Sun Jan 06 2013 00:00:00 GMT+0800 (CST)

// 參數(shù)為多個整數(shù)梨熙,
// 代表年、月刀诬、日咽扇、小時、分鐘陕壹、秒质欲、毫秒
new Date(2013, 0, 1, 0, 0, 0, 0)
// Tue Jan 01 2013 00:00:00 GMT+0800 (CST)

Date.now() // 1364026285194 Unix 時間戳乘以1000

Date.parse() //用來解析日期字符串,返回 Unix 時間戳乘以1000

let d = new Date();
d.valueOf() // 1362790014817
d.getTime() // 1362790014817
d.toString()
// "Tue Jan 01 2013 00:00:00 GMT+0800 (CST)”

d.toUTCString()
// "Mon, 31 Dec 2012 16:00:00 GMT”

d.toUTCString()
// "Mon, 31 Dec 2012 16:00:00 GMT”

d.toJSON()
// “2012-12-31T16:00:00.000Z”

d.toDateString() 
// "Tue Jan 01 2013”

d.toTimeString() 
// "00:00:00 GMT+0800 (CST)"

d.toLocaleDateString()
// 中文版瀏覽器為”2013年1月1日"

d.toLocaleTimeString()
// 中文版瀏覽器為”上午12:00:00"

get類方法:

getTime():返回實例距離1970年1月1日00:00:00的毫秒數(shù)糠馆,等同于valueOf方法嘶伟。
getDate():返回實例對象對應(yīng)每個月的幾號(從1開始)。
getDay():返回星期幾又碌,星期日為0九昧,星期一為1,以此類推毕匀。
getYear():返回距離1900的年數(shù)铸鹰。
getFullYear():返回四位的年份。
getMonth():返回月份(0表示1月皂岔,11表示12月)蹋笼。
getHours():返回小時(0-23)。
getMilliseconds():返回毫秒(0-999)凤薛。
getMinutes():返回分鐘(0-59)姓建。
getSeconds():返回秒(0-59)。
getTimezoneOffset():返回當(dāng)前時間與 UTC 的時區(qū)差異缤苫,以分鐘表示速兔,返回結(jié)果考慮到了夏令時因素。

set 類方法

setDate(date):設(shè)置實例對象對應(yīng)的每個月的幾號(1-31)活玲,返回改變后毫秒時間戳涣狗。
setYear(year): 設(shè)置距離1900年的年數(shù)。
setFullYear(year [, month, date]):設(shè)置四位年份舒憾。
setHours(hour [, min, sec, ms]):設(shè)置小時(0-23)镀钓。
setMilliseconds():設(shè)置毫秒(0-999)。
setMinutes(min [, sec, ms]):設(shè)置分鐘(0-59)镀迂。
setMonth(month [, date]):設(shè)置月份(0-11)丁溅。
setSeconds(sec [, ms]):設(shè)置秒(0-59)。
setTime(milliseconds):設(shè)置毫秒時間戳探遵。

g. regExp

自行查閱:http://javascript.ruanyifeng.com/stdlib/regexp.html

h. JSON對象

JSON.stringify() 將一個值轉(zhuǎn)為 JSON 字符串
JSON.parse() 將 JSON 字符串轉(zhuǎn)換成對應(yīng)的值

i. console對象

console.log() 主要用這個打log
console.info()
console.debug()
console.warn()
console.error()
console.assert()
console.time()窟赏,console.timeEnd()
console.trace()

占位符:
%s 字符串
%d 整數(shù)
%i 整數(shù)
%f 浮點數(shù)
%o 對象的鏈接
%c CSS 格式字符串

j. 屬性描述對象

自行查閱:http://javascript.ruanyifeng.com/stdlib/attributes.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妓柜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涯穷,更是在濱河造成了極大的恐慌棍掐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拷况,死亡現(xiàn)場離奇詭異作煌,居然都是意外死亡,警方通過查閱死者的電腦和手機赚瘦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門粟誓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蚤告,你說我怎么就攤上這事努酸。” “怎么了杜恰?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵获诈,是天一觀的道長。 經(jīng)常有香客問我心褐,道長舔涎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任逗爹,我火速辦了婚禮亡嫌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掘而。我一直安慰自己挟冠,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布袍睡。 她就那樣靜靜地躺著知染,像睡著了一般。 火紅的嫁衣襯著肌膚如雪斑胜。 梳的紋絲不亂的頭發(fā)上控淡,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音止潘,去河邊找鬼掺炭。 笑死,一個胖子當(dāng)著我的面吹牛凭戴,可吹牛的內(nèi)容都是我干的涧狮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼勋篓!你這毒婦竟也來了吧享?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤譬嚣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后钞它,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拜银,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年遭垛,在試婚紗的時候發(fā)現(xiàn)自己被綠了尼桶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡锯仪,死狀恐怖泵督,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庶喜,我是刑警寧澤小腊,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站久窟,受9級特大地震影響秩冈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜斥扛,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一入问、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧稀颁,春花似錦芬失、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粘昨,卻和暖如春垢啼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背张肾。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工芭析, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吞瞪。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓馁启,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子惯疙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)翠勉,也就是一...
    悟名先生閱讀 4,131評論 0 13
  • 概要 64學(xué)時 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,128評論 0 3
  • 參考基礎(chǔ)教程的整理,方便記憶 一霉颠、Object對象 (O大寫) 所有其他對象都繼承自這個對象对碌。Object本身也是...
    Viaphlyn閱讀 2,316評論 0 0
  • 火車沖破夜幕,掠過秋天的城中村 帶走的是光怪陸離的夜市以及 散發(fā)霉味的街邊菜市場 我走過九個秋天蒿偎,邂逅九片楓葉 季...
    阿亮的月亮閱讀 404評論 8 14
  • 第一章 -“舒莉朽们!舒莉!” “醒醒……”- “啊呀——”在郊外豪華的別墅里诉位,舒莉躺在床上骑脱,大口大口的喘著粗氣。 “...
    淺聽微涼雨閱讀 426評論 0 2