• [转载]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与任何值都不相等,与自己也不相等。

  • 相关阅读:
    opencv视屏流嵌入wxpython框架
    Linux下makefile学习
    关于pyinstall打包时的依赖问题
    python文件结构与import用法
    python3+dlib人脸识别及情绪分析
    慕课学习--DNS的作用
    力扣leetcode11. 盛最多水的容器
    力扣leetcode5.最长回文子串
    力扣leetcode1190. 反转每对括号间的子串
    基于Ubuntu1604+ROS-kinetic+roscpp的激光雷达定位算法从零开始移植
  • 原文地址:https://www.cnblogs.com/johnason/p/2593455.html
Copyright © 2020-2023  润新知