javascript里面技巧整理

web develop tools secrets: http://jinlong.github.io/blog/2013/08/29/devtoolsecrets/

1、Date 

new Date(y,m,d);

new Date() 为当前时间

y == undefined || m == undefined  || m == undefined  成立,则Invalid Date

Number(y) ==0 && Number(m) == 0 && Number(d) == 0 成立,则返回1900开始那天的前一天日期

new Date(y,0,0)  y年开始那天的前一天日期 Number(m) == 0 && Number(d) == 0 即可

new Date(y,m,0) y年m月的最后一天 ,第三个参数 Number(d) == 0 即可

new Date(y,0,d) y年1月的d号 Number(m) == 0 即可

new Date(y,m,d)  y年(m+1)月 d号

new Date(y,m) y年(m+1)月 1号

2、MVC

M :Model  javascript里的实例相当于M层

V: view javascript里的数据,即属性,相当于面向过程中的变量;

C: control javascript里的逻辑

3、两个量互换  通过第三个变量来;对于有事件类的操作,对相同事件进行判断处理

常规的变量互换操作:

var m = 1,n = 2;

var c ;

c = m ;

m = n ;

n = c;

如下面是一段两个input获取焦点时候相互更改的代码

$(function(){
    var $a = $('#txt1');
    var $b = $('#txt2');
    var cur = null;
    $(document).keyup(function(){
        cur.val((cur == $a ? $b : $a).val());
    });
    $a.focus(function(){
        cur = $b;
    });
    $b.focus(function(){
        cur = $a;
    });
});

 4、关于预解释的那些事

if (!("a" in window)) { var b = 1; } console.log(b);

结果是undefined;因为预解释的原因 

先var b ;  // undefined

然后当只有为真的时候才能赋值 因此会造成结果是undefined 而不是 1

原文地址:https://www.cnblogs.com/w3cjiangtao/p/3300898.html