博客
关于我
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/

    你可能感兴趣的文章
    npm should be run outside of the node repl, in your normal shell
    查看>>
    npm start运行了什么
    查看>>
    npm WARN deprecated core-js@2.6.12 core-js@<3.3 is no longer maintained and not recommended for usa
    查看>>
    npm 下载依赖慢的解决方案(亲测有效)
    查看>>
    npm 安装依赖过程中报错:Error: Can‘t find Python executable “python“, you can set the PYTHON env variable
    查看>>
    npm.taobao.org 淘宝 npm 镜像证书过期?这样解决!
    查看>>
    npm—小记
    查看>>
    npm上传自己的项目
    查看>>
    npm介绍以及常用命令
    查看>>
    NPM使用前设置和升级
    查看>>
    npm入门,这篇就够了
    查看>>
    npm切换到淘宝源
    查看>>
    npm切换源淘宝源的两种方法
    查看>>
    npm前端包管理工具简介---npm工作笔记001
    查看>>
    npm包管理深度探索:从基础到进阶全面教程!
    查看>>
    npm升级以及使用淘宝npm镜像
    查看>>
    npm发布包--所遇到的问题
    查看>>
    npm发布自己的组件UI包(详细步骤,图文并茂)
    查看>>
    npm和package.json那些不为常人所知的小秘密
    查看>>
    npm和yarn清理缓存命令
    查看>>