zoukankan      html  css  js  c++  java
  • js一些要点

    js中:

    undefined == null   --> true

    false == null          --> false

    false == undefined --> false

    undefined === null   --> false

    true && 任意对象       --> 返回右边的任意对象

    关于js立即执行函数:

    function (){ /*codde*/ }();
    function aa(){/*codde*/}();

    这样不会执行并且抛出异常

    (function aa(){/*codde*/}());
    (function aa(){/*codde*/})();

    都是正确方式,推荐第一种。

    js中普通对象 和 new函数()对象 以及 普通函数() 区别

    1,普通函数(),表示执行一次函数,返回结果为内部return的结果。没有为undefined

    2,var a = new 函数(),也会执行一次函数,但会将执行完后的函数上下文作为一个对象返回给a,可以通过a.i 调用函数内部this.i声明的内部变量(这就是声明属性的方法)。(单纯的var i只是局部变量,不是属性)。

    3,var a = {}普通对象,通过a.i引用内部i:value方式的值。

    函数内变量作用域:

    函数内 var i=0;是局部变量,能屏蔽全局上的i变量。

    但函数内直接使用 i=0;表示一个全局变量。

    js中闭包的典型用法:

    1 <input type='button' id='b1'/>  
    2 <input type='button' id='b2'/>  
    3 <input type='button' id='b3'/>  

    上面3个button,功能一样——每当被点击,就alert出自己目前为止一共被点击了多少次; 
    那么这个记录点击次数的变量放在哪里?这3个button的功能完全一样,事件函数可以写成一个,但却需要分别设立变量来存储自己被点击了多少次,那么这个时候闭包的作用就来了:把他们的事件监听函数设置为同一个函数的闭包,这样一来3个button的点击次数就独立变化了,且没有全局变量产生; 

    就像下面这样的代码: 

    function genCount(){
        var i = 0;
        return function(){
            i++;
            alert(i);
        }
    }
    var a = genCount();
    var b = genCount();
    a();
    b();
    b();
    b();
    a();

    上述例子,来自该贴中pf_miles的回帖:http://www.iteye.com/topic/569395

    还有一个例子,代码比较长,地址在这里:http://blog.chinaunix.net/uid-13164110-id-3066361.html

    以后还是得多写博客,不然记得好好的东西说忘就忘

  • 相关阅读:
    CC3200作为STA模式连接路由器sl_WlanConnect出现exception occured at:0xa72fcf6
    HI2115软件开发板V150版本AT+NSOST指令
    利尔达NB-IOT模块对接移动onenet平台步骤
    ip4addr_ntoa和不可重入函数
    VHDL入门学习-程序组成
    nexys4-DDR开发板温度传感器ADT7420U
    2016-2017股票亏损反省
    一起来学linux:例行性任务之at和crontab
    linux c编程:进程间通信
    一起来学linux:sudo
  • 原文地址:https://www.cnblogs.com/lordrobert/p/4020774.html
Copyright © 2011-2022 走看看