博客
关于我
Web前端面试题——null和undefined的区别
阅读量:584 次
发布时间:2019-03-11

本文共 1071 字,大约阅读时间需要 3 分钟。

undefined和null都是javascript中的两种特殊值,它们在开发中虽然看起来有些相似,但各自的意义和用途并不相同。本文将从概念定义、用途和区别三个方面对这两种值进行深入分析。

undefined

undefined一词在编程中具有很深远的意义。它是指在javascript中,一个变量没有被赋值,或者一个函数没有返回值,或者某个函数的参数没有接收到传递的值时,这些情况都会返回undefined。这种情况大多发生在变量的声明阶段。比如说,当我们写_SCRIPT_段时,未赋值的变量会自动被赋值为undefined。例如:

var a; // a 准备就绪,但当前值为 undefinedconsole.log(a); //输出: undefined

undefined的出现往往意味着代码中存在未完成的部分或错误的情况。所以在编程实践中,检查变量是否为undefined是一项常见的做法,以确保程序能够正常运行。

null

null(空值)则代表着“什么都没有”。它并不是一个对象类型,而是一个空对象指针。null的主要用途是用来释放内存,并表示一个变量不再指向任何对象。例如,当我们要清理内存或者断开对一个对象的引用时,就会将其设置为null。以下是一个典型的例子:

var emps = ['ss', 'nn'];emps = null; // null 表示我们不再持有这个数组对象的引用

null和undefined虽然在某些情况下看起来是一样的,但它们的概念和用途有着本质的区别。

区别

  • 类型属性:在javascript中,null的类型属性返回的是 'object'(对象),而undefined的类型属性返回的是 'undefined'。如果我们使用 typeof 运算符来判断,可以看出这两种值的区别。

  • 行为:null和undefined在某些情况下可以互相替代,但它们在不同的情境下会有不同的行为表现。例如,当用 null 表示未赋值的情况时,有时候可能会导致意外的错误,而如果是用 undefined 表示同样的情况,有时程序会更易于处理和理解。

  • 使用场景:null主要用于主动释放资源,而undefined则是用来表示变量未被赋值的状态。这两种值在不同的编程场景下发挥着不同的作用,因此应根据具体需求来选择使用哪一种。

  • 总的来说,undefined和null虽然都是javascript中的基础类型,但它们在概念意义和使用场景上有着本质的不同。正确的理解和使用这两种值,可以帮助我们更好地构建高质量的代码。

    转载地址:http://lgntz.baihongyu.com/

    你可能感兴趣的文章
    PyQT-将文件复制到剪贴板
    查看>>
    PYQT.如何在QTableView中插入小部件
    查看>>
    PyQt4 代码在 PyQt5 (QHeaderView) 上不起作用
    查看>>
    PyQt4 到 PyQt5 ->mainFrame() 已弃用,需要修复才能加载网页
    查看>>
    PyQt4, class:mouseButtons用法
    查看>>
    PyQt4参考文档
    查看>>
    PyTorch Lightning:通过分布式训练扩展深度学习工作流
    查看>>
    PyQt5 - QThread:在线程仍在运行时被销毁
    查看>>
    PyQt5 - 如何从工作线程发出信号以通过 GUI 线程调用事件
    查看>>
    PyQt5 Designer 不工作:此应用程序无法启动,因为无法初始化 Qt 平台插件
    查看>>
    PyQt5 QLCNumber 没有更新
    查看>>
    PyQt5 TabWidget选项卡BarClicked TypeError:本机Qt信号不可调用
    查看>>
    PyQt5 从 PyQt4 转换信号代码
    查看>>
    PyQt5 和 asyncio:从永不完成的收益
    查看>>
    PyQt5 和 Django:如何使用 HTTP 请求(Multipart-form)上传图像?
    查看>>
    PyQt5 按钮运行功能和更新 LCD
    查看>>
    pyqt5 获取Qlabel中的图片并对其进行处理(包括Qimage转换为Mat)
    查看>>
    pyqt5 设置控件在最上层或者在下层
    查看>>
    pyqt5 设置网格布局的间距
    查看>>
    pyTorch Hub 系列#4:PGAN — GAN 模型
    查看>>