JS內置對象


JS中對象分為3種:1.自定義對象 2.內置對象 (1、2都是JS基礎對象,屬於ECMAScript)

3.瀏覽器對象(JS獨有的)。

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

最大的優點:幫助我們快速開發。

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

一:Math 數學對象,不是構造函數,直接使用

            //案例:猜數字游戲
			//程序隨機生成一個1-10之間的數字,並讓用戶輸入一個數字
			//1.如果大於該數字,就提示,數字大了,繼續猜;
			//2.如果小於該數字,就提示數字小了,繼續猜;
			//3.如果等於該數字,就提示猜對了,結束程序
			function getSuiji(min,max){
				return Math.floor(Math.random()*(max-min+1)+min);
			}
			//console.log(getSuiji(1,10));
			var suiji=getSuiji(1,10);
			while(true){//死循環
				var num=prompt('你來猜:輸入1-10之間的一個數字');
				if(num>suiji){
					alert('猜大了');
				}else if(num<suiji){
					alert('猜小啦');
				}else if(num==suiji){
					alert('你猜對啦');
					break;//退出整個循環
				}
			}

  

Math案例

            //案例:猜數字游戲
			//程序隨機生成一個1-10之間的數字,並讓用戶輸入一個數字
			//1.如果大於該數字,就提示,數字大了,繼續猜;
			//2.如果小於該數字,就提示數字小了,繼續猜;
			//3.如果等於該數字,就提示猜對了,結束程序
			function getSuiji(min,max){
				return Math.floor(Math.random()*(max-min+1)+min);
			}
			//console.log(getSuiji(1,10));
			var suiji=getSuiji(1,10);
			while(true){//死循環
				var num=prompt('你來猜:輸入1-10之間的一個數字');
				if(num>suiji){
					alert('猜大了');
				}else if(num<suiji){
					alert('猜小啦');
				}else if(num==suiji){
					alert('你猜對啦');
					break;//退出整個循環
				}
			}

 

二:Date 日期對象 是構造函數,需實例化后使用

            //Date()日期對象 是一個構造函數 必須使用new來調用
			var arr = new Array(); //創建一個數組對象
			var obj = new Object(); //創建一個對象實例
			//1.使用Date 如果沒有參數 返回當前系統的當前時間
			var date = new Date();
			console.log(date);
			//2.參數常用的寫法 數字型 2021,10,06或者是字符串型'2021-10-6 6:6:6'
			var date1 = new Date(2021, 10, 6);
			console.log(date1); //返回11月不是10月
			var date2 = new Date('2021-10-6 6:6:6');
			console.log(date2);
			//總結一下:Date對象和Math對象不一樣,它是構造函數,需要對象實例化后才能使用,用來        處理日期和時間
 
			//格式化日期 年月日
			var date = new Date();
			console.log(date.getFullYear()); //返回當前日期的年
			console.log(date.getMonth() + 1); //返回月,月份加一呦
			console.log(date.getDate()); //返回幾號
			console.log(date.getTime()); //獲取時間
 
			//寫2021年10月10日 星期日
			var year = date.getFullYear();
			var month = date.getMonth() + 1;
			var dates = date.getDate();
			var days = date.getDay();
			console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + '星期' + days); //自己寫的不大行哦
			//采用數組整一波
			var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
			i = date.getDay();
			console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[i]); //還是自己寫的,結果滿意過程和pink不一樣
			console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[days]); //最好版
 
			//格式化日期 時分秒
			var date = new Date();
			console.log(date.getHours()); //時
			console.log(date.getMinutes()); //分
			console.log(date.getSeconds()); //秒
			//要求分裝一個函數返回當前的時分秒 格式06:06:06
			function getTime() {
				var time = new Date();
				var h = time.getHours();
				h = h > 10 ? h : '0' + h; //這一步我想不到耶
				var m = time.getMinutes();
				m = m > 10 ? m : '0' + m;
				var s = time.getSeconds();
				s = s > 10 ? s : '0' + s;
				return h + ':' + m + ':' + s;
			}
			console.log(getTime());
 
			//獲得Date總的毫秒數 不是當前時間的毫秒數 而是距離1970年1月1日過了多少毫秒數
			//1.通過valueOf()  getTime()
			var date = new Date();
			console.log(date.valueOf()); //就是我們現在時間距離1970.1.1總的毫秒數
			console.log(date.getTime());
			//2.簡單寫法(最常用的寫法)
			var date1 = +new Date(); //+new Date()返回的就是總的毫秒數
			console.log(date1);
			//3.H5新值的 獲得總的毫秒數
			console.log(Date.now());

  

