所有基礎課程鏈接: 1.JavaScript基礎視頻教程總結(001-010章) 2.JavaScript基礎視頻教程總結(011-020章) 3. JavaScript基礎視頻教程總結(021-030章) 4. JavaScript基礎視頻教程總結(031-040章) 5. JavaScript基 ...
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>081-090章總結</title> </head> <body> <pre> 081. Date對象 在JS中使用Date對象來表示一個時間 </pre> <script type="text/javascript"> console.log("--第081--"); //如果直接使用構造函數創建一個Date對象,則會封裝為當前代碼執行的時間 var d01 = new Date(); console.log(d01) //創建一個指定的時間對象 //需要在構造函數中傳遞一個表示時間的字元串作為參數 //日期的格式 月份/日/年 時:分:秒 var d02 = new Date("2/18/2011 11:10:30") console.log(d02) // getDate() - 獲取當前日期對象是幾日 var curDate = d02.getDate() console.log(curDate) // getDay() - 獲取當前日期對象時周幾 - 會返回一個0-6的值 0 表示周日 1表示周一 var curDay = d01.getDay() console.log("今天是周"+curDay) //getMonth() 獲取當前時間對象的月份 -會返回一個0-11的值 0 表示1月 11 表示12月 var curMonth = d01.getMonth() console.log("本月是"+(curMonth+1)+"月") // getFullYear() - 獲取當前日期對象的年份 var curYear = d01.getFullYear() console.log("今年是"+curYear+"年") /* * getTime() * - 獲取當前日期對象的時間戳 * - 時間戳,指的是從格林威治標準時間的1970年1月1日,0時0分0秒 * 到當前日期所花費的毫秒數(1秒 = 1000毫秒) * - 電腦底層在保存時間時使用都是時間戳 */ var getTime = d01.getTime() console.log(getTime) console.log( getTime/1000/60/60/24/365 ) //利用時間戳來測試代碼的執行的性能 //獲取當前的時間戳 var start = Date.now() for(var i=0 ; i<30 ; i++){ console.log(i) } var end = Date.now() console.log("代碼執行了"+(end-start)+"毫秒"); </script> <pre> 082. Math - Math和其他的對象不同,它不是一個構造函數, 它屬於一個工具類不用創建對象,它裡邊封裝了數學運算相關的屬性和方法 Math 對象屬性 1. Math.PI 表示的圓周率 Math 對象方法 1. Math.abs(x) 返回數的絕對值 2. Math.ceil(x) 對數進行上舍入 3. Math.floor(x) 對數進行下舍入 4. Math.round(x) 可以對一個數進行四捨五入取整 5. Math.max(x,y) 返回 x 和 y 中的最高值 6. Math.min(x,y) 返回 x 和 y 中的最低值 7. Math.pow(x,y) 返回 x 的 y 次冪 8. Math.sqrt(x) 返回數的平方根 9. Math.random() 返回 0 ~ 1 之間的隨機數(小數) </pre> <div id="randomColor">隨機顏色</div> <script type="text/javascript"> console.log("--第082--"); var pi = Math.PI console.log(pi) var zNum1 = 5.1 var zNum2 = 5.9 var fNum1 = -5.1 var fNum2 = -5.9 var abs1 = Math.abs(zNum1) var abs2 = Math.abs(fNum1) console.log(abs1) console.log(abs2) console.log("-------") var ceil1 = Math.ceil(zNum1) var ceil2 = Math.ceil(zNum2) var ceil3 = Math.ceil(fNum1) var ceil4 = Math.ceil(fNum2) console.log(ceil1) // 6 console.log(ceil2) // 6 console.log(ceil3) // -5 console.log(ceil4) // -5 var floor1 = Math.floor(zNum1) var floor2 = Math.floor(zNum2) var floor3 = Math.floor(fNum1) var floor4 = Math.floor(fNum2) console.log(floor1) // 5 console.log(floor2) // 5 console.log(floor3) // -6 console.log(floor4) // -6 var round1 = Math.round(zNum1) var round2 = Math.round(zNum2) var round3 = Math.round(fNum1) var round4 = Math.round(fNum2) console.log(round1) // 5 console.log(round2) // 6 console.log(round3) // -5 console.log(round4) // -6 var max1 = Math.max(1,2,3,10,18) var max2 = Math.max(-1,-2.1,-2.9,-3,-10,-18) console.log(max1) // 18 console.log(max2) // -1 var min1 = Math.min(1,2,3,10,18) var min2 = Math.min(-1,-2.1,-2.9,-3,-10,-18) console.log(min1) // 1 console.log(min2) // -18 var pow = Math.pow(2,4) console.log(pow) // 16 var sqrt = Math.sqrt(2) console.log(sqrt) // 1.414 var random1 = Math.random() console.log(random1) // 產生隨機整數,包含下限值,但不包括上限值 function randomNoUpp(lower,upper){ return Math.floor( Math.random()*(upper-lower) + lower ) } // 產生隨機整數,包含下限值,包括上限值 function random(lower,upper){ return Math.floor( Math.random()*(upper-lower+1) + lower ) } var random2 = randomNoUpp(1,10) var random3 = random(1,10) console.log(random2) console.log(random3) // 擴展隨機顏色值 function randomColor(){ var r =random(0,255),g =random(0,255),b =random(0,255) var result = "rgb("+r+","+g+","+b+"0" return result } var random_Color = document.getElementById("randomColor") random_Color.style.color = randomColor() </script> <pre> 083. 包裝類 基本類型:Undefined, Null, Boolean, Number, String 引用類型:Object, Array, Date, RegExp (其實就是對象) JS中只有對象才有屬性和方法,原始值沒有屬性和方法 那麼我們平常求字元串的長度 用length屬性不是沒有問題嗎? 在JS中為我們提供了三個包裝類,通過這三個包裝類可以將基本數據類型的數據轉換為對象 String() - 可以將基本數據類型字元串轉換為String對象 Number() - 可以將基本數據類型的數字轉換為Number對象 Boolean() - 可以將基本數據類型的布爾值轉換為Boolean對象 但是註意:我們在實際應用中不會使用基本數據類型的對象,如果使用基本數據類型的對象,在做一些比較時可能會帶來一些不可預期的結果 引用類型與基本包裝類型的區別: 它們的對象生命周期不同: 引用類型:使用new創建引用類型的實例,在執行數據流離開當前作用域時會一直存儲在記憶體中。 基本包裝類型:自動創建基本包裝類型的對象,只執行一行代碼的瞬間之後就會立即銷毀。 </pre> <script type="text/javascript"> console.log("--第083--"); var num = new Number(3); var num2 = new Number(3); var str = new String("hello"); var str2 = new String("hello"); var bool = new Boolean(true); var bool2 = true; console.log(typeof num) //object console.log(num == num2) //false 比較的是對象的地址 var b = new Boolean(false); if(b){ console.log("我運行了~~~"); // b為對象轉換為Boolean,都為true } /* * 方法和屬性之能添加給對象,不能添加給基本數據類型 * 當我們對一些基本數據類型的值去調用屬性和方法時, * 瀏覽器會臨時使用包裝類將其轉換為對象,然後在調用對象的屬性和方法 * 調用完以後,在將其轉換為基本數據類型 */ var s = 123 s = s.toString() console.log(s) // "123" console.log(typeof s) // string var s2 =456 s2.hello="hello" console.log(s2) // 456 console.log(s2.hello) //undefined var str="hello word"; // 1.創建出一個和基本類型值相同的對象 //var str = new String("hello world"); // 2.這個對象就可以調用包裝對象下的方法,並且返回結給long變數 //var long = str.length; // 3.之後這個臨時創建的對象就被銷毀了 //str = null; //因為str沒有length屬性 所以執行這步之前後臺會自動執行以上三步操作 var long = str.length; console.log(long); // 10 console.log(str.hello) //undefined </script> <pre> 084. 字元串的方法 在底層字元串是以字元數組的形式保存的,["a","b""c"] length屬性-可以用來獲取字元串的長度 charAt()-可以返回字元串中指定位置的字元,根據索引獲取指定的字元,從0開始 charCodeAt()-獲取指定位置字元的字元編碼(Unicode編碼) String.formCharCode()-可以根據字元編碼去獲取字元 concat()-可以用來連接兩個或多個字元串 indexof() - 該方法可以檢索一個字元串中是否含有指定內容 - 如果字元串中含有該內容,則會返回其第一次出現的索引 - 如果沒有找到指定的內容,則返回-1 - 可以指定一個第二個參數,指定開始查找的位置 lastIndexOf() - 該方法的用法和indexOf()一樣, - 不同的是indexOf是從前往後找, - 而lastIndexOf是從後往前找 - 也可以指定開始查找的位置 slice(x,y) - 可以從字元串中截取指定的內容 - 不會影響原字元串,而是將截取到內容返回 - 參數: 第一個,開始位置的索引(包括開始位置) 第二個,結束位置的索引(不包括結束位置) - 如果省略第二個參數,則會截取到後邊所有的 - 也可以傳遞一個負數作為參數,負數的話將會從後邊計算 substring(x,y)- 可以用來截取一個字元串,可以slice()類似 - 參數: - 第一個:開始截取位置的索引(包括開始位置) - 第二個:結束位置的索引(不包括結束位置) - 不同的是這個方法不能接受負值作為參數, 如果傳遞了一個負值,則預設使用0 - 而且他還自動調整參數的位置,如果第二個參數小於第一個,則自動交換 substr(x,y)-用來截取字元串 - 參數: 1.截取開始位置的索引 2.截取的長度 split()-可以將一個字元串拆分為一個數組 - 參數: - 需要一個字元串作為參數,將會根據該字元串去拆分數組 如果傳遞一個空串作為參數,則會將每個字元都拆分為數組中的一個元素 toUpperCase()-將一個字元串轉換為大寫並返回 toLowerCase()-將一個字元串轉換為小寫並返回 </pre> <script type="text/javascript"> console.log("--第084--"); var baseStr = "aBcdefG" var baseStr2 = "aabbcdcc" var strLength = baseStr.length console.log("strLength=" + strLength) //7 var charAt = baseStr.charAt(3) console.log("charAt=" + charAt) // d var charCodeAt = baseStr.charCodeAt(0) console.log("charCodeAt=" + charCodeAt) //97 var formCharCode = String.fromCharCode(97) console.log("formCharCode=" + formCharCode) //a var concat = baseStr.concat("hijklmn","opqist") console.log("concat=" + concat) //aBcdefGhijklmnopqist var indexOf1 = baseStr2.indexOf("c") var indexOf2 = baseStr2.indexOf("e") console.log("indexOf1=" + indexOf1) // 4 console.log("indexOf2=" + indexOf2) // -1 var lastIndexOf1 = baseStr2.lastIndexOf("c",5) var lastIndexOf2 = baseStr2.lastIndexOf("e") console.log("lastIndexOf1=" + lastIndexOf1) // 4 console.log("lastIndexOf2=" + lastIndexOf2) // -1 var slice = baseStr.slice(1,3) var slice2 = baseStr.slice(1,-1) console.log("slice=" + slice) // Bc console.log("slice2=" + slice2) // Bcdef var substring = baseStr.substring(1,3) var substring2 = baseStr.substring(3,-3) console.log("substring=" + substring) // Bc console.log("substring2="