js常用內(nèi)置對(duì)象

1.Math對(duì)象

是一個(gè)內(nèi)置對(duì)象,它擁有一些數(shù)學(xué)常數(shù)屬性和數(shù)學(xué)函數(shù)方法眯杏。Math 不是一個(gè)函數(shù)對(duì)象夜焦。

1.1最大值

Math.max() 函數(shù)返回一組數(shù)中的最大值。

1.2最小值

Math.min() 返回零個(gè)或更多個(gè)數(shù)值的最小值岂贩。

1.3絕對(duì)值

Math.abs(x) 函數(shù)返回指定數(shù)字 “x“ 的絕對(duì)值茫经。

1.4向下取整

Math.floor() 返回小于或等于一個(gè)給定數(shù)字的最大整數(shù)。

1.5向上取整

Math.ceil() 函數(shù)返回大于或等于一個(gè)給定數(shù)字的最小整數(shù)萎津。

1.6四舍五入

Math.round()四舍五入版 就近取整 注意 -3.5 結(jié)果是 -3

1.7隨機(jī)數(shù)

Math.random()方法可以隨機(jī)返回一個(gè)小數(shù)卸伞,其取值范圍是 [0,1)锉屈,左閉右開 0 <= x < 1

擴(kuò)展:得到一個(gè)兩數(shù)之間的隨機(jī)整數(shù)荤傲,包括兩個(gè)數(shù)在內(nèi)

function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min; 
}

2.日期對(duì)象

Date 對(duì)象和 Math 對(duì)象不一樣,他是一個(gè)構(gòu)造函數(shù)颈渊,所以我們需要實(shí)例化后才能使用

var now = new Date();
console.log(now);

? 如果Date()不寫參數(shù)遂黍,就返回當(dāng)前時(shí)間
? 如果Date()里面寫參數(shù),就返回括號(hào)里面輸入的時(shí)間

var date = new Date('2000-2-5 5:5:5');
console.log(date);

2.1 日期格式化

image.png

例:輸出當(dāng)前日期

 var date = new Date();
        console.log(date.getFullYear()); // 返回當(dāng)前日期的年  
        console.log(date.getMonth() + 1); // 月份 返回的月份小1個(gè)月   記得月份+1 
        console.log(date.getDate()); // 返回的是 幾號(hào)
        console.log(date.getDay()); // 3  周一返回的是 1 周六返回的是 6 但是 周日返回的是 0
        // 我們寫一個(gè) 2019年 5月 1日 星期三
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var dates = date.getDate();
        var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
        var day = date.getDay();
        console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);

輸出當(dāng)前時(shí)間

  // 格式化日期 時(shí)分秒
        var date = new Date();
        console.log(date.getHours()); // 時(shí)
        console.log(date.getMinutes()); // 分
        console.log(date.getSeconds()); // 秒
        // 要求封裝一個(gè)函數(shù)返回當(dāng)前的時(shí)分秒 格式 08:08:08
        function getTimer() {
            var time = new Date();
            var h = time.getHours();
            h = h < 10 ? '0' + h : h;
            var m = time.getMinutes();
            m = m < 10 ? '0' + m : m;
            var s = time.getSeconds();
            s = s < 10 ? '0' + s : s;
            return h + ':' + m + ':' + s;
        }
        console.log(getTimer());

2.2獲取日期的總的毫秒形式(時(shí)間戳)

Date 對(duì)象是基于1970年1月1日(世界標(biāo)準(zhǔn)時(shí)間)起的毫秒數(shù)

// 實(shí)例化Date對(duì)象
var now = new Date();
// 1. 用于獲取對(duì)象的原始值
console.log(date.valueOf())
console.log(date.getTime())
// 2. 簡(jiǎn)單寫可以這么做
var now = + new Date();
// 3. HTML5中提供的方法俊嗽,有兼容性問題
var now = Date.now();

注:new Date()的()里如果為空的話返回的是當(dāng)前時(shí)間總的毫秒數(shù)雾家,如果不為空的話返回的是用戶輸入時(shí)間總的毫秒數(shù);

