系統(tǒng)提供的對象空民, Object Array Math Date等
宿主對象(瀏覽器宿主惕鼓,Node宿主軟件)
瀏覽器中提供的對象杀糯。Js運行環(huán)境提供等對象碎捺。比如 Bom中的window,Dom中的document盏筐。
(一)Math對象
Math本身是一個對象琢融,不是構造函數(shù)。
//屬性
console.log(Math.PI);
//方法
var a = Math.abs(-100);? //絕對值
- Math.abs(數(shù)字); 獲取一個數(shù)字的絕對值
- Math.round(數(shù)字);? 四舍五入
- Math.PI;? ? π
- Math.ceil(數(shù)字);? ? 向上取整
- Math.floor(數(shù)字);? 向下取整
- Math.random();? ? 隨機數(shù)[0,1);
- Math.max(數(shù)字,數(shù)字,數(shù)字...);? ? 求最大數(shù)
- Math.min(數(shù)字,數(shù)字,數(shù)字...);? ? 求最小數(shù)
(二)Date對象
Date和Math不同,是一個系統(tǒng)內置的構造函數(shù)坤按。是JS提供的日期和時間的操作接口臭脓。
可以表示1970年1月1日前后各1億天砚作。
1)創(chuàng)建日期對象
創(chuàng)建當前時間
new date = new Date();? //輸出星期 月份 日期 年份 小時:分鐘:秒 時區(qū)
console.log(date);? //默認調用了toString()葫录,得到的是字符串。
console.dir(date);? //可以打印對象,得到的是對象熬苍。
創(chuàng)建其他時間
new date = new Date('2019/10/10 12:12:12');
//或new date = new Date('2019-10-10 12:12:12');
時間戳:是數(shù)字婿脸。從1970年到某個時間的總毫秒值
var date = new Date(9999999999);
console.dir(date);
傳入多個參數(shù)
這種方式中的月份從0開始凿歼,即0到11味赃。
var date = new Date(2019,3,4,12,12,12,500);
console.dir(date); //打印2019年4月4日12:12:12
2)操作日期對象
var date = new Date();? //創(chuàng)建一個日期對象
//獲取
var year = date.getFullYear(); //獲取年份
var month = date.getMonth(); //獲取月份。月份從0開始城榛,打印出當前月份-1
var day = date.getDate(); //獲取日期
var week = date.getDay(); //獲取星期瞻润。返回星期數(shù)绍撞,數(shù)字范圍為0(周日)到6(周六)
var hours = date.getHours(); //獲取小時
var minutes = date.getMinutes(); //獲取分鐘
var seconds = date.getSeconds(); //獲取秒
var milliSeconds = date.getMilliSeconds(); //獲取毫秒
var time = date.getTime(); //獲取從1970年到某日的時間戳
//設置
date.setMonth(4);? //日期改變成5月
date.setMonth(12);? //日期改變成下一年的1月章贞。數(shù)字沒有范圍,年份會自動變化
date.setMonth(-1);? //日期改變成上一年的12月里覆。
代碼舉栗:
//封裝一個函數(shù),實現(xiàn)格式化日期车荔。
function blockDate(date) {
// var date = new Date(); //獲取當前時間
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = month < 10?'0' + month:month;
var day = date.getDate();
day = day < 10?'0' + day:day;
var hours = date.getHours();
hours = hours < 10?'0' + hours:hours;
var minutes = date.getMinutes();
minutes = minutes < 10?'0' + minutes:minutes;
var seconds = date.getSeconds();
seconds = seconds < 10?'0' + seconds:seconds;
var dateStr = (year + '年' + month + '月' + date + '日 ' + hours + '點' + minutes + '分' + seconds + '秒');
return dateStr;
}
var time = new Date(); //當前時間
var time = new Date(2019,3,4,12,12,12); //指定時間
var r = blockDate(time);
document.write(r);
(三)數(shù)組對象
在js中數(shù)組是一個特殊對象:數(shù)組中數(shù)據(jù)的鍵名(即下標或索引)是一組從0開始的有序的數(shù)字珠增。
var arr = new Array(11,22,33,44,55);
console.log(arr);
1)向數(shù)組前后添加數(shù)據(jù)
var arr = ['張三','李四'];
arr.unshift('小明','小黃');? //在數(shù)組最前面添加元素
arr.push('王五','趙六');? //在數(shù)組末尾添加元素
//var len = arr.push('王五','趙六');
//console.log(len);? //可以返回添加后的數(shù)組長度脆荷。
2)刪除數(shù)組前后數(shù)據(jù)
var arr = ['張三','李四','王五','趙六'];
arr.pop();? //不需要傳參數(shù)梦皮,刪除數(shù)組最后一個元素
arr.shift();? //刪除數(shù)組的第一個元素
//var r = arr.pop();?
//console.log(arr);? //返回刪除掉的最后一個元素
3)刪除任意位置的數(shù)據(jù)
數(shù)組名.splice(index,howmany,item1,...,itemn);
index:從數(shù)組的什么位置開始刪
howmany:刪幾個
item:添加的其他數(shù)據(jù)
var arr = ['張三','李四','王五','趙六'];
arr.splice(1,1); //刪掉了李四
//arr.splice(1,1,lisi); //將李四替換成了lisi
//arr.splice(1,0,'小明','小白');? //在李四前面添加了小明和小白
console.log(arr);
4)數(shù)組元素的查詢
數(shù)組名.indexOf(searchElement,index);
index:表示從數(shù)組的什么位置開始查找
var arr = ['張三','李四','張三','王五','張三','趙六'];? //0,2,4
var index = arr.indexOf('張三');? //返回張三在數(shù)組中的位置
//從前往后找,如果數(shù)組中有兩個張三,返回第一個張三的位置。
var index = arr.indexOf('張三',2); //返回2
//var index = arr.lastIndexOf('張三'); //返回最后一個張三的位置
//若查找的數(shù)據(jù)不存在,返回-1
//var index = arr.indexOf('陳七');
console.log(index);
5)反轉和排序
反轉:arr.reverse();
排序:arr.sort();? //默認按照Unicode編碼排序狠裹,所以11會排在6前面
arr.sort(function(a,b)) {
//a和b代表數(shù)組中相鄰的兩個數(shù)字
return a-b; //從小到大排列。
//return b-a; //從大到小排列汽烦。
}
6)截取和拼接
截忍尾ぁ:arr.slice(start,end);
var arr = ['張三','李四','張三','王五','趙六'];
var r = arr.slice();? //表示截取全部
var r = arr.slice(2);? //表示從指定位置向后截取所有。結果'張三','王五','趙六'
var r = arr.slice(1,3);? //從指定位置向后截取到結束的位置,包括1但是不包括3
拼接:
var arr = ['張三','李四','王五','趙六'];
//var str = arr.join();? //默認用,連接
//var str = arr.join('-');? //用-連接
7)清空數(shù)組
var arr = [22,33,44,55];
// 方式1 推薦
arr = [];
// 方式2
arr.length = 0;
// 方式3
arr.splice(0, arr.length);
(四)String對象
字符串在內存中占據(jù)的大小由字符串的長度決定俗冻,字符串在重新賦值時礁叔,字符串的長度可能會發(fā)生改變。
在內存中原有的數(shù)據(jù)不會被更改迄薄,而是開辟新的空間琅关,存放重新賦值后的數(shù)據(jù)。原有的數(shù)據(jù)會在某一時刻被瀏覽器回收讥蔽。
要避免大量的字符串拼接涣易,因為字符串由不可變性,在重新開辟空間時會耗時勤篮。
1)獲取字符串中的單個字符
字符串.charAt(index);
字符串[index];// 推薦使用
2)字符串的拼接和截取
// 拼接
字符串.concat(str1,str2,str3...);
拼接符+//推薦使用?
// 截取
字符串.slice(star,end);
3)查詢字符是否在字符串中存在
字符串.indexOf();
字符串.lastIndexOf();
4)去除空白符
字符串.trim();// 去除字符串兩邊的空格
5)字母字符大小寫轉換
字符串.toUpperCase(); // 轉換大寫?
字符串.toLowerCase(); // 轉換小寫?
6)字符串替換
字符串.replace(newStr,oldStr);
7)字符串分割
字符串.split(sp);// 把一個字符串分割成字符串數(shù)組都毒。