js基本知識6
阿新 • • 發佈:2018-01-03
自動跳轉 一定的 常用 意思 eth 一次函數 得到 時間 推薦
1.2 復習 1. 節點 網頁是有很多的節點組成的 。 元素節點 指的是 : 標簽 li span 文本節點 屬性節點 父子兄弟 父 parentNode nextSibling 孩子 childNodes nodeType == 1 來判斷 是否是 元素節點 <ul> <li> 最喜歡用的 children 只得到 元素節點 1.獲取節點屬性 getAttribute(“title”) 2.設置節點屬性 setAttribute (“class”,”one”) 3.刪除節點屬性 removeAttribute(“title”); 4. 日期函數 Date(); 聲明: var date = new Date(); 使用: 得到現在的年分 date.getFullYear(); 月份: date.getMonth(); 日子; date.getDate(); 星期: date.getDay(); 5. 定時器 定時器 不需要人工操作 按照一定的時間進行某種動作。 setInterval(“函數”,間隔時間 ) 每隔 n秒去執行一次函數 1.3 時鐘案例 分兩步進行的。 第一步: 要得到現在的 時 分 秒 但是這裏面有一個小玄機 。 比如現在是 9點整 時針指向 9 是沒錯的 但是如果現在是 9點半 時針應該指向的是 9到10 之間 才對 所以,我們不但要得到現在的小時 ,還要得到 已經過去了多少分 ms = date.getMilliseconds(); // 現在的毫秒數 s = date.getSeconds() + ms / 1000; // 得到秒 1.3 s m = date.getMinutes() + s / 60; // 得到的是分數 45.6分鐘 h = date.getHours() % 12 + m / 60 ; 旋轉角度原理 秒針 一秒 走多少度呢 ? 一圈 360 ° 一共有 60 秒 每秒 6 ° 分針 一圈 360 一圈走 60次 每次 6° 每分鐘 6° 時針 一圈 360 一共 12 個 表盤沒有24小時 每個小時 走 30° 完整代碼: 1<script> 2 var hour = document.getElementById("hour"); 3 var minute = document.getElementById("minute"); 4 var second = document.getElementById("second"); 5 // 開始定時器 6 var s = 0,m = 0, h = 0, ms = 0; 7 setInterval(function() { 8 // 內容就可以了 9 var date = new Date();// 得到最新的時間 10 ms = date.getMilliseconds(); // 現在的毫秒數 11 s = date.getSeconds() + ms / 1000; // 得到秒 1.3 s 12 m = date.getMinutes() + s / 60; // 得到的是分數 45.6分鐘 13 h = date.getHours() % 12 + m / 60 ; 14 // console.log(h); 15 // 旋轉角度 16 // 一圈 360 ° 一共有 60 秒 每秒 6 ° 現在是 s秒17 second.style.WebkitTransform = "rotate("+ s*6 +"deg)"; 18 // 變化 旋轉 deg 度 19 minute.style.WebkitTransform = "rotate("+ m*6 +"deg)"; 20 hour.style.WebkitTransform = "rotate("+ h*30 +"deg)"; 21 second.style.MozTransform = "rotate("+ s*6 +"deg)"; 22 // 變化 旋轉 deg 度 23 minute.style.MozTransform = "rotate("+ m*6 +"deg)"; 24 hour.style.MozTransform = "rotate("+ h*30 +"deg)"; 25 26 },30); 27 </script> 1.4 按鈕不可用 button 不可以用 disabled 不可用的意思 btn.disabled = “disabled” || btn.disabled = true; 灰色的 註意: 1. 因為 button是個雙標簽 所以要更改他的值, 使用 innerHTML 的,不是value。 2. 關閉定時器 clearInterval(定時器名稱); 定時器不再進行 1.5 this this 指向的是 事件的調用者 ,或者是函數的使用者。 var btn.onclick = function() { this} 一般情況下,我們喜歡 var that = this; var that = this; // 把 btn 對象 給 that var _this = this 1.6 定時器之 setTimeout() 時間去哪兒了 類似於定時炸彈 。。 setTimeout(“函數”, 時間 ) setInterval(fn,5000); 每隔 5秒鐘,就去執行函數fn一次 setTimeout(fn,5000); 5秒鐘之後,去執行 fn 函數, 只執行一次 1.6.1 深層次的看待定時器區別 setInterval是排隊執行的 假如 間隔時間是1秒, 而執行的程序的時間是2秒 上次還沒執行完的代碼會排隊, 上一次執行完下一次的就立即執行, 這樣實際執行的間隔時間為2秒 setTimeout延遲時間為1秒執行, 要執行的代碼需要2秒來執行,那這段代碼上一次與下一次的執行時間為3秒. 1.7 5秒鐘自動跳轉頁面 JS 頁面跳轉: window.location.href = ”http://www.itcast.cn” ; BOM 函數自己調用自己的過程 我們稱之為 : 遞歸調用 自殘 但是這樣用,一定要加一個退出 if 的條件,不然成為死循環了。 目的就是為了,模擬使用 settimeout 來實現setinterval 的效果。 <script> var demo = document.getElementById("demo"); var count = 5; var speed = 1000; setTimeout(goIndexPage,speed); // 1秒鐘之後去執行 goIndexPage這個函數 function goIndexPage() { count--; demo.innerHTML = "<a href=‘http://www.baidu.com‘>本頁面將在第"+count+"秒鐘之後跳轉頁面</a>"; if(count <= 0) { // 如果 count 小於 0 就到了時間了 我們應該跳轉頁面 window.location.href = "http://www.baidu.com"; } else { setTimeout(goIndexPage,speed); // 遞歸調用 自己調用自己 } } 辭海 10萬字 2500 漢字 1000次常用漢字 1.7.1 arguments 對象 function fn(a,b,c) { console.log(a+b+c); alert(arguments.length;)} fn(1,3,4,6); arguments.length; 返回的是 實參的個數。 但是這個對象有講究,他只在正在使用的函數內使用。 arguments.callee; 返回的是正在執行的函數。 也是在函數體內使用。 在使用函數遞歸調用時推薦使用arguments.callee代替函數名本身。 function fn() { console.log(arguments.callee); } 這個callee 就是 : function fn() { console.log(arguments.callee); } 1.8 運算符 一元操作符 ++, -- + - +5 -6 邏操作符 ! && || 基本運算符 +, -, *, /, % 關系操作符 >, <, >=, <=, ===, ==, !=, !== = 賦值 == 判斷 === 全等 條件操作符 (三元運算符) ? : 賦值運算符 +=, -=, *=, /=, %= a+=5 a= a + 5 逗號運算符 , var a=0,b=0; 1.8.1 運算符順序 1 () 2 !、-、++、-- (-10) 負號 正號 3 *、/、% 4 +、- 10-5 5 <、<=、<、>= 6 ==、!=、===、!==、 7 && 8 || 9?: 10 =、+=、-=、*=、/=、%= 賦值 1+2*3 1.8.2 幾個面試題 1. a&&b 結果是什麽? 如果a 為假 ,則返回 a 如果a 為真 ,則返回 b var aa = 0&&1; alert(aa) // 0 var bb = 1&&0; alert(bb); //0 var cc = 1&&10; alert(cc); // 10 2. a||b 如果 a 為假 則返回b 如果 a 為真 則返回a console.log(0||1); 1 console.log(1||0); 1 console.log(1||5); 1 console.log(5||1); 5 var a = 1 && 2 && 3; console.log(a); 3 var b = 0 && 1 && 2; console.log(b); 0 var c = 1 && 0 && 2; console.log(c); 0 %= a+=3 a = a % 3; 1.9 字符串對象常用方法 我們工作中經常進行字符串操作。 1.9.1 轉換為字符串 1. + “” 2+ “” = “2” 2+”ab” = “2ab” 2. String() 轉換為字符串 3. toString(基數) ; 基數就是進制 var txt = 10; txt.toString(2) 二進制 1010 1.9.2 獲取字符位置方法 charAt,獲取相應位置字符(參數: 字符位置) charCodeAt獲取相應位置字符unicode編碼(參數: 字符位置) var txt = “abcedf”; 比如, txt.charAt(4); 索引號一定是從0開始 返回的結果是 d 我們根據我們輸入的 位數 返回相應的 字符 。 unicode編碼 是我們字符的字符的唯一表示 。
js基本知識6