2.3倒計(jì)時(shí)

 // 倒計(jì)時(shí)效果
        // 1.核心算法:輸入的時(shí)間減去現(xiàn)在的時(shí)間就是剩余的時(shí)間绍豁,即倒計(jì)時(shí) 芯咧,但是不能拿著時(shí)分秒相減,比如 05 分減去25分,結(jié)果會(huì)是負(fù)數(shù)的唬党。
        // 2.用時(shí)間戳來做鹃共。用戶輸入時(shí)間總的毫秒數(shù)減去現(xiàn)在時(shí)間的總的毫秒數(shù),得到的就是剩余時(shí)間的毫秒數(shù)驶拱。
        // 3.把剩余時(shí)間總的毫秒數(shù)轉(zhuǎn)換為天霜浴、時(shí)、分蓝纲、秒 (時(shí)間戳轉(zhuǎn)換為時(shí)分秒)
        // 轉(zhuǎn)換公式如下: 
        //  d = parseInt(總秒數(shù)/ 60/60 /24);    //  計(jì)算天數(shù)
        //  h = parseInt(總秒數(shù)/ 60/60 %24)   //   計(jì)算小時(shí)
        //  m = parseInt(總秒數(shù) /60 %60 );     //   計(jì)算分?jǐn)?shù)
        //  s = parseInt(總秒數(shù)%60);            //   計(jì)算當(dāng)前秒數(shù)
        function countDown(time) {
            var nowTime = +new Date(); // 返回的是當(dāng)前時(shí)間總的毫秒數(shù)
            var inputTime = +new Date(time); // 返回的是用戶輸入時(shí)間總的毫秒數(shù)
            var times = (inputTime - nowTime) / 1000; // times是剩余時(shí)間總的秒數(shù) 
            var d = parseInt(times / 60 / 60 / 24); // 天
            d = d < 10 ? '0' + d : d;
            var h = parseInt(times / 60 / 60 % 24); //時(shí)
            h = h < 10 ? '0' + h : h;
            var m = parseInt(times / 60 % 60); // 分
            m = m < 10 ? '0' + m : m;
            var s = parseInt(times % 60); // 當(dāng)前的秒
            s = s < 10 ? '0' + s : s;
            return d + '天' + h + '時(shí)' + m + '分' + s + '秒';
        }
        console.log(countDown('2019-5-1 18:00:00'));
        var date = new Date();
        console.log(date);

3.數(shù)組對(duì)象Array

3.1檢測(cè)是否為數(shù)組
? instanceof 運(yùn)算符阴孟,可以判斷一個(gè)對(duì)象是否屬于某種類型
? Array.isArray()用于判斷一個(gè)對(duì)象是否為數(shù)組,isArray() 是 HTML5 中提供的方法

var arr = [1, 23];
var obj = {};
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // false

3.2添加刪除數(shù)組元素方法


image.png
// 添加刪除數(shù)組元素方法
        var arr = [1, 2, 3];
        // 1. push() 在我們數(shù)組的末尾 添加一個(gè)或者多個(gè)數(shù)組元素   push  推
        arr.push(4, 'pink');
        // (1) push 是可以給數(shù)組追加新的元素
        // (2) push() 參數(shù)直接寫 數(shù)組元素就可以了
        // (3)  arr.push()完畢之后税迷,返回的結(jié)果是 新數(shù)組的長(zhǎng)度 
        // (4) 原數(shù)組也會(huì)發(fā)生變化

        // 2. unshift 在我們數(shù)組的開頭 添加一個(gè)或者多個(gè)數(shù)組元素
        console.log(arr.unshift('red', 'purple'));
        // (1) unshift是可以給數(shù)組前面追加新的元素
        // (2) unshift() 參數(shù)直接寫 數(shù)組元素就可以了
        // (3) unshift完畢之后永丝,返回的結(jié)果是 新數(shù)組的長(zhǎng)度 
        // (4) 原數(shù)組也會(huì)發(fā)生變化

        // 3. pop() 它可以刪除數(shù)組的最后一個(gè)元素  
        console.log(arr.pop());
        // (1) pop是可以刪除數(shù)組的最后一個(gè)元素 記住一次只能刪除一個(gè)元素
        // (2) pop() 沒有參數(shù)
        // (3) pop完畢之后,返回的結(jié)果是 刪除的那個(gè)元素 
        // (4) 原數(shù)組也會(huì)發(fā)生變化

        // 4. shift() 它可以刪除數(shù)組的第一個(gè)元素  
        console.log(arr.shift());
        // (1) shift是可以刪除數(shù)組的第一個(gè)元素 記住一次只能刪除一個(gè)元素
        // (2) shift() 沒有參數(shù)
        // (3) shift完畢之后箭养,返回的結(jié)果是 刪除的那個(gè)元素 
        // (4) 原數(shù)組也會(huì)發(fā)生變化

