• [转载]JS 随笔作用域和undefined,null,NaN区别


    转自http://blog.csdn.net/zhuizhuziwo/article/details/6863622

    1、var 声明变量,将变量的作用域提到整个局部区域内,比如函数内整个区域,并且alert放回undefined。能够屏蔽更大一级的作用域的的变量。
    2、当变量没有声明时,会出现引用错误,返回not defined错误。
    3、在函数对象构造函数内以下面这种方式
    aaa  = "bbbb";
    声明的变量,具有全局作用域,其为window对象的属性,能够为所有对象共享,在函数外面能够访问。
    4、name为每个函数的属性,表明这个函数的函数名,所以这个以后要注意这个关键字
    所以输出函数名的时候,需要使用aaa.name,  而window也具有name属性。
    5、以后声明变量需要用var 。

    坑爹2:js中undefined,null,NaN的区别

    1.类型分析: 


    js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。 
    var a1; 
    var a2 = true; 
    var a3 = 1; 
    var a4 = "Hello"; 
    var a5 = new Object(); 
    var a6 = null; 
    var a7 = NaN; 
    var a8 = undefined; 


    alert(typeof a);   //显示"undefined" 
    alert(typeof a1);  //显示"undefined" 
    alert(typeof a2);  //显示"boolean" 
    alert(typeof a3);  //显示"number" 
    alert(typeof a4);  //显示"string" 
    alert(typeof a5);  //显示"object" 
    alert(typeof a6);  //显示"object" 
    alert(typeof a7);  //显示"number" 
    alert(typeof a8);  //显示"undefined" 


    从上面的代码中可以看出未定义的值和定义未赋值的为undefined,null是一种特殊的object,NaN是一种特殊的number。 


    2.比较运算 

    var a1;        //a1的值为undefined 
    var a2 = null; 
    var a3 = NaN; 


    alert(a1 == a2); //显示"true" 
    alert(a1 != a2); //显示"false" 


    alert(a1 == a3); //显示"false" 
    alert(a1 != a3); //显示"true" 


    alert(a2 == a3); //显示"false" 
    alert(a2 != a3); //显示"true" 


    alert(a3 == a3); //显示"false" 
    alert(a3 != a3); //显示"true" 


    从上面的代码可以得出结论:(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等。

  • 相关阅读:
    概率论与统计学---笔记
    实用概率论与数理统计学--笔记
    并发编程总结5-JUC-REENTRANTLOCK-3(非公平锁)
    并发编程总结4-JUC-REENTRANTLOCK-2(公平锁)
    并发编程总结3——JUC-LOCK-1
    DOCKER & SWARM1.2
    Docker
    hdfs命令
    并发编程总结2——java线程基础2
    并发编程总结1——java线程基础1
  • 原文地址:https://www.cnblogs.com/johnason/p/2593455.html
Copyright © 2020-2023  润新知