js基础面试高频面点2:Javascript中undefined和not defined有什么区别?

Posted dancer0321

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js基础面试高频面点2:Javascript中undefined和not defined有什么区别?相关的知识,希望对你有一定的参考价值。

二、javascript中undefined和not defined有什么区别?

  一句话:udefined为变量正常的数据类型,不是报错,而not defined是指变量没有定义,是报错。

  那么,什么是数据类型?js中数据类型有哪些?

  数据类型在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称

  js中变量的数据类型有:

    值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

    引用数据类型:对象(Object)、数组(Array)、函数(Function)。

    技术图片

    技术图片

    这个结果说明:

    1、数组和对象的类型都是object。

    2、用typeof只能检测出null为object。

    什么意思呢?

    null是什么东西?是值还是数据类型?什么值的数据类型是null?null和undefine究竟有什么千丝万缕的联系?

    在下认为:null可以是值,也可以是数据类型,null表示一个空对象的引用,对象的原型最终指向null。对于null的类型为object,这是js设计之初的历史  bug,可参考:http://2ality.com/2013/10/typeof-null.html,而null和undefined的值是相等的,但类型不同,所以:

    alert(null == undefined); // true
    alert(null === undefined); // false
    

    补充:
    技术图片
    

  

以上是关于js基础面试高频面点2:Javascript中undefined和not defined有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

10道JS高频面试题(重要)

面试率 90% 的JS事件循环Event Loop,看这篇就够了!! !

前端领域高频笔试面试—— JavaScript相关

:高频算法第26节:高频面试算法 - 基础(上)

前端领域高频笔试面试10题:JavaScript相关

前端JavaScript面试技巧视频教程 js面试课程 共8章