3.3數(shù)組排序


image.png
var arr = [1, 64, 9, 6];
//arr.sort();在進(jìn)行個(gè)位數(shù)和十位數(shù)排序的時(shí)候會(huì)有一些小問題慕嚷,所以用以下方法
arr.sort(function(a, b) {
return b - a; // 降a序
// return a - b; // 升序
});
console.log(arr);

3.4數(shù)組索引方法


image.png

案例:數(shù)組去重

   // 數(shù)組去重 ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'] 要求去除數(shù)組中重復(fù)的元素。
        // 1.目標(biāo): 把舊數(shù)組里面不重復(fù)的元素選取出來放到新數(shù)組中毕泌, 重復(fù)的元素只保留一個(gè)喝检, 放到新數(shù)組中去重。
        // 2.核心算法: 我們遍歷舊數(shù)組撼泛, 然后拿著舊數(shù)組元素去查詢新數(shù)組挠说, 如果該元素在新數(shù)組里面沒有出現(xiàn)過, 我們就添加愿题, 否則不添加损俭。
        // 3.我們?cè)趺粗涝撛貨]有存在? 利用 新數(shù)組.indexOf(數(shù)組元素) 如果返回時(shí) - 1 就說明 新數(shù)組里面沒有改元素
        // 封裝一個(gè) 去重的函數(shù) unique 獨(dú)一無二的 
        function unique(arr) {
            var newArr = [];
            for (var i = 0; i < arr.length; i++) {
                if (newArr.indexOf(arr[i]) === -1) {
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }

    var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'])

3.5數(shù)組轉(zhuǎn)換為字符串


image.png

3.6其他


image.png
concat() 方法用于合并兩個(gè)或多個(gè)數(shù)組潘酗。此方法不會(huì)更改現(xiàn)有數(shù)組杆兵,而是返回一個(gè)新數(shù)組。
var num1 = [1, 2, 3],
    num2 = [4, 5, 6],
    num3 = [7, 8, 9];
var nums = num1.concat(num2, num3);
console.log(nums);
// results in [1, 2, 3, 4, 5, 6, 7, 8, 9]
var nums2 =num1.concat(100,num2);
console.log(nums);
// results in [1, 2, 3, 100,4, 5, 6]
slice() 方法返回一個(gè)新的數(shù)組對(duì)象崎脉,這一對(duì)象是一個(gè)由 begin 和 end 決定的原數(shù)組的淺拷貝(包括 begin拧咳,不包括end)。原始數(shù)組不會(huì)被改變囚灼。
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]

console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]

console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]

console.log(animals.slice(-2));//begin為負(fù)數(shù)骆膝,則表示從原數(shù)組中的倒數(shù)第幾個(gè)元素開始提取
// expected output: Array ["duck", "elephant"]

console.log(animals.slice(2, -1));//end為負(fù)數(shù), 則它表示在原數(shù)組中的倒數(shù)第幾個(gè)元素結(jié)束抽取灶体。
// expected output: Array ["camel", "duck"]

