Date對象,封閉空間,函數傳參和封裝,擷取非行間樣式,字串操作

來源:互聯網
上載者:User

標籤:

一、Date對象1. 擷取oDate.getFullYear() 擷取年份oDate.getMonth()+1  擷取月份( 0-11)----->1-12oDate.getDate()  擷取日 1-31oDate.getHours() 擷取小時   oDate.getMinutes() 擷取分    oDate.getSeconds() 擷取秒 oDate.getMilliseconds();   //毫秒oDate.getDay() 擷取星期幾 0-6     0:星期天例:數位時鐘    (1)擷取系統時間----Date 對象----getHours、getMinutes、getSeconds    (2)  顯示系統時間----字串串連、空位補零    (3) 字串[下標]擷取一個字元,不相容IE6/7,所以,設定圖片路徑用charAt(i)方法----字串.charAt(下標)相容2. 時間戳記oDate.getTime()----從1970年1月1日到現在的毫秒數3. 設定    (1)setFullYear(年,月,日 ) 年:必填   月日:可選-----擷取完整的年份            setYear(); 擷取年    (2)setMonth(月,日) 月:必填    (3)setDate(日)                oDate.setDate(31);  //如果本月只有30天,會直接到下月第一天                oDate.setDate(0);  上個月最後一天
                alert(oDate.getDate());
本月最後一天星期幾oDate.setMonth(oDate.getMonth()+1); //設定下個月1號// 因為本月是8月,getMonth()擷取到的是7,所以要擷取到8月才是下個月oDate.setDate(0);alert(oDate.getDay());
    (4)setHours(小時,分,秒,毫秒) 後面三個可選例子:本月第一天是周幾,本月共有多少天
