JavaScript——內置對象(包括:內置對象的概述、Math對象、日期對象、數組對象、字符串對象)

內置對象概述

  • JavaScript中的對象分爲以下3中:

    (1)自定義對象

    (2)內置對象

    (3)瀏覽器對象

  • 內置對象就是指JS語言自帶的一些對象,這些對象供開發者使用,並提供了一些常用的或是最基本而必要的功能(屬性或方法)。

  • 內置對象的優點:幫助開發者快速開發。

  • JavaScript提供了多個內置對象:Math、Date、Array、String等。

Math對象

  • Math數學對象不是一個構造函數,使用使用時不需要new,而是直接使用裏面的屬性和方法即可。

1.Math.max()/Math.min()

Math.max的語法結構如下:
Math.max([value1[,value2,...]])

注意:
1、如果給定的參數中至少有一個參數無法被轉換成數字,則會返回NaN;
2、如果沒有參數,則返回-Infinity

2.Math.PI

  • 獲取圓周率的值。

3.Math.abs()

  • 取某個數的絕對值。
console.log(Math.abs(1));		//1
console.log(Math.abs('-1'))	//1
console.log(Math.abs('蟹黃堡'));	//NaN

4.Math.floor()

  • 向下取整。
console.log(Math.floor(1.1));	//1

5.Math.ceil()

  • 向上取整。
console.log(Math.ceil(1.1));	//2

6.Math.round()

  • 四捨五入,但.5比較特殊,都是往大的取。
console.log(Math.round(1.1));		//1
console.log(Math.round(1.5));		//2
console.log(Math.round(-1.5));	//-1

7.隨機數方法 random()

  • Math.random()函數返回的是一個浮點數,僞隨機數的範圍在[0,1),不包括1。
  • Math.random()不跟參數。
//得到一個兩數之間的隨機整數。包括兩個數在內
function getRandom(min, max){
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

日期對象

  • 日期對象通過創建Date實例來處理日期和時間。

  • Data日期對象是一個構造函數,必須使用new實例化對象。

  • Date()方法如果沒有參數,則返回當前系統的當前時間;如果括號裏面有參數,則放回參數裏面的時間(參數有數字型:2020,04,21,17,4,30;也有字符串型:‘2020-05-21 17:04:30’或者’2020/5/21 17:04:30’)。

  • 獲取日期指定部分的方法如下表:

方法名 說明 代碼
getFullYear() 獲取當年 var time = new Date();
console.log(time.getFullYear());
getMonth() 獲取當月(範圍是0~11,獲取月份的時候實際值會比當月-1,
所以獲取當月時要+1;而Data對象中的參數如果是數字型,
那麼月份的輸出結果會比設置的數值+1)
var time = new Date();
console.log(time.getMonth()+1);
getDate() 獲取當天日期 var time = new Date();
console.log(time.getDate());
getDay() 獲取星期幾(週日0到週六6) var time = new Date();
console.log(time.getDay());
getHours() 獲取當前小時 var time = new Date();
console.log(time.getHours());
getMinutes() 獲取當前分鐘 var time = new Date();
console.log(time.getMinutes());
getSeconds() 獲取當前秒鐘 var time = new Date();
console.log(time.getSeconds());
  • 時間戳:

    (1)通過valueOf()或getTime()的方法獲取

    var date = new Date();
    console.log(date.valueOf());
    console.log(date.getTime());
    

    (2)簡單寫法(最常用)

    var date1 += new Date();
    console.log(date1);
    

    (3)HTML5新增的寫法

    console.log(Date.now());
    
  • 時間戳轉換爲天時分秒的公式如下:

    天數:d = parseInt(總秒數 / 60 /60 /24);

    小時數:h = parseInt(總秒數 / 60 /60 %24);

    分數:m = parseInt(總秒數 / 60 % 60);

    秒數:s = parsrInt(總秒數 % 60);

數組對象

  • 創建數組對象的兩種方式:

    (1)字面量方式

    var arr = [1,2,3];
    cosnole.log(arr[0]);
    

    (2)new Array()

    var arr1 = new Array();		//創建一個空數組
    var arr2 = new Array(2);	//如果只有一個數字,表示只創建一個長度爲2,裏面都是empty元素
    var arr3 = new Array(2,3)	//如果不只一個數字,則表示創建一個元素包括2和3的數組
    
  • 檢查是否爲數組的方法:

    (1)instanceof(返回一個布爾值)

    var arr = [1,2,3];
    console.log(arr instanceof Array);
    

    (2)Array.isArray(參數)(返回一個布爾值)

    var arr = [1,2,3];
    console.log(Array.isArray(arr));
    
  • 添加刪除數組元素的方法(會改變原數組):

方法名 說明 返回值
push(參數1…) 末尾添加一個或多個元素,修改了原數組 返回新數組的長度
pop() 刪除數組最後一個元素,數組長度減1,修改了原數組 返回刪除的那個元素值
unshift(參數1…) 向數組的開頭添加一個或多個元素,修改了原數組 返回新數組的長度
shift() 刪除數組的第一個元素,數組長度減1,修改了原數組 返回刪除的那個元素值
//舉例:
var arr = [1,2,3];
arr.push(4,5);
console.log(arr);		//輸出結果[1,2,3,4,5]

var arr = [1,2,3];
consol.log(arr.push(4,5));		//輸出結果是5

var arr = [1,2,3];
arr.pop();
console.log(arr);					//輸出結果[2,3]

var arr = [1,2,3];
console.log(arr.pop());		//輸出結果是1
  • 數組排序(會改變原數組):
方法名 說明 是否修改原數組
reverse() 顛倒數組中元素的順序,無參數 該方法會改變原來的數組,並返回新數組
sort() 對數組的元素進行排序 該方法會改變原來的數組,並返回新數組
//舉例:
var arr = [1,2,3];
arr.reverse();
console.log(arr);		//輸出結果是:[3,2,1]

var arr = [1,2,4,5,3];
arr.sort();
console.log(arr);		//輸出結果是[1,2,3,4,5]

其中,sort()比較特殊,對個位數能正確排序,但對兩位數以上就會出現問題,解決辦法如下:

var arr = [12,22,32,56,44,2]
//升序排序:
arr.sort(function(a,b){
  return a - b;
})
//降序排序:
arr.sort(function(a,b){
  return b - a;
})
  • 數組索引方法(不會改變原來數組):
方法名 說明 返回值
indexOf(‘要查找的字符’,開始的位置) 數組中查找給定元素的第一個索引 如果存在返回索引號,如果不存在,則返回-1
lastIndexOf(‘要查找的字符’,開始的位置) 在數組中的最後一個的索引 如果存在返回索引號,如果不存在,則返回-1
  • 數組轉換爲字符串(不會改變原來數組):
方法名 說明 返回值
toString() 把數組轉換成字符串,逗號分隔每一項 返回一個字符串
join(‘分隔符’) 把數組中的所有元素轉換爲一個字符串(默認以逗號分隔) 返回一個字符串
//toString():
var arr = [1,2,3];
console.log(arr.toString());		//字符串:1,2,3

//join('分隔符'):
var arr1 = ['red','green','blue'];
console.log(arr1.join());				//字符串:red,green,blue
console.log(arr1.join('&'));		//字符串:red&green&blue
  • 其他方法:
方法名 說明 返回值
concat() 連接兩個或多個數組,不影響原數組 返回一個新的數組
slice() 數組截取slice(begin,end),不影響原數組 返回被截取項目的新數組
splice() 數組刪除splice(第幾個開始,要刪除個數),會影響原數組 返回被刪除項目的新數組

splice具體解析:

(1)slice(begin,end): begin參數是必須的,規定從何處開始選取。如果是負數,那麼規定它從數組尾部開始算起。也就是說,-1表示從最後一個元素開始選取,-2表示從倒數第二個元素開始選取。而end參數是可選的,規定從何處結束選取,該參數一樣可以爲負數。

(2)一個數組對象經過slice(begin,end)操作後,會返回一個新的數組,返回從begin(包含)到end(不包含)之間的所有元素內容。

var arr1 = ["a","b","c"];
 
console.log(arr1.slice(1,2));	//b
console.log(arr1.slice(1,3));	//b,c
console.log(arr1.slice(0,2));	//a,b

splice具體解析:

(1)splice(第幾個開始,要刪除個數,[item1,item2…itemn]):從數組中添加/刪除項目,然後返回被刪除的項目,括號內有3個參數部分。

(2)第幾個開始是必須的。規定添加/刪除項目的位置,使用負數則從尾部規定位置。

​ 要刪除個數也是必須的。規定要刪除項目的數量,爲0則不刪除。

​ item1,item2,itm3,…itemn參數是可選的,表示向數組中添加新項目(替換部分)。

var arr1 = ["a","b","c","d","e"];
//從數組索引位置爲1處開始刪除,刪除1個元素,並返回刪除的該元素,輸出“b”
console.log(arr1.splice(1,1));
//經上一步操作後,被操作數組對象的長度會發生變化(減1),輸出4
console.log(arr1.length);
 
//此時被操作數組中還有4個元素,爲["a","c","d","e"]
//從數組索引位置爲0處開始刪除,刪除2個元素,並返回刪除的元素部分,輸出“a,c”
console.log(array3.splice(0,2));
//此時被操作數組中還有2個元素,爲["d","e"]
//從數組索引位置爲1處開始刪除,刪除2個元素,並返回該刪除的元素部分,輸出“e”
//注意:可以刪除2個元素,但刪除1個元素後已經到達數組的末尾,不再進行刪除。這裏第二個參數在效果上其實等同於指定爲1。
console.log(array3.splice(1,2));

var arr2=["1","2","3","4","5"];
//從數組索引位置爲1處開始刪除,刪除2個元素,返回該刪除的元素部分,輸出“2,3”,
// 並將替換部分(第三個參數部分)代入到被刪除的部分,即數組中["2","3"]的部分變成了["7","8"]
console.log(arr2.splice(1,2,"7","8"));//第三個參數部分爲(item1,item2,...,itemn)
//所以此處數組長度依然是5
console.log(arr2.length);
//輸出內容爲“1,7,8,4,5”
console.log(arr2);

字符串對象

  • 基本包裝類型:把簡單數據類型包裝成複雜數據類型,使基本數據類型也有屬性和方法。
  • JavaScript中可以實現基本包轉類型的簡單數據類型有String、Numbe、Boolean。
var str = 'andy';
console.log(str,length);	//4
//實現簡單數據類型str也有length屬性的原因是基本包裝類型,具體步驟如下:
//生成臨時變量,把簡單類型包轉爲複雜數據類型
var temp = new String('andy');
//賦值給我們聲明的字符變量
str = temp;
//銷燬臨時變量
temp = null;
  • 字符串的不可變:指的是裏面的值不可變,雖然看上去可以改變內容,但其實是地址變了,內存中新開闢了一個內存空間。
var str = 'abc';
str = 'hrllo';
//當重新給str賦值當時候,常量'abc'不會被修改,依然在內存中
//重新給字符串賦值,會重新在內存中開闢空間,這個特點就是字符串的不可變
//由於字符串的不可變,在大量拼接字符串的時候就會有效率問題,應儘量減少字符串拼接
  • 因爲字符串的不可變,所以字符串的所有方法,都不會修改字符串本身,操作完成後會返回一個新的字符串。

  • 根據字符返回位置的方法:

方法名 說明
indexOf(‘要查找的字符’,開始的位置) 返回指定內容在原字符串中的位置,如果找不到就返回-1
lastIndexOf(‘要查找的字符’,開始的位置) 從後往前找,只找第一個匹配的
  • 根據位置返回字符:
方法名 說明 使用
charAt(index) 返回指定位置的字符(index:字符串的索引號) str.charAt(0)
charCodeAt(index) 獲取指定位置處字符的ASCII碼(index:字符串的索引號) str.charCodeAt(0)
str[index] 獲取指定位置處字符 HTML5,IE8+支持,和charAt()等效
  • 替換字符:
//替換字符的語法格式如下:
replace('被替換的字符','替換爲的字符');		//它只會替換第一個字符

var str1 = 'andyandy';
console.log(str1.replace('a','b'))		//輸出結果爲:bndyandy
  • 字符串轉換爲數組:
//字符串轉換爲數組的語法格式如下:
split('分隔符');

var str1 = 'red,green,blue';
console.log(str1.split(','));		//輸出結果:['red','green','blue']
var str2 = 'red&green&blue';
console.log(str2.split('&'));		//輸出結果:['red','green','blue']
  • 轉換大小寫:
//轉換爲大寫的語法格式如下:
toUpperCase();
//轉換爲小寫的語法格式如下:
toLowerCase();

var str = 'Hello';
console.log(str.toUpperCase());		//輸出結果:HELLO
console.log(str.toLowerCase());		//輸出結果:hello
  • 其他方法:
方法名 說明
concat(str1,str2,str3…) concat()方法用於連接兩個或多個字符串。拼接字符串等效於+,但+更常用
substr(start,length) 從start位置開始(索引號),length取的個數
slice(start,end) 從start位置開始,截取到end位置,end取不到(start和end都是索引號)
substring(start,end) 從start位置開始,截取到end位置,end取不到,基本和slice相同,但是不接受負值

微信公衆號也會定期更新,覺得文章寫得還可以的,可以加個關注!點個贊!謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章