JavaScript--不常见的应用

JavaScript--不常见的应用面试

1. Null与Undefinedexpress

    接触过JavaScript的都知道,JS中的数据类型有6种,包括5种简单数据类型:Undefined,Null,Boolean,Number和String,还有一种复杂数据类型——Object,下面就先说一下null与Undefined。编程

    Undefined类型只有一个值,即特殊的undefined,在使用var声明变量但未对其加以初始化的时候,这个变量的值就是undefined,例如:var message;   alert(message); //undefined  
编程语言

    Null类型一样也是只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操做符检测null值时会返回"object"的缘由。 实际上,undefined值是派生自null值的,所以对他们进行相等性测试的时候会返回true:alert(null == undefined);//true ,因此,当面试题里出现null与undefined比较的时候不要再填false了奥~函数

2. NaN (Not a Number)测试

    NaN是一个特殊的数值,这个数值用于表示一个原本要返回数值的操做数未返回数值的状况。听不懂?那就来举个例子吧。 在其余的编程语言中,任何数值除以0都会致使错误,从而中止代码运行,但在ECMAScript中,任何数值除以0会返回NaN,所以不会影响其余代码的执行。url

    NaN自己有两个不一样寻常的特色:首先,任何涉及NaN的操做(例如NaN/10)都会返回NaN,这个特色在多布运算中可能会致使问题;其次,NaN与任何值都不相等,包括NaN自己。当在面试题中出现例如: alert(NaN == Nan);时,果断写上false就能够了。spa

    那NaN用起来岂不是得当心翼翼?针对这两个特色,ECMAScript定义了isNaN函数。这个函数接受一个参数,该参数能够是任意类型,而函数能够帮咱们确认该参数是否“不是数值”。isNaN在接受到一个值后,会尝试将其转换为数值,若不能将其转换为数值则返回true,不然返回false。指针

    例如:alert(isNaN(NaN)); //true        alert(isNaN(10)); //false           alert(isNaN("10")); //false           alert(isNaN("blue")); //true      alert(isNaN(true));   //false  注:true能够被转换为1对象

3. 全等与不全等   ===  与  !==

    在JavaScript中,相等与不等操做符会在执行比较前,先将对象转换成类似的类型(一般称为强制类型转换),而后在比较它们的相等性。而全等与不全等只有在操做数未通过转换就相等的状况下才会返回true。

    以下面例子:    var result1 = ("55" == 55);//true        var result2 = ("55" === 55);//false      

4.  with语句

    with语句的做用是将代码的做用域设置到一个特殊的对象中。具体语法以下: with (expression) statement

    定义with语句的主要目的是为了简化屡次编写同一个对象的工做,以下面的例子所示: var qs = location.search.substring(1);   var hostName = location.hostname;   var url = location.href;   上面几行代码都包含location对象。若是使用with语句,能够把上面的代码改写成以下所示:

    with(location){ var qs = search.substring(1);  var hostName = hostname;   var url = href; }  重写后的例子中,使用with语句关联了location对象。这意味着在with语句的代码块中,每一个变量首先被认为是一个局部变量,而若是在局部环境中找不到该变量的定义,就会查询location对象中是否有同名的属性。若是发现同名属性,则以location对象属性的值做为变量的值。

 

本人刚开始接触JS,欢迎你们补充指导~~

相关文章
相关标签/搜索