倒計時案例(重點案例!!!)

            //倒計時案例 是個重點哦!!!!!!!!!!!!!!!!
			//①核心算法:輸入的時間減去現在的時間就是剩余的時間,即倒計時,但是不能拿着時分秒相減,比如05分減去25分,結果會是負數的。
			//②用時間戳來做,用戶輸入時間總的毫秒數減去現在時間的總的毫秒數,得到的就是剩余時間的毫秒數
			//③把剩余時間總的毫秒數轉換為天、時、分、秒(時間戳轉換為時分秒)
			//轉換公式如下:
			//· d=parseInt(總秒數/60/60/24);//計算天數
			//· h=parseInt(總秒數/60/60%24);//計算小時
			//· m=parseInt(總秒數/60%60);//計算分數
			//· s=parseInt(總秒數%60);//計算當前秒數
			function countDown(time){
				var nowTime= +new Date();//返回的是當前時間總的毫秒數
				var inputTime= +new Date(time);//返回的是用戶輸入時間總的毫秒數、
				var times=(inputTime - nowTime)/1000;//time是剩余時間總的秒數
				var d=parseInt(times/60/60/24);//計算天數
				d = d<10?'0'+d:d;
				var h=parseInt(times/60/60%24);//計算小時
				h = h<10?'0'+h:h;
				var m=parseInt(times/60%60);//計算分數
				m = m<10?'0'+m:m;
				var s=parseInt(times%60);
				s = s<10?'0'+s:s;
				return d+'天'+h+'時'+m+'分'+s+'秒';
			}
			console.log(countDown('2021-10-11 18:00:00'));
			var date =new Date();
			console.log(date);

  

三:Array 數組對象

            //創建數組的兩種方式
			//1.利用數組字面量
			var arr = [1, 2, 3];
			console.log(arr[0]);
			//2.利用new Array()
			//var arr1=new Array();創建了一個空的數組
			//var arr1=new Array(2);//這個2表示數組的長度為2 里面有兩個空的數組元素
			var arr1 = new Array(2, 3); //等價於[2,3] 這樣寫表示里面有2個數組元素是2和3
			console.log(arr1);
 
			//檢測是否為數組
			//(1)instanceof 運算符 可以用來檢測是否為數組
			var arr = [];
			var obj = {};
			console.log(arr instanceof Array);
			console.log(obj instanceof Array);
			//(2)Array.isArray(參數);H5新增方法ie9以上版本才支持
			console.log(Array.isArray(arr));
			console.log(Array.isArray(obj));
 
			//添加數組元素
			//1.push()在數組末尾添加一個或多個數組元素 push推
			var arr = [1, 2, 3];
			//arr.push(4,'XYY');
			console.log(arr.push(4, 'XYY')); //5
			console.log(arr);
			//push可以給數組追加新的元素
			//push()參數直接寫 數組元素就可以
			//push完畢之后,返回的結果是新數組的長度
			//原數組也會發生變化
			//2.unshift 在數組開頭添加一個或多個數組元素
			console.log(arr.unshift(0, 'hh'));
			console.log(arr);
			//unshift在數組前面追加新的元素
			//unshift()參數直接寫 數組元素
			//unshift完畢后返回新數組的長度
			//原數組也會發生變化
 
			//添加數組元素總結:吼吼吼,push()和unshift()不就是一個后一個前嘛
 
			//刪除數組元素
			//pop()刪除數組最后一個元素,一次只能刪除一個元素
			//pop()沒有參數
			//pop完畢之后返回結果是刪除的那個元素
			//原數組會發生變化
			console.log(arr.pop()); //XYY ,返回的結果是刪除的那個元素
			console.log(arr);
 
			//shift()刪除數組最后一個元素,一次只能刪除一個元素
			//shift()沒有參數
			//shift完畢之后返回結果是刪除的那個元素
			//原數組會發生變化
			console.log(arr.shift());
 
 
			//篩選數組
			//有一個包含工資的數組[1500,1200,2000,2100,1800],要求把數組中工資超過2000的刪除,剩余的放到新數組中
			var arr = [1500, 1200, 2000, 2100, 1800];
			var newArr = [];
			for (var i = 0; i <= arr.length - 1; i++) {
				if (arr[i] < 2000) {
					//newArr[newArr.length]=arr[i];
					newArr.push(arr[i]);
				}
			}
			console.log(newArr);
 
			//數組排序
			//翻轉數組
			var arr1 = ['ha', 'hia', 'he'];
			arr1.reverse();
			console.log(arr1);
			//數組排序(冒泡排序)
			var arr2 = [3, 2, 1, 5, 4];
			arr2.sort();
			console.log(arr2);
 
			var arr3 = [13, 2, 11, 5, 4];
			arr3.sort(function(a, b) {
				return a - b; //升序
				return b - a; //降序
			});
			console.log(arr3);
 
			//獲取數組元素索引
			//indexOf(數組元素)返回該數組元素的索引號 從前面開始查找
			//只返回第一個滿足條件的索引號
			//如果在該數組里找不到元素,就返回-1
			var arr = [1, 2, 3, 4, 5, 6, 7, 8];
			console.log(arr.indexOf(8)); //返回7,果真不假呢
			console.log(arr.indexOf(0)); //返回-1
			//indexOf(數組元素)返回該數組元素的索引號 從后面開始查找
			console.log(arr.lastIndexOf(8));//7
			console.log(arr.indexOf(0)); //返回-1
			console.log(arr.lastIndexOf(6));//5
			
			//重點案例!!!!!!!!!!
			//數組去重數組[1,4,5,63,5,7,9]要求去掉重復元素
			//核心算法:遍歷舊數組,然后拿着舊數組元素去查詢新數組,如果該元素在新數組里面沒有出現過,我們就添加,否則不添加
			//如何知道該元素存不存在嘞?利用 新數組.indexOf(數組元素) 如果返回時 -1就說明新數組沒有改元素
			//封裝一個去重的函數 unique 獨一無二
			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([1,4,5,63,5,7,9]);
			console.log(demo);
			
			//數組轉換為字符串
			//1.toString()將數組轉為字符串
			var arr=[1,2,3];
			console.log(arr.toString());
			//2.join分隔符
			var arr1=['1','2','3'];
			console.log(arr.join());//1,2,3
			console.log(arr.join('-'));//1-2-3
			console.log(arr.join('&'));//1&2&3

  

Array對象常用方法總結unshift( ) 數組開頭增加   shift( ) 數組開頭刪除一項

push( ) 數組末尾增加   pop( )數組末尾刪除一項

concat( ) 數組的拼接 arr1.concat( arr2,arr3....)

使用concat可以實現數組的克隆,concat()中不傳參數

splice(index, howmany, item1, ...itemx)

splice 可以根據參數實現數組的刪除,增加,替換

前兩個參數 index 和 howmany 是必需的參數,后面的參數可選參數

splice(index, 0 ,item1, item2...) 增加

從索引 index 開始增加,增加的內容插入到索引 index 前面

splice(index, n) 刪除

從索引 index 開始刪除n個,如果只有一個參數splice(index),就是從索引 index 開始后面的內容全部刪除

splice(index, n,item1,item2...) 替換

從索引 index開始替換 n 個,替換的內容為item1, item2....

slice(n,m) 截取

從索引 n 截取到索引 m 但不包括 m ,原數組不發生改變

slice(0)或splice()可以實現數組的克隆

reverse() 數組翻轉

返回值是翻轉后的新數組,原數組發生改變

