js中的判断:
  • 所有对象都被认为是 true。
  • 字符串当且仅当为空(""或'')时才被认为是 false。
  • null 和未定义的均被认为是 false。
  • 数字当且仅当为 0 时才是 false。



    js变量作用域
    如果一个全局变量和函数变量名字相冲突,那么考虑以下的情况:
    var x=1;
    function asd()
    {
    alert(x);
       var x = 2;
    alert(x);
    }
    function asda()
    {
       alert(this.x);
    var x = 2;
    alert(x);
    }

    第一个函数由于变量命名相冲突,显示的是 undefined,但是第二个函数已经是显式调用了,所以不会存在问题。


    js函数的重名
    如果要是在脚本中函数之间的名字重复了,那么会根据最后一个重命名的函数来执行。
    就好比如:var x = new function(alert("a"));
                         var x = new function(alert("b"));
    如果你要是把这个场景比作是内存中的堆和栈,就容易理解了。x只是一个引用变量,也就是根引用,具体指向哪个函数,那就是程序的事了。当然最后指向的,也就会被执行。


    js中函数的几种定义方式:
    function x()
    {
       //
    }

    var x = function()
    {
       //
    }

    var x = new function('{return 'asd'}');
    由于JavaScript是解释性语言,当我们定义一个函数的时候,解析引擎生成一个Function对象实例,然后把函数内容保存下来。所以每执行一次函数定义语句,就会生成一个函数。这样,就能解释重名函数为什么只会执行后一个的问题了。


  • 在js函数中动态给元素加上事件:
    <div id="elmtDiv">division element</div>
     
    <script language="javascript">
     
    var div = document.getElementById('elmtDiv');
     div.attachEvent('onclick', EventHandler);

     
    function EventHandler()
     
    {
        this.event.srcElement.style = "width:180px";

     }

     
    </script>