1. 程式人生 > >js基本知識6

js基本知識6

自動跳轉 一定的 常用 意思 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+ “” =22+”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