var oDate=new Date();oDate.setDate(1);var week=oDate.getDay();alert(‘本月第一天是周‘+week);oDate.setMonth(oDate.getMonth()+1);oDate.setDate(0);var day=oDate.getDate();alert(‘本月的總天數是:‘+day);
 例:倒計時window.onload=function(){    var oSpan=document.getElementsByTagName(‘span‘)[0];    var oDateTarget=new Date();    oDateTarget.setFullYear(2016,11,1);   //注意此處月份應設定比目標小1    oDateTarget.setHours(0,0,0,0);    tick(); //先執行一下,防止開始為空白    setInterval(tick,1000);    function tick(){        var oDate=new Date();      var time=oDateTarget.getTime()-oDate.getTime();        var s=parseInt(time/1000);        var D=parseInt(s/86400);        var H=parseInt(s%86400/3600);        var M=parseInt(s%86400%3600/60);   var S=parseInt(s%86400%3600%60);        oSpan.innerHTML="距離2016年12月1日"+D+"天"+H+"時"+M+"分"+S+"秒";    }}date對象的另外的用法-----設定時間可以進位、退位二、封閉空間1. 定時器中的括弧問題:setInterval(show,1000);    //此處的show不能加括弧,如果加則變成立刻執行,執行完之後,返回undefinedfunction show(){    alert(1);}js中文法規範:大括弧不能直接跟小括弧,如下:function show(){    alert(1);}()但是,如果這樣即可:(function (){    alert(1);})()    /相當於立刻執行這個函數。如果後面再加show(); 則會報錯函數每調用一次,就複製一份,就執行一次2. 封閉空間:多人配合時,避免函數重名問題    (fn1)();  //立即執行的匿名函數例一:兩個局部變數a在兩個不同的範圍下互不影響:function fn1(){    var a=44;    alert(a);}fuction fn2(){    var a=55;    alert(a);}例二:(function(){    var a=55;    alert(a);})();   //立即執行的匿名函數   封閉空間    這個函數只能用一次利用封閉空間寫選項卡var oBox=document.getElementById(‘box‘);var aBtn=oBox.getElementsByTagName(‘input‘);var aDiv=oBox.getElementsByTagName(‘div‘);for(var i=0;i<aBtn.length;i++){    (function(index){        aBtn[index].onclick=function() {             for(var i=0;i<aDiv.length;i++) {                  aBtn[i].className=‘‘;                 aDiv[i].className=‘‘;            };            this.className=‘active‘;            aDiv[index].className=‘active‘;       };     })(i);}//function fn(index){ };    fn(i);等同於(function(index){ })(i);求和函數:(1)參數數量不固定的時候可用(2)參數數組不是一個真正的數組,所以它不能用數組的方法window.onload=function(){    function fn(){        var num=0;        for(var i=0;i<arguments.length;i++){            num+=arguments[i];        }    }    fn(222,33,456);}三、函數傳參和封裝 1.參數的基本知識:    (1)參數可以省 可以不傳    (2)在調用函數的括弧裡傳 在定義函數的括弧裡收    (3)參數名可以自訂 不用帶引號    (4)可以傳多個參數 中間用逗號分隔     (5)可以傳多類型2. 可變參(不定參):arguments        參數的個數可變,參數數組。參數數組,  有下標,有length,但並不是真正的數組,所以它不能用數組的方法。3. 例1:求和-----求所有參數的和(用arguments)例子:   var result=0;        function sum(){                for(var i=0; i<arguments.length; i++){                    result+=arguments[i];                }                return result;        }        alert(sum(12,6,8));4. 例2:CSS函數         (1)判斷arguments.length         (2)給參數取名,增強可讀性 四、擷取非行間樣式(不能用來設定):    (1)obj.currentStyle[attr]-----IE瀏覽器支援     (2)getComputedStyle(obj,false)[attr]------Chrome、fire fox、IE9、IE10            ···false處,可以隨便放任何值,如果不放則不相容firefox低版本。如果不寫第二個參數,不相容firefox低版本;放false顯得專業而已
        只能取單一樣式,不能取複合樣式        擷取樣式:css(oDiv,‘width‘)        設定樣式:css(oDiv,‘width‘,‘200px‘)
例一:擷取樣式封裝window.onload=function(){    var oBox=document.getElementById(‘box‘);    oBox.onclick=function(){        var w=parseInt(getStyle(this,‘width‘));        this.style.width=w+100+‘px‘;        var oSpanH=getStyle(document.getElementById(‘s1‘),‘height‘);    }}function getStyle(obj,attr){    return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj,false)[attr];   // return 必須寫在行首}例二:函數封裝和隨機數配合使用window.onload=function(){    var oBox=document.getElementById(‘box‘);    oBox.onclick=function(){        var w=parseInt(getStyle(oBox,‘width‘));        var r=rnd(10,100);        w+=r;        oBox.style.width=w+‘px‘;    }}function rnd(n,m){    return parseInt(Math.random()*(m-n)+n);}五、字串操作1、截取字串   (1) str.charAt(0)通過下標擷取字串第幾位   相容                str.substring(1)只傳一個參數。從開始到最後   (2) str.substring(1,3)截取字串                兩參數:第一個是開始,第二個是結束位置  但不包括結束位置
     str.substring(n);  截取字串,從參數n開始到最後
2.  indexOf();indexOf()   尋找字串,返回下標,無論是輸入兩個還是輸入片語,都只找第一個字元的下標;如果沒有,則返回-1;   應用:瀏覽器專屬的資訊 window.navigator.userAgent;
判斷瀏覽器資訊:var win=window.navigator.userAgent.toLowerCase();if(win.indexOf(‘Chrome‘)!=-1){     alert(‘chrome‘);} else if(win.indexOf(‘Firefox‘)!=-1){       alert(‘f‘);} else if(win.indexOf(‘MSIE‘)){       alert(‘ie‘);} else{   alert(‘其它‘);}
3. lastIndexOf();從後面開始找,但同樣返回下標 。 跟indexOf相反,是從後面開始找的,找到了返回從左至右順序的下標,找不到返回-1 應用:找一個字串的副檔名var string=‘a.b.cd.efg.c.d.fffd.png‘;alert(string.substring(str.lastIndexOf(‘.‘)+1));4. 字串拆分成數組---split( )5. 把英文字母轉成大寫/小寫---toUpperCase()/toLowerCase();alert(win.toUpperCase());alert(win.toLowerCase());var win=window.navigator.userAgent.toLowerCase();5. 字串排序英文:按照字典序              alert(‘f‘<‘g‘); ---->true字串數字:按照字典序   alert(‘624‘>‘53‘)-->true   先比較左側第一位中文:亂

Date對象,封閉空間,函數傳參和封裝,擷取非行間樣式,字串操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.