JavaScript內(nèi)置對象介紹
一、內(nèi)置對象
內(nèi)置對象就是指 JS 語言自帶的一些對象,這些對象供開發(fā)者使用,并提供了一些常用的或是最基本而必要的功能(屬性和方法)。內(nèi)置對象最大的優(yōu)點就是幫助我們快速開發(fā)。JavaScript
提供了多個內(nèi)置對象:Math
、 Date
、Array
、String
等
二、Math對象
Math
對象不是構(gòu)造函數(shù),它具有數(shù)學(xué)常數(shù)和函數(shù)的屬性和方法。跟數(shù)學(xué)相關(guān)的運算(求絕對值,取整、最大值等)可以使用 Math 中的成員。
1、Math對象的使用
Math.abs(x):返回x的絕對值 Math.pow(x,y):返回x的y次方 Math.sqrt(x):返回x的算術(shù)平方根 Math.random():返回偽隨機數(shù)(0.0~1.0之間) Math.round(x):返回x四舍五入后的最接近的整數(shù) Math.floor(x):返回小于或等于x的最大整數(shù)。(向下取整) Math.ceil(x):函數(shù)返回大于或等于x的最小整數(shù)(向上取整) Math.max():返回參數(shù)中的最大值 Math.min():返回參數(shù)中的最小值
注意:上面的方法必須帶括號
如下所示:
console.log('Math.abs(-2)='+Math.abs(-2)); console.log('Math.ceil(1.7)='+Math.ceil(1.7)); console.log('Math.floor(1.7)='+Math.floor(1.7)); console.log('Math.pow(2,3)='+Math.pow(2,3)); console.log('Math.sqrt(3)='+Math.sqrt(3)); console.log('Math.round(3.4)='+Math.round(3.4)); console.log('Math.round(3.6)='+Math.round(3.6)); console.log('Math.max(1,2)='+Math.max(1,2)); console.log('Math.min(1,2)='+Math.min(1,2));
打印結(jié)果為:
2、生成指定范圍的隨機數(shù)
封裝一個生成1到10之間的隨機數(shù)的函數(shù):
代碼如下:
function random(min,max){ return Math.floor(Math.random()*(max-min+1))+min; } for(var i =1;i<=10;i++){ console.log('第'+i+'次打印的結(jié)果為:'+random(1,10)); }
隨機打印輸出結(jié)果為:
其中,min
和max
是生成隨機數(shù)的范圍。
三、日期對象
Date
對象和Math
對象不一樣,他是一個構(gòu)造函數(shù),所以我們需要實例化后才能使用Date
實例用來處理日期和時間
1、Date()方法的使用
獲取當(dāng)前時間必須實例化:
var now = new Date(); console.log(now);
Date() 構(gòu)造函數(shù)的參數(shù):
- 如果括號里面有時間,就返回參數(shù)里面的時間。例如日期格式字符串為‘2019-5-1’,可以寫成new Date(‘2019-5-1’) 或者 new Date(‘2019/5/1’)
- 如果Date()不寫參數(shù),就返回當(dāng)前時間
- 如果Date()里面寫參數(shù),就返回括號里面輸入的時間
例如:
var date1 = new Date() console.log('date1='+date1); var date2 = new Date(2021,11,08,20,51); console.log('date2='+date2); date3 = new Date('2021-11-08 20:54') console.log('date3='+date3);
輸出的結(jié)果為:
2、日期對象的使用
get方法的使用:
例如:
var date1 = new Date() console.log('date1='+date1); console.log('今年是:'+date1.getFullYear()+'年'); console.log('這個月是:'+date1.getMonth()+'月'); console.log('今天是:'+date1.getDate()+'號'); console.log('現(xiàn)在是:'+date1.getHours()+'時'); console.log('現(xiàn)在是:'+date1.getMinutes()+'分');
顯示結(jié)果為:
set方法的使用:
例如:
var date1 = new Date() console.log(date1); date1.setFullYear(2020) console.log(date1);
打印的結(jié)果為:
3、獲取時間戳
通過日期對象的valueof()或getTime()方法:
var date1 = new Date(); console.log(date1.valueOf()); console.log(date1.getTime());
使用“+”運算符轉(zhuǎn)換為數(shù)值型:
var date2 = +new Date(); console.log(date2);
使用HTML5新增的Date.now()方法:
console.log(Date.now());
四、數(shù)組對象
1、數(shù)組對象的創(chuàng)建
創(chuàng)建數(shù)組對象的兩種方式:
- 字面量方式
- new Array()
2、檢測是否為數(shù)組
instanceof
運算符,可以判斷一個對象是否屬于某種類型Array.isArray()
用于判斷一個對象是否為數(shù)組,isArray()
是 HTML5
中提供的方法
如下所示:
var arr=[1,2,3,4]; var obj = {}; console.log(arr instanceof Array); console.log(obj instanceof Array); console.log(Array.isArray(arr)); console.log(Array.isArray(obj));
3、添加刪除數(shù)組元素的方法
注意:push()
和unshift()
方法的返回值是新數(shù)組的長度,而pop()和shift()方法返回的是移出的數(shù)組元素。
例如:
有一個數(shù)組[1500, 1200, 2000, 2100, 1800],要求把數(shù)組中超過2000的刪除,剩余的放到新數(shù)組里面,代碼如下:
var arr = [1500, 1200, 2000, 2100, 1800]; var newArr=[]; for(var i=0;i<arr.length;i++){ if(arr[i]<2000){ newArr.push(arr[i]); } } console.log(newArr);
打印的結(jié)果為:
4、數(shù)組排序
方法 | 功能描述 |
---|---|
reverse() | 顛倒數(shù)組中元素的位置,該方法會改變原數(shù)組,返回新數(shù)組 |
sort() | 對數(shù)組的元素進行排序,該方法會改變原數(shù)組,返回新數(shù)組 |
例如:
顛倒數(shù)組:
var arr = [1500, 1200, 2000, 2100, 1800]; console.log(arr); console.log(arr.reverse());
對數(shù)組進行排序:
var arr = [1500, 1200, 2000, 2100, 1800]; console.log(arr); var newArr = arr.sort(function(a,b){ return a-b;//升序 return b-a;//降序 }) console.log(newArr);
打印的結(jié)果為:
5、 數(shù)組索引方法
方法名 | 說明 | 返回值 |
---|---|---|
indexOf() | 數(shù)組中查找給定元素的第一個索引 | 如果存在返回索引號,如果不存在,則返回-1 |
lastIndexOf() | 在數(shù)組中的最后一個的索引 | 如果存在返回索引號,如果不存在則返回-1 |
例如:
var arr = [1500, 1200, 2000,1500, 2100, 1500,1800]; console.log('arr.indexOf(1500):'+arr.indexOf(1500)); console.log('arr.lastIndexOf(1500):'+arr.lastIndexOf(1500));
打印的結(jié)果為:
數(shù)組去重案例:
有一個數(shù)組[‘c’, ‘a’, ‘z’, ‘a’, ‘x’, ‘a’, ‘x’, ‘c’, ‘b’],要求去除數(shù)組中重復(fù)的元素。
案例分析:
目標(biāo):把舊數(shù)組里面不重復(fù)的元素選取出來放到新數(shù)組中,重復(fù)的元素只保留一個,放到新數(shù)組中去重。
核心算法:遍歷舊數(shù)組,然后拿著舊數(shù)組元素去查詢新數(shù)組,如果該元素在新數(shù)組里面沒有出現(xiàn)過,我們就添加,否則不添加。
代碼如下:
var arr = ['c', 'a', 'z', 'a','x', 'a', 'x', 'c', 'b']; var newArr=[]; for(var i =0;i<arr.length;i++){ if(newArr.indexOf(arr[i]) === -1) { newArr.push(arr[i]); } } console.log(newArr);
打印的結(jié)果為:
6、數(shù)組轉(zhuǎn)換為字符串
方法名 | 說明 | 返回值 |
---|---|---|
toString() | 把數(shù)組轉(zhuǎn)換成字符串,逗號分隔每一項 | 返回一個字符串 |
join('分隔符‘) | 方法用于把數(shù)組中的所有元素轉(zhuǎn)換成一個字符串。 | 返回一個字符串 |
例如:
var arr = ['a', 'b', 'c']; console.log(arr); console.log(arr.toString()); // 輸出結(jié)果:a,b,c // 使用join() console.log(arr.join()); // 輸出結(jié)果:a,b,c console.log(arr.join('')); // 輸出結(jié)果:abc console.log(arr.join('-')); // 輸出結(jié)果:a-b-c
五、字符串對象
1、根據(jù)字符返回位置
方法名 | 說明 |
---|---|
indexOf() | 返回指定內(nèi)容在原字符串的位置, 如果找不到,則返回-1,開始的位置是index索引號 |
lastIndexOf() | 從后往前找,只找第一個匹配的 |
例如:要求在一組字符串中,找到所有指定元素出現(xiàn)的位置以及次數(shù)。字符串為 ’ Hello World, Hello JavaScript '。
代碼如下:
var str = 'Hello World, Hello JavaScript'; console.log(str); var index = str.indexOf('o'); var num = 0; while (index != -1) { console.log(index); // 依次輸出:4、7、17 index = str.indexOf('o', index + 1); num++; } console.log('o出現(xiàn)的次數(shù)是:' + num); // o出現(xiàn)的次數(shù)是:3
打印的結(jié)果為:
2、 根據(jù)位置返回字符
例如:
var str = 'Apple'; console.log(str.charAt(3)); // 輸出結(jié)果:1 console.log(str.charCodeAt(0)); // 輸出結(jié)果:65(字符A的ASCII碼為65) console.log(str[0]); // 輸出結(jié)果:A
例如: 使用charAt()
方法通過程序來統(tǒng)計字符串中出現(xiàn)最多的字符和次數(shù)
var str = 'Apple'; // 第1步,統(tǒng)計每個字符的出現(xiàn)次數(shù) var o = {}; for (var i = 0; i < str.length; i++) { var chars = str.charAt(i); // 利用chars保存字符串中的每一個字符 if (o[chars]) { // 利用對象的屬性來方便查找元素 o[chars]++; } else { o[chars] = 1; } } console.log(o);
打印結(jié)果為:
3、 字符串操作方法
var str = 'HelloWorld'; str.concat('!'); // 在字符串末尾拼接字符,結(jié)果:HelloWorld! str.slice(1, 3); // 截取從位置1開始包括到位置3的范圍內(nèi)的內(nèi)容,結(jié)果:el str.substring(5); // 截取從位置5開始到最后的內(nèi)容,結(jié)果:World str.substring(5, 7); // 截取從位置5開始到位置7范圍內(nèi)的內(nèi)容,結(jié)果:Wo str.substr(5); // 截取從位置5開始到字符串結(jié)尾的內(nèi)容,結(jié)果:World str.toLowerCase(); // 將字符串轉(zhuǎn)換為小寫,結(jié)果:helloworld str.toUpperCase(); // 將字符串轉(zhuǎn)換為大寫,結(jié)果:HELLOWORLD str.split('l'); // 使用“l(fā)”切割字符串,結(jié)果:["He", "", "oWor", "d"] str.replace('World', '!'); // 替換字符串,結(jié)果:"Hello!"
4、split()方法
split()
方法用于切分字符串,它可以將字符串切分為數(shù)組。在切分完畢之后,返回的是一個新數(shù)組。
例如:
var str = 'a,b,c,d'; console.log(str); console.log(str.split(',')); // 返回的是一個數(shù)組 [a, b, c, d]
到此這篇關(guān)于JavaScript
內(nèi)置對象介紹的文章就介紹到這了,更多相關(guān)JavaScript內(nèi)置對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Flutter?WebView性能優(yōu)化使h5像原生頁面一樣優(yōu)秀
這篇文章主要為大家介紹了Flutter?WebView性能優(yōu)化使h5像原生頁面一樣優(yōu)秀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02使用compose函數(shù)優(yōu)化代碼提高可讀性及擴展性
這篇文章主要為大家介紹了使用compose函數(shù)提高代碼可讀性及擴展性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06微信小程序 定義全局?jǐn)?shù)據(jù)、函數(shù)復(fù)用、模版等詳細(xì)介紹
這篇文章主要介紹了微信小程序 定義全局?jǐn)?shù)據(jù)、函數(shù)復(fù)用、模版等詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-10-10微信小程序Server端環(huán)境配置詳解(SSL, Nginx HTTPS,TLS 1.2 升級)
這篇文章主要介紹了微信小程序Server端環(huán)境配置詳解(SSL, Nginx HTTPS,TLS 1.2 升級)的相關(guān)資料,需要的朋友可以參考下2017-01-01JavaScript?Broadcast?Channel?API使用學(xué)習(xí)
這篇文章主要為大家介紹了JavaScript的api學(xué)習(xí)之Broadcast?Channel?API使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05JS數(shù)據(jù)分析數(shù)據(jù)去重及參數(shù)序列化示例
這篇文章主要為大家介紹了JS數(shù)據(jù)分析數(shù)據(jù)去重及參數(shù)序列化示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08微信小程序 swiper制作tab切換實現(xiàn)附源碼
這篇文章主要介紹了微信小程序 swiper制作tab切換實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-01-01