splice() 方法通過刪除或替換現(xiàn)有元素或者原地添加新的元素來修改數(shù)組,并以數(shù)組形式返回被修改的內(nèi)容阅签。此方法會(huì)改變?cè)瓟?shù)組。
寫法:array.splice(start,deleteCount(可選),item1, item2, ... (可選))
start:指定修改的開始位置(從0計(jì)數(shù))蝎抽。如果超出了數(shù)組的長(zhǎng)度政钟,則從數(shù)組末尾開始添加內(nèi)容路克;如果是負(fù)值,則表示從數(shù)組末位開始的第幾位(從-1計(jì)數(shù)养交,這意味著-n是倒數(shù)第n個(gè)元素并且等價(jià)于array.length-n)精算;如果負(fù)數(shù)的絕對(duì)值大于數(shù)組的長(zhǎng)度,則表示開始位置為第0位碎连。
deleteCount: 可選. 整數(shù)灰羽,表示要移除的數(shù)組元素的個(gè)數(shù)。如果 deleteCount 被省略了或者它的值大于等于array.length - start鱼辙,那么start之后數(shù)組的所有元素都會(huì)被刪除廉嚼;如果 deleteCount 是 0 或者負(fù)數(shù),則不移除元素倒戏。這種情況下怠噪,至少應(yīng)添加一個(gè)新元素。
item1, item2, ...: 可選杜跷,要添加進(jìn)數(shù)組的元素,從start 位置開始傍念。如果不指定,則 splice() 將只刪除數(shù)組元素葛闷。

var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];
var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
// 運(yùn)算后的 myFish: ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// 被刪除的元素: ["angel", "clown"]

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(-2, 1);
// 運(yùn)算后的 myFish: ["angel", "clown", "sturgeon"]
// 被刪除的元素: ["mandarin"]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捂寿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子孵运,更是在濱河造成了極大的恐慌,老刑警劉巖蔓彩,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件治笨,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赤嚼,警方通過查閱死者的電腦和手機(jī)旷赖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來更卒,“玉大人等孵,你說我怎么就攤上這事□蹇眨” “怎么了俯萌?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)上枕。 經(jīng)常有香客問我咐熙,道長(zhǎng),這世上最難降的妖魔是什么辨萍? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任棋恼,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘爪飘。我一直安慰自己义起,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布师崎。 她就那樣靜靜地躺著默终,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抡诞。 梳的紋絲不亂的頭發(fā)上穷蛹,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音昼汗,去河邊找鬼肴熏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛顷窒,可吹牛的內(nèi)容都是我干的蛙吏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼鞋吉,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼鸦做!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谓着,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤泼诱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后赊锚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體治筒,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年舷蒲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了耸袜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡牲平,死狀恐怖堤框,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纵柿,我是刑警寧澤蜈抓,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站藐窄,受9級(jí)特大地震影響资昧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荆忍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一格带、第九天 我趴在偏房一處隱蔽的房頂上張望撤缴。 院中可真熱鬧,春花似錦叽唱、人聲如沸屈呕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虎眨。三九已至,卻和暖如春镶摘,著一層夾襖步出監(jiān)牢的瞬間嗽桩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工凄敢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碌冶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓涝缝,卻偏偏與公主長(zhǎng)得像扑庞,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拒逮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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

  • 創(chuàng)建一個(gè)Date實(shí)例罐氨,該實(shí)例呈現(xiàn)時(shí)間中的某個(gè)時(shí)刻。Date對(duì)象基于格林威治(Greenwich)時(shí)間滩援,從1970年...
    記錄經(jīng)歷閱讀 189評(píng)論 0 0
  • js常用內(nèi)置對(duì)象有:Date,栅隐、Array、String玩徊、Math约啊、Object、JSON佣赖、 RegExp、Win...
    TheoLin閱讀 914評(píng)論 0 3
  • 什么是對(duì)象JavaScript 中的所有事物都是對(duì)象记盒,如:字符串憎蛤、數(shù)值、數(shù)組纪吮、函數(shù)等俩檬,每個(gè)對(duì)象帶有屬性和方法。對(duì)象...
    阿r阿r閱讀 445評(píng)論 0 9
  • 1 - 內(nèi)置對(duì)象 1.1 內(nèi)置對(duì)象 ? JavaScript 中的對(duì)象分為3種:自定義對(duì)象 碾盟、內(nèi)置對(duì)...
    王玉偉的偉閱讀 112評(píng)論 0 0
  • mark相關(guān)的知識(shí)點(diǎn): 首先棚辽,什么是js的內(nèi)置對(duì)象,它包括了些什么內(nèi)容冰肴?(以下內(nèi)容轉(zhuǎn)自網(wǎng)上資源的整合) (W3sh...
    Lnannan閱讀 592評(píng)論 0 0