js定時器


復習

  • 函數創建

     function 函數名(){ var total = 10+20; } 
  • 調用函數

     函數名(); 函數名(); 
  • 參數

     function sum(n,m){//形參 var total = n+m; } sum(100,200); sum(100); //形參未賦值,默認 undefined var a; console.log(a); 
  • 返回值

     function sum(n,m){//形參 var total = n+m; // return total; console.log(111); } var t = sum(100,200); console.log(t); 
    • 返回值默認值也是undfined
  • arguments

     function sum(){//形參 //arguments [10,20] } sum(10,20); 
  • 函數不同形式

     命名函數: function sum(){ } 事件處理函數: ele.onclick = function(){ sum(10,20) } ele.onclick = sum; 對象的方法: var obj = {name:'ujiuye',age:18,eat:function(){ },aa:{x:,y:,}} 
  • this關鍵字

     1- 普通函數,this執行window 2- 事件處理函數里面this指向觸發事件的元素 3- 對象方法里面的this,指向調用方法的對象 obj.eat() 
  • 作用域: 全局作用域 \ 私有作用域(函數作用域)

  • 作用域鏈: 函數中變量查找機制,先從當前作用域查找,如果沒有,依次向上級作用域查找,如果找到全局沒有,報錯

  • 兩種變量:全局變量\局部變量(在函數里面var 的和函數的形參)

  • 預解析(變量提升):

    • 帶var 先聲明,不賦值(默認值undefined)

       console.log(a);//undefined var a = 10; console.log(a);//10 
    • 帶function 聲明的同時賦值

       sum(); function sum(){} fn();//報錯 var fn = function(){ } fn(); 
  • 樣式操作

     設置: ele.style.attr = val; 獲取: ele.style.width 標准: getComputedStyle(ele)[attr] ie: ele.currentStyle[attr] function getCss(ele,attr){ return ele.currentStyle == "unfdefined" ? getComputedStyle(ele)[attr] : ele.currentStyle[attr]; } getCss(oBox,'width'); 

(一) 定時器

1- setTimeout : 等待一段時間執行function,只執行一次

 setTimeout(function(){},1000); 

2- setInterval: 每隔一段時間執行function,重復執行

 setInterval(function(){},1000); 

3- 清除定時器

  • clearTimeout()

     var i = 0; var timer = setInterval(function(){ //console.log('***'+timer); i++; if(i == 5){ //clearInterval(1); //清除定時器傳入參數是代表定時器的那個數字 clearInterval(timer); //一般設置定時器時用變量接收一下,清除時傳入變量名 } console.log(i); },1000); 
  • clearInterval()

    • 這兩個方法技術上都可以清除兩種定時器,但是為了區分,應該對應起來用

4- 定時器異步

  • 定時器時js中的一種異步機制,永遠會在同步代碼之后運行

     setTimeout(function(){ console.log(111); },0) console.log(222); //先輸出222,再輸出111


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM