您的位置:首页 > Web前端 > JavaScript

js中需注意的编程细节

2016-05-10 08:49 267 查看

一.    JavaScript区分大小写
        在JavaScript中对象,变量、函数都是区分大小写的,例如:Object表示对象,Aarry表示数组,而写成object,arrary的时候JavaScript就不会识别
                  如:function myfunction(){} 和 function myFunction(){}不同
二.    单引号和双引号
        JavaScript中单引号和双引号没有特殊的区别,都可以用来创建字符串,但是一般情况下JavaScript使用单引号,而且单引号里面可以有双引号,双引号里面也可以有单引号;
三.     Null是个对象
        JavaScript众多类型中有个Null类型,它有个唯一的值null, 即它的字面量,定义为完全没有任何意义的值。其表现得像个对象,如下检测代码:


         alert(typeof null); //弹出 'object'

      尽管typeof值显示是"object",但null并不认为是一个对象实例。要知道,JavaScript中的值都是对象实例,每个数值都是Number对象,每个对象都是Object对象。因为null是没有值的,所以,很明显,null不是任何东西的实例。


            alert(null instanceof Object);   //为 false
四、NaN是个数值
             NaN本意是表示某个值不是数值,但是其本身却又是数值,且不等于其自身
                        alert(typeof NaN);         //弹出 'Number'
                        alert(NaN === NaN);  //为 false
 实际上NaN不等于任何东西。要确认某玩意是不是NaN只能使用isNaN.
五、正则表达式:不只是match和replace
            不少javascript工程师都是只通过match和replace和正则表达式打交道。但JavaScript所定义的正则表达式相关方法远不止这两个,其一是test(),工作方式类似match(),但是返回值却不一样,test()返回的是布尔型,用来验证是否匹配,执行速度高于match()。

            alert(/\w{3,}/.test('Hello')); //弹出 'true'


     上面行代码用来验证字符串是否有三个以上普通字符,显然"hello"是符合要求的,所以弹出true。
六、函数可以执行其本身


           (function() { alert('hello'); })(); //弹出 'hello'

这里的解析足够简单:声明一个函数,然后因为()解析立即执行它。你可能会奇怪为何要这么做(指直接屁股后面()调用),这看上去是有点自相矛盾的:函数包含的通常是我们想稍后执行的代码,而不是当下解析即执行的,否则,我们就没有必要把代码放在函数中。
另外一个执行函数自身(self-executing functions (SEFs))的不错使用是为在延迟代码中使用绑定变量值,例如事件的回调(callback),超时执行(timeouts)和间隔执行(intervals)。如下例子:

        var someVar ='hello';
        setTimeout(function() { alert(someVar); }, 1000);
        var someVar ='goodbye';


七、未定义(undefined)可以被定义(defined)
           undefined并不是JavaScript中的保留字,尽管它有特殊的意义,并且是唯一的方法确定变量是否未定义。因此:
                   var someVar;
                   alert(someVar == undefined); //显示 true


         目前为止,一切看上去风平浪静,正常无比,但下面情况则发生了变化:
                    undefined ="I'm not undefined!";
                    var someVar;
                    alert(someVar == undefined); //显示 false!


         这就是为什么jQuery源码中最外部的闭包函数要有个并没有传入的undefined参数,目的就是保护undefined不要被外部的些不良乘虚而入。

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: