首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    处理 JS中 undefined 的 7 个技巧

    大约8年前,当原作者开始学习JS时,遇到了一个奇怪的情况,既存在undefined 的值,也存在表示空值的null。它们之间的明显区别是什么?...undefined type errors JS 开发人员可以理解这个笑话的讽刺: function undefined() { // problem solved } 为了降低此类错误的风险,必须理解生成...访问不存在的属性 访问不存在的对象属性时,JS 返回undefined。...因为索引5和-1没有数组元素,所以访问colors[5]和colors[-1]值为undefined。 JS 中,可能会遇到所谓的稀疏数组。...总结 undefined的存在是JS的允许性质的结果,它允许使用: 未初始化的变量 不存在的对象属性或方法 访问越界索引的数组元素 不返回任何结果的函数的调用结果 大多数情况下直接与undefined

    5.9K20

    null == undefined ?

    ,这两种不同类型的值,即有着不同的语义和场景,但又表现出较为相似的行为: 1、undefined undefined 的字面意思就是未定义的值,这个值的语义是,希望表示一个变量最原始的状态,而非人为操作的结果...因此,undefined 一般都来自于某个表达式最原始的状态值,不是人为操作的结果。...Undefined] 3、相似性 虽然 undefined 和 null 的语义和场景不同,但总而言之,它们都表示的是一个无效的值。...因此,在JS中对这类值访问属性时,都会得到异常的结果: ?...ECMAScript 规范认为,既然 null 和 undefined 的行为很相似,并且都表示 一个无效的值,那么它们所表示的内容也具有相似性,即有 undefined == null; //true

    3K20

    企业面试题: js中数据类型 undefined 和 null 的区别

    考核内容: JS在数据处理中的判断 题发散度: ★★★ 试题难度: ★★★ 解题思路: null: Null类型,代表“空值”,代表一个空对象指针,使用typeof运算得到 “object”,所以你可以认为它是一个特殊的对象值...undefined: Undefined类型,当一个声明了一个变量未初始化时,得到的就是undefined。...null是javascript的关键字,可以认为是对象类型,它是一个空对象指针,和其它语言一样都是代表“空值”,不过 undefined 却是javascript才有的。...undefined是在ECMAScript第三版引入的,为了区分空指针对象和未初始化的变量,它是一个预定义的全局变量。没有返回值的函数返回为undefined,没有实参的形参也是undefined。

    1.2K20

    null和undefined的区别

    null和undefined的区别 在Js中null与undefined是两种基本数据类型,都可以用来表示"无"这个概念,但是在语义表达以及实际使用上是有所区别的。...描述 大多数计算机语言只有一个用来表示"无"这个概念的值,例如C与C++的NULL、Java与PHP的null、Python的None、lua与Ruby的nil,但是在Js中有null与undefined..."无"是一个历史遗留原因,最初设计的时候Js只设置了null作为表示"无"的值,根据C语言的传统,NULL被设计成可以自动转为0,但是JavaScript的设计者Brendan Eich,觉得这样做还不够...,首先最初设计Js的时候认为null是一个Object,这也就是typeof(null) === object的原因,虽然后来有过提议更改null的类型typeof(null) === null,但是因为提议因为会造成大量旧...Js脚本出现问题而被否决了,Brendan Eich觉得表示"无"的值最好不是对象,且如果null自动转为0,很不容易发现错误,因此Brendan Eich又设计了一个undefined数据类型。

    2.8K10

    undefined 与 undeclared 的区别?

    在 JavaScript 中,undefined 和 undeclared 是两个不同的概念,表示不同的情况: 1:undefined: undefined 是一个特殊的值,表示一个变量已经被声明,但尚未被赋予一个值...当一个变量被声明但未进行初始化赋值时,其默认的初始值为 undefined。 也可以将一个变量显式地赋值为 undefined 来表示其为空值。...例如: let x; // 变量 x 被声明,但未初始化,其值为 undefined let y = undefined; // 变量 y 被赋值为 undefined 2:undeclared: undeclared...当我们直接使用一个未声明的变量时,JavaScript 引擎会抛出一个 ReferenceError,指示变量未定义。...undefined 是一个特殊的值,而 undeclared 是一个错误的状态,使用未声明的变量会引发 ReferenceError。

    40110

    null 和 undefined

    一. undefined在变量声明中的体现: 1)声明了、但是没有初始化的变量: var aa; alert(aa); 浏览器会弹出窗口显示 undefined。...但是,这两者差别很大,之所以要设置两个值,让我们从历史原因说起吧 1)历史原因: 1995年js诞生时,最初像Java一样,只设置了 null 作为表示”无”的值。...Number(undefined) // NaN 5 + undefined // NaN 3)目前的用法: 但是,上面这样的区分,在实践中很快就被证明不可行。实践中有很多需要注意的地方。...(2) 调用函数时,应该提供的参数没有提供,该参数等于 undefined。 (3)对象没有赋值的属性,该属性的值为 undefined。 (4)函数没有返回值时,默认返回 undefined。...// 正如上面所说,js规定用`==` 判断时,null和undefined是等同的 正确的用法: if (typeof(abc) `==` "undefined") 或者最简单的办法: if(abc

    2.1K40

    undefined vs null

    ❞ 简明扼要 在JS中,存在两个空值 1. undefined 2. null Object.prototype不存在原型对象且值为null 假值:通过Boolean(X)强制类型转换后的值为false...但是,在JS中,存在两个空值 1. undefined 2. null 1. undefined vs null 一般情况下,这两个值在使用上都可以互换使用。只有在一些细微的方面存在差别。...我们可以从使用上对其进行分类 undefined: 是语言层面上使用的非值(定义一个变量,但未赋值,此时该变量会被JS引擎自动赋为undefined) null: 蓄意控制变量的值 2....和 null 没有任何属性 undefined和null是JS中仅有的两个变量:当试图读取它们的属性,会得到一个错误。...read property 'foo' of null getFoo(true) // undefined getFoo({}) // undefined 如果,继续深究的话,其实,这涉及到JS

    1.4K10
    领券