sort() 數組排序

使用方法:sort(function (a,b){return a-b}) 從小到大排

sort(function (a,b){return b-a}) 從大到小排

toString( ) 數組轉字符串

把數組轉成以逗號分隔的字符串

join(拼接形式) 拼接

把數組拼接成以其他形式分割的字符串,配合eval()可以實現數學運算 eval(join(‘+’))

數組常用但不兼容的方法:

indexOf(查找內容) 查找

arr.indexOf(查找內容) 查找數組中是否有某項,有的話返回該項的所引,沒有話返回-1;

forEach() 遍歷

forEach接收兩個參數,一個callback,thisArg
callback接收三個參數:1)item 2)index 3)input
thisArg用來改變callback中的this指向;
forEach 沒有返回值,但是map有返回值
map()遍歷

四:String 字符串對象 

            var str='xyyyyy';
			console.log(str.length);
			//對象才有屬性和方法 復雜數據類型才有屬性和方法
			//簡單數據類型為什么會有length屬性呢?
			//基本包裝類型: 就是把簡單數據類型包裝成為了復雜數據類型
			//1.把簡單數據類型包裝成復雜數據類型
			var temp=new String('xyyyyy');
			//2.把臨時變量的值給str
			str=temp;
			//3.銷毀這個臨時變量
			temp=null;
			
			//基本包裝類型就是把簡單數據類型包裝成復雜數據類型,這樣基本數據類型就有了屬性和方法
			
			//案例:查找字符串‘abcoefoxyozzopp’中所有o出現的位置以及次數
			//①核心算法:先查找第一個o出現的位置
			//②然后只要indexOf返回的結果不是-1就繼續往后查找
			//③因為indexOf只能查找到第一個,所以后面的查找,利用第二個參數,當前索引加1,從而繼續查找
			var str='abcoefoxyozzopp';
			var index=str.indexOf('o');
			var num=0;
			//console.log(index);
			while(index !== -1){
				console.log(index);
				num++;
				index=str.indexOf('o',index+1);
			}
			console.log('o出現次數:'+num);
			
			//根據位置返回字符
			//1.charAt(index)根據位置返回字符
			var str='XYY';
			console.log(str.charAt(2));//Y
			//遍歷所有的字符
			for(var i=0;i<str.length;i++){
				console.log(str.charAt(i));
			}
			//2.charCodeAt(index)返回相應索引號的字符ASCII值 目的:判斷用戶按下了那個鍵
			console.log(str.charCodeAt(0));//88
			//3.str[index] H5新增
			console.log(str[0]);
			
			//字符串操作方法
			//1.concat('字符串','字符串2'···)
			var str='Xyy';
			console.log(str.concat('ing'));
			//2.substr('截取的起始位置','截取幾個字符');
			var str1='夏穎宇宙最帥';
			console.log(str1.substr(2,2));//宇宙
			//3.replace('被替換的字符','替換為的字符')只會替換第一個字符
			var str='Xying';
			console.log(str.replace('X','Y'));
			//4.字符串轉換為數組 split('分隔符') 
			var str='red,pink,yellow';
			console.log(str.split(','));
			var str='red&pink&yellow';
			console.log(str.split('&'));

  

字符串方法總結:

charAT(index) 通過索引找字符

charCodeAt(index) 通過索引找到字符的 Unicode 編碼。這個返回值是 0 - 65535 之間的整數。

方法 charCodeAt() 與 charAt() 方法執行的操作相似,只不過前者返回的是位於指定位置的字符的編碼,而后者返回的是字符子串。

indexOf() 從前往后找,找到返回內容的索引,找不到返回-1;

lastIndexOf() 從后往前找,找到返回內容的索引,找不到返回-1;

slice(n,m) 從索引n 查找到索引m 但不包括m,slice可以取負值

substring(n,m) 從索引n 查找到索引m ,但不包括m, 不可以取負值

substr(n,m) 從索引n開始截取m 個

split(切割形式) 把一個字符串分割成字符串數組。

toUpperCase()轉大寫字母     toLowerCase() 轉小寫字母

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM