js基本知識5
阿新 • • 發佈:2018-01-03
tin 1.7 interval targe fun 大小寫轉換 name 1.4 length
1.1 復習 1. 按鈕不可用 disabled = “disabled” || true 2. setTimeout 只執行一次 setInterval 執行很多次 3. 遞歸調用 : 函數自己調用自己 函數遞歸調用 不提倡用函數名 而喜歡用的是 arguments.callee 返回的是 正在執行的函數 本身 4. 邏輯運算符 與 && 或 || 非 ! ! > && > || 5. 2&&0 0 1&&8 0&&30 1||0 6. 轉換為 字符型 var num = 12345; num+ “” String(num); num.toString(); 10進制 num.toString(2) 二進制 7. 根據字符位置返回字符 charAt(索引號) var txt = “abcde”; txt.charAt(3); d charCodeAt(3) unicode 編碼 97 100 1.2 根據字符返回位置 跟 charAt() 相反的 根據 字符 返回的是 位置 1.2.1 返回前面起第一個字符的位置 indexOf(“字符”); 它是從 前面開始數(從左邊開始數), 而且只找第一個, 然後返回改字符的位置, 索引號都是從0開始的。 返回的是個數值。 var txt = “abcdef”; alert(txt.indexOf(“d”)) 結果就是 3 如果找不到該字符 返回 -1 1.2.2 返回後面起第一個字符的位置 lastIndexOf(參數:索引字符串) 從後面開始數 同上 var txt = “abcdef” ; txt.lastIndexOf(“d”); 3 返回的值,還是從 左邊開始 數的 索引號 。 1.3 網址編碼 我們知道一個網址 自己的網址, 不同頁面也有自己id網址, 我們經常會做一些, 把網址送入到後臺。 但是後臺再處理的 不認識比如 換行啊 等特殊符號的 ? var url = “http://www.itast.cn?name=cz” 所以我們要實現編碼,然後再傳到後臺。 encodeURIComponent() 函數可把字符串作為 URI 組件進行編碼 decodeURIComponent() 函數可把字符串作為 URI 組件進行解碼 var url = "http://www.itcast.cn?name=andy"; console.log(encodeURIComponent(url)); // 編碼 var afterUrl = encodeURIComponent(url); console.log(decodeURIComponent(afterUrl)); // 解碼 結果: 1.4 操作字符串 合並字符串 取字符串 1.4.1 concat() 連接字符串 var txt1 = “abc”; var txt2 = ”123”; console.log(txt1.concat(txt2)); “abc123”; 1.4.2 slice() slice(“取字符串的起始位置”, [結束位置]) ; [] 可選的 起始位置一定要有 結束位置可以省略 var txt = “abcedf”; txt.slice(3) ; 從 txt 裏面字符的 第 3(索引號)個開始取 結束位置省略, 一直取到最後一個。 總結 slice(3) 從第3個開始取,一直取到最後 slice(3,6) 3 從 第3個開始 取 6 取到第6索引號的位置,還是從左邊的第0個開始數。 但是不包 6 。 起始位置可以是負數 , 如果是負數,則是從 右邊往左邊開始取。 var txt =”asdf”; txt.slice(-1) 結果是 f 1.4.3 substr() substr(起始位置,[取的個數]) 同上。 不寫取的個數, 默認從起始位置一直取到最後 。 取的個數: 是指從起始位置開始,往後面數幾個。 var txt = “abcdefghijk”; txt.substr(3,4); 從第3個 (d) 開始 數 4個 defg substr(-1) 少用 ie678 報錯 。 盡量少用 兼容性的寫法 : onBtnClick("btn7",div1.substr(div1.length-1,1)); // 兼容的寫法 substring 同slice 一樣的 但是有一點不同 substring(3,6) substring 始終會把 小的值作為 起始位置 大的值作為結束位置 例如: substring(6,3) 實際中 自動變成 substring(3,6); 1.5 保留小數位數 122340.12345 保留兩位有效小數 122340.12 substr(0, .+3) 1.console.log(str.substr(0,str.indexOf(".")+3)); 通過 indexOf 返回小數點的位置 截取字符串 2 console.log(parseInt(PI*100) /100); 先乘以100 取整 然後 除以100 3 console.log(PI.toFixed(2)); pi.toFixed(2) 保留 2位 小數 1.6 大小寫轉換 asdf = ASDF ASDF -- asdf 1 toUpperCase,轉換為大寫(參數: 無) 2 toLowerCase,轉換為小寫(參數:無) asdf.toUpperCase() 結果就是: ASDF $("txt").value.toUpperCase(); 把txt 的值 轉換為大寫 1.7 無縫滾動 原理: 首先先復制 兩張圖片 (第一張和第二張) 放到最後面 (本質上是第 5.6張) ul 是盒子移動的, 如果ul 的left 值 大於等於 4張圖片的寬度,就應該快速復原為0 。 完整代碼: 1<script> 2 var scroll = document.getElementById("scroll"); 3 var ul = scroll.children[0]; 4 var num = 0; //控制左側值 left 5 var timer = null; // 定時器 6 timer = setInterval(autoPlay,20); 7 function autoPlay() { 8 num--; 9 //console.log(num); 10 num<=-1200 ? num = 0 : num; 11 ul.style.left = num + "px"; 12 } 13 scroll.onmouseover = function() { // 鼠標經過大盒子 停止定時器 14 clearInterval(timer); 15 } 16 scroll.onmouseout = function() { 17 timer = setInterval(autoPlay,20); // 開啟定時器 18 } 19 </script> 1.8 緩動動畫 勻速動畫,看起來,效果太簡單。 等差序列 : 2 4 6 8 10 緩動動畫公式: 一個盒子初始值 是 0 要走到 400 px 的位置 假如說,初始值 leader 0 target 400 box.style.left = xxxx + “px” leader = leader + (target - leader ) /10 ; 1 btn.onclick = function() { 2 setInterval(function(){ 3 leader = leader + (target - leader )/10; 4 box.style.left = leader + "px"; 5 },30) 6 }
js基本知識5