內置對象,宿主對象,自定義對象的區別? 內置對象: 系統所提供的對象:Object,Array,Math,Date等等。 宿主對象: JS所運行的環境提供的對象:BOM中的window,DOM中的document 自定義對象: 自定義構造函數所創建的對象 。 Array類型對象: 數組創建方式: 方 ...
內置對象,宿主對象,自定義對象的區別? 內置對象: 系統所提供的對象:Object,Array,Math,Date等等。 宿主對象: JS所運行的環境提供的對象:BOM中的window,DOM中的document 自定義對象: 自定義構造函數所創建的對象 。 Array類型對象: 數組創建方式: 方式1:構造函數Array // 語法: var 數組名 = new Array(數據,數據,數據); // 代碼: var names = new Array('張三','李四','王五','趙六'); 方式2:數組字面量(推薦 ) // 語法: var 數組名 = [數據,數據,數據]; // 數組字面量 // 代碼: var names = ['張三','李四','王五','趙六']; 數組對象常用的方法: 1.向前後數組添加元素:unshift()開頭添加 push()末尾添加 // 向數組的開頭添加一個或更多元素,並返回新的長度。【原數組會發生變化】 數組名.unshift(newelement1,newelement2,....,newelementX); // 向數組的末尾添加一個或更多元素,並返回新的長度 【原數組會發生變化】 數組名.push(newelement1,newelement2,....,newelementX); 2從數組前後刪除元素:shift()開頭刪除 pop() 末尾刪除 // 刪除並返回數組的第一個元素 【原數組會發生變化】 數組名.shift(); // 刪除並返回數組的最後一個元素 【原數組會發生變化】 數組名.pop(); 3.數組任意位置添加,刪除 splice() // 向/從數組中添加/刪除項目,然後返回被刪除的項目。【原數組會發生變化】 數組名.splice(index,howmany,item1,.....,itemX) 參數: index 從哪個位置開始刪 數字 howmany 刪除幾個 數字 item1,.....,itemX 新添加的數據(可以是多個) 可選 4.數組元素的查詢 indexOf()第一個索引 lastIndexOf()最後一個索引 // 返回在數組中可以找到一個給定元素的第一個索引,如果不存在,則返回-1 數組名.indexOf(searchElement); 【用的較多】 // 返回指定元素在數組中的最後一個的索引,如果不存在則返回 -1。從數組的後面向前查找 數組名.lastIndexOf(searchElement); 5.數組的反轉和排序 // 顛倒數組中元素的順序。 【原數組會發生變化】 數組名.reverse(); // 對數組的元素進行排序 數組名.sort(); // 預設排序順序是根據字元串Unicode編碼 【瞭解】
數組名.sort(function(a,b){ //【重點】 return a - b; // 升序(從小到大) })數組名.sort(function(a,b){ //【重點】 return a - b; // 升序(從小到大) }) 數組名.sort(function(a,b){ //【重點】 return b - a; // 降序(從大到小) }) 6.數組截取 slice() 和splice()區分開 // 從已有的數組中返回選定的元素。【截取後,不會改變原數組,而是返回新的數組】 數組名.slice(start,end); 7.數組的拼接 join(‘拼接符’) // 用於把數組中的所有元素放入一個字元串。 數組名.join(separator); 8.數組的其他方法: // 數組遍歷 數組名.forEach(function(value,index,currentArray){ console.log(value); }); // 過濾出符合篩選條件的元素,返回一個新的數組 數組名.filter(function(value,index,currentArray){ return 條件; // 如:return value >= 1000; }); // 驗證數組中的每一個元素是否都符合指定的條件,返回布爾值 數組名.every(function(value,index,currentArray){ return 條件; // 如:return value >= 1000; }); // 驗證數組中的元素,是否有符合指定條件的,返回布爾值 數組名.some(function(value,index,currentArray){ return 條件; // 如:return value >= 1000; }); // 遍曆數組中的每一個元素,更改後存入一個新的數組中,返回一個新的數組 數組名.map(function(value,index,currentArray){ return 操作; // 如:return value * 2; }); 字元串對象: 字元串的不可變性: var str = 'abc'; str = 'hello'; //當重新給str賦值 的時候,數據‘abc’不會被更改,依然在記憶體里 //當重新給字元串賦值時,會在記憶體里重新開闢一片空間 ,這就是字元串的不可變性 //在大量拼接字元串的時候會有效率問題 為什麼基本數據類型字元串可以以像對象一樣使用? // 普通字元串 var str = 'abc'; // 普通字元串不是對象 var len = str.length; // 但是為什麼可以像對象一樣使用點出東西? alert(len); // 3 //把字元串包裝成對象 → 基本包裝類型 var strObj = new String('abc'); // 把字元串包裝成對象 var len = strObj.length; // 因為是對象,所以可以點出東西。 alert(len); //3 字元串對象常用方法: 1.獲取字元串的單個字元 charAt(index) 字元串.charAt(index); 字元串[index]; // 推薦使用 2.字元串拼接 ‘+’ 和截取slice() // 拼接 字元串.concat(str1,str2,str3...); 拼接符 + //推薦使用 // 截取 字元串.slice(star,end); 3.查詢字元在字元串中是否存在indexOf() 字元串.indexOf(); 字元串.lastIndexOf(); 4.清除空白符 trim() 字元串.trim(); // 去除字元串兩邊的空格 5.字母字元 大小寫轉換 toUpperCase() toLowerCase() 6.字元串替換 replace(older,new) 7.分割字元串split(‘=’) Math對象 Math對象常用屬性和方法: 1. Math.abs(數字); 獲取一個數字的絕對值 2. Math.round(數字); 四捨五入 3.Math.PI; π 4.Math.ceil(數字); 向上取整 5.Math.floor(數字); 向下取整 6.Math.random(); 隨機數[0,1); 7.Math.max(數字,數字,數字...); 求最大數 8.Math.min(數字,數字,數字...); 求最小數 date對象 Date類型對象介紹 Date類型對象是JavaScript提供的日期和時間的操作介面。它可以表示的時間範圍是,1970年1月1日00:00:00前後的各1億天(單位為毫秒)。 創建Date對象 var 變數名 = new Date(); // 創建當前時間對象 var date = new Date(); console.log(date); 方法2 var 變數名 = new Date(stringdate); // 創建指定的時間對象 // 參數 stringdate, 字元串格式→ 'year-month-date hh:mm:ss' 或 'year/month/date hh:mm:ss' var date = new Date('2018/10/16 12:12:12'); var date2 = new Date('2018-10-16 12:12:12'); console.log(date); console.log(date2); 方法3 var 變數名 = new Date(value); // 創建1970年開始value毫秒後的時間對象 // 參數 value, 數字,指的是毫秒數 var date = new Date(99999999999); console.log(date); 常用的Date類型對象方法 1獲取和設置年月日 日期對象.getFullYear() / 日期對象.setFullYear(數字) // 年 日期對象.getMonth() / 日期對象.setMonth(數字) // 月 註意:獲取月份是從0開始的 日期對象.getDate() / 日期對象.setDate(數字) //日 2獲取和設置時分秒 日期對象.getHours() / 日期對象.setHours(數字) // 時 日期對象.getMinutes() / 日期對象.setMinutes(數字) // 分 日期對象.getSeconds() / 日期對象.setMinutes(數字) // 秒 對象. getMilliseconds() / 對象.setMilliseconds(數字) // 毫秒 3獲取星期數 日期對象.getDay(); // 0-6(周日0到周六6) 不能夠設置,原因是周天是由今天的日期決定的。 4獲取1970年至指定時間的總毫秒數 日期對象.getTime() / 日期對象.setTime(數字);