系統提供的對象, Object Array Math Date等數組
宿主對象(瀏覽器宿主,Node宿主軟件)瀏覽器
瀏覽器中提供的對象。Js運行環境提供等對象。好比 Bom中的window,Dom中的document。dom
Math自己是一個對象,不是構造函數。函數
console.log(Math.PI);編碼
var a = Math.abs(-100); //絕對值spa
- Math.abs(數字); 獲取一個數字的絕對值code
- Math.round(數字); 四捨五入對象
- Math.PI; πblog
- Math.ceil(數字); 向上取整排序
- Math.floor(數字); 向下取整
- Math.random(); 隨機數[0,1);
- Math.max(數字,數字,數字...); 求最大數
- Math.min(數字,數字,數字...); 求最小數
Date和Math不一樣,是一個系統內置的構造函數。是JS提供的日期和時間的操做接口。
能夠表示1970年1月1日先後各1億天。
建立當前時間
1 new date = new Date(); //輸出星期 月份 日期 年份 小時:分鐘:秒 時區 2 3 console.log(date); //默認調用了toString(),獲得的是字符串。 4 5 console.dir(date); //能夠打印對象,獲得的是對象。
建立其餘時間
1 new date = new Date('2019/10/10 12:12:12'); 2 3 //或new date = new Date('2019-10-10 12:12:12');
時間戳:是數字。從1970年到某個時間的總毫秒值
1 var date = new Date(9999999999); 2 3 console.dir(date);
傳入多個參數
這種方式中的月份從0開始,即0到11。
1 var date = new Date(2019,3,4,12,12,12,500); 2 3 console.dir(date); //打印2019年4月4日12:12:12
var date = new Date(); //建立一個日期對象
//獲取
var year = date.getFullYear(); //獲取年份
var month = date.getMonth(); //獲取月份。月份從0開始,打印出當前月份-1
var day = date.getDate(); //獲取日期
var week = date.getDay(); //獲取星期。返回星期數,數字範圍爲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月。數字沒有範圍,年份會自動變化
date.setMonth(-1); //日期改變成上一年的12月。
1 //封裝一個函數,實現格式化日期。 2 function blockDate(date) { 3 // var date = new Date(); //獲取當前時間 4 var year = date.getFullYear(); 5 var month = date.getMonth() + 1; 6 month = month < 10 ? '0' + month : month; 7 var day = date.getDate(); 8 day = day < 10 ? '0' + day : day; 9 var hours = date.getHours(); 10 hours = hours < 10 ? '0' + hours : hours; 11 var minutes = date.getMinutes(); 12 minutes = minutes < 10 ? '0' + minutes : minutes; 13 var seconds = date.getSeconds(); 14 seconds = seconds < 10 ? '0' + seconds : seconds; 15 var dateStr = (year + '年' + month + '月' + date + '日 ' + hours + '點' + minutes + '分' + seconds + '秒'); 16 return dateStr; 17 } 18 var time = new Date(); //當前時間 19 var time = new Date(2019, 3, 4, 12, 12, 12); //指定時間 20 var r = blockDate(time); 21 document.write(r);
在js中數組是一個特殊對象:數組中數據的鍵名(即下標或索引)是一組從0開始的有序的數字。
1 var arr = new Array(11,22,33,44,55); 2 3 console.log(arr);
1 var arr = ['張三', '李四']; 2 3 arr.unshift('小明', '小黃'); //在數組最前面添加元素 4 5 arr.push('王五', '趙六'); //在數組末尾添加元素 6 7 //var len = arr.push('王五','趙六'); 8 9 //console.log(len); //能夠返回添加後的數組長度。
1 var arr = ['張三', '李四', '王五', '趙六']; 2 3 arr.pop(); //不須要傳參數,刪除數組最後一個元素 4 5 arr.shift(); //刪除數組的第一個元素 6 7 //var r = arr.pop(); 8 9 //console.log(arr); //返回刪除掉的最後一個元素
數組名.splice(index,howmany,item1,...,itemn);
index 從數組的什麼位置開始刪
howmany 刪幾個
item 添加的其餘數據
1 var arr = ['張三', '李四', '王五', '趙六']; 2 3 arr.splice(1, 1); //刪掉了李四 4 5 //arr.splice(1,1,lisi); //將李四替換成了lisi 6 7 //arr.splice(1,0,'小明','小白'); //在李四前面添加了小明和小白 8 9 console.log(arr);
數組名.indexOf(searchElement,index);
index 表示從數組的什麼位置開始查找
1 var arr = ['張三', '李四', '張三', '王五', '張三', '趙六']; //0,2,4 2 3 var index = arr.indexOf('張三'); //返回張三在數組中的位置 4 5 //從前日後找,若是數組中有兩個張三,返回第一個張三的位置。 6 7 var index = arr.indexOf('張三', 2); //返回2 8 9 //var index = arr.lastIndexOf('張三'); //返回最後一個張三的位置 10 11 //若查找的數據不存在,返回-1 12 13 //var index = arr.indexOf('陳七'); 14 15 console.log(index);
反轉:arr.reverse();
排序:arr.sort(); //默認按照Unicode編碼排序,因此11會排在6前面
1 arr.sort(function (a, b)) { 2 3 //a和b表明數組中相鄰的兩個數字 4 5 return a - b; //從小到大排列。 6 7 //return b-a; //從大到小排列。 8 9 }
截取:arr.slice(start,end);
1 var arr = ['張三', '李四', '張三', '王五', '趙六']; 2 3 var r = arr.slice(); //表示截取所有 4 5 var r = arr.slice(2); //表示從指定位置向後截取全部。結果'張三','王五','趙六' 6 7 var r = arr.slice(1, 3); //從指定位置向後截取到結束的位置,包括1可是不包括3
拼接:
1 var arr = ['張三', '李四', '王五', '趙六']; 2 3 //var str = arr.join(); //默認用,鏈接 4 5 //var str = arr.join('-'); //用-鏈接
1 var arr = [22, 33, 44, 55]; 2 3 // 方式1 推薦 4 arr = []; 5 6 // 方式2 7 arr.length = 0; 8 9 // 方式3 10 arr.splice(0, arr.length);
字符串在內存中佔據的大小由字符串的長度決定,字符串在從新賦值時,字符串的長度可能會發生改變。
在內存中原有的數據不會被更改,而是開闢新的空間,存放從新賦值後的數據。原有的數據會在某一時刻被瀏覽器回收。
要避免大量的字符串拼接,由於字符串由不可變性,在從新開闢空間時會耗時。
字符串.charAt(index);
字符串[index]; // 推薦使用
字符串.concat(str1,str2,str3...);
拼接符+ //推薦使用
字符串.slice(star,end);
字符串.indexOf();
字符串.lastIndexOf();
字符串.trim(); // 去除字符串兩邊的空格
字符串.toUpperCase(); // 轉換大寫
字符串.toLowerCase(); // 轉換小寫
字符串.replace(newStr,oldStr);
字符串.split(sp); // 把一個字符串分割成字符串數組。