undefined
和 null
JavaScript 有两个表示‘空’的值,其中比较有用的是 undefined
。
undefined
的值
undefined
是一个值为 undefined
的类型。
这个语言也定义了一个全局变量,它的值是 undefined
,这个变量也被称为 undefined
。
但是这个变量不是一个常量,也不是一个关键字。这意味着它的值可以轻易被覆盖。
ES5 提示: 在 ECMAScript 5 的严格模式下,undefined
不再是 可写的了。
但是它的名称仍然可以被隐藏,比如定义一个函数名为 undefined
。
下面的情况会返回 undefined
值:
- 访问未修改的全局变量
undefined
。
- 由于没有定义
return
表达式的函数隐式返回。
-
return
表达式没有显式的返回任何内容。
- 访问不存在的属性。
- 函数参数没有被显式的传递值。
- 任何被设置为
undefined
值的变量。
处理 undefined
值的改变
由于全局变量 undefined
只是保存了 undefined
类型实际值的副本,
因此对它赋新值不会改变类型 undefined
的值。
然而,为了方便其它变量和 undefined
做比较,我们需要事先获取类型 undefined
的值。
为了避免可能对 undefined
值的改变,一个常用的技巧是使用一个传递到匿名包装器的额外参数。
在调用时,这个参数不会获取任何值。
var undefined = 123;
(function(something, foo, undefined) {
// 局部作用域里的 undefined 变量重新获得了 `undefined` 值
})('Hello World', 42);
另外一种达到相同目的方法是在函数内使用变量声明。
var undefined = 123;
(function(something, foo) {
var undefined;
...
})('Hello World', 42);
这里唯一的区别是,在压缩后并且函数内没有其它需要使用 var
声明变量的情况下,这个版本的代码会多出 4 个字节的代码。
译者注:这里有点绕口,其实很简单。如果此函数内没有其它需要声明的变量,那么 var
总共 4 个字符(包含一个空白字符)
就是专门为 undefined
变量准备的,相比上个例子多出了 4 个字节。
null
的用处
JavaScript 中的 undefined
的使用场景类似于其它语言中的 null,实际上 JavaScript 中的 null
是另外一种数据类型。
它在 JavaScript 内部有一些使用场景(比如声明原型链的终结 Foo.prototype = null
),但是大多数情况下都可以使用 undefined
来代替。
分享到:
相关推荐
JavaScript 类型系统中的 `undefined` 和 `null` 是两种特殊的原始值,它们分别代表不同的概念。`undefined` 主要用于表示变量已经声明但未被赋值的情况,而 `null` 则是一个特意设置的值,通常用来表示一个“空”的...
在JavaScript编程中,undefined和null是两种特殊的值,它们在处理变量和对象时扮演着重要的角色。尽管它们都表示“没有值”的概念,但它们之间存在着一些关键的区别。本文将深入探讨undefined和null的含义、用途以及...
JavaScript中几乎所有东西都可被视为对象,只有`null`和`undefined`例外。 - **一切皆对象**:几乎所有的JavaScript实体都可以像对象一样使用,包括基本类型和复合数据结构。 - 示例: ```javascript false....
### JavaScript中undefined与null的区别详解 ...了解`undefined`与`null`之间的差异有助于避免编程中的常见错误,并使代码更加健壮和易于维护。在实际编程中,根据具体需求选择合适的数据类型进行处理是非常重要的。
在JavaScript编程语言中,`null`和`undefined`是两种非常重要的值,它们在很多情况下容易引起混淆。本文将深入探讨两者之间的区别和比较。 首先,`undefined`是一种特殊的值,它代表变量已经被声明但没有赋值。在...
LoadMod ( 'https://rawgit.com/yannprada/cookie-garden-helper/master/cookie-garden-helper.js' ) ; } ( ) ) ; 这个怎么运作 首先,点击花园/农场底部的“ Cookie Garden Helper ”按钮。 在这里,您可以配置您...
在JavaScript编程语言中,`undefined`和`null`是两种不同的数据类型,它们虽然在某些情况下可能被视为等价,但有着本质的区别。了解这两者的差异对于编写健壮的JavaScript代码至关重要。 首先,`undefined`是一种...
之前软件开发网发不过类似的文章JavaScript null和undefined区别分析JavaScript Undefined,Null类型和NaN值区别先说说undefined: Javascript中的变量是弱类型的(关于这个我想就不用我多解释啦), 所以声明变量的...
这包括变量、数据类型(如字符串、数字、布尔值、null和undefined)、操作符(算术、比较、逻辑等)、流程控制(条件语句如if...else,循环结构如for和while)以及函数的使用。理解这些基础,是构建任何JavaScript...
一时间不好回答,特别是... null 是 JavaScript 保留关键字。 null 参与数值运算时其值会自动转换为 0 ,因此,下列表达式计算后会得到正确的数值: 表达式:123 + null 结果值:123 表达式:123 * null 结果
有点奇怪的是,JavaScript语言居然有两个表示”无”的值:undefined和null。这是为什么? 一、相似性 在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。 var a = undefined; var a = null; ...
1. **基础语法**:JavaScript的基础包括变量、数据类型(如字符串、数字、布尔值、null、undefined)、操作符(算术、比较、逻辑等)、流程控制(条件语句、循环语句)和函数。理解这些概念是编程的基石。 2. **...
首先,入门阶段通常会介绍JavaScript的基础语法,包括变量、数据类型(如字符串、数字、布尔值、null和undefined)、操作符(算术、比较、逻辑)、流程控制(条件语句if...else、switch,循环语句for、while)以及...
5. **核心概念**: 强调了避免使用`eval`的重要性,解释了`undefined`和`null`的区别,以及自动分号插入机制,这些都是JavaScript编程中容易忽视但至关重要的细节。 6. **其他**: 提及了`setTimeout`和`setInterval`...
本节课程为初学者提供了 JavaScript 的基本概念、特点、优点和编程技术,旨在帮助学习者快速掌握 JavaScript 的基础知识和编程技能。 一、JavaScript 概述 JavaScript 是一种基于对象、事件驱动的编程语言,由 ...
原始类型有数字(Number)、字符串(String)、布尔值(Boolean)、未定义(undefined)、空(null)和Symbol。复合类型则主要指对象(Object),包括数组(Array)、函数(Function)等。 - **数字(Number)**:用于表示整数和...
在JavaScript编程语言中,`undefined` 和 `null` 是两种特殊的数据类型,它们都表示“没有值”,但具有不同的含义和使用场景。了解这两者的差异对于编写健壮的JavaScript代码至关重要。 首先,让我们来明确两者的...
JavaScript是一种动态类型的语言,它的类型系统包含了多种数据类型,其中undefined和null是两个特殊的原始值。这篇文章主要探讨了这两者的概念、历史背景以及它们在实际编程中的应用。 首先,undefined是一个表示...
- **面向对象**:尽管JavaScript没有传统意义上的类,但它支持基于原型的面向对象编程方式,可以通过构造函数和原型链来实现继承。 - **事件驱动**:JavaScript的核心之一在于处理用户的交互事件,如点击、滑动等。 ...