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、NaN 是三个经常被混淆的概念,但它们有着不同的含义和用途。今天,我们将深入探讨这三个概念的区别和应用。 undefined 在 JavaScript 中,undefined 是一个基本数据类型,表示...
JavaScript中undefined和null的区别 JavaScript两个表示”无”的值:undefined和null。我在平时只是null用的多一点,undefined只是在报错中经常遇到。下面针对这两个数据类型的异同做一下详细的比较。 1.undefined和...
在JavaScript中,基本类型值的使用和处理非常重要,了解Undefined、Null和Boolean这三种基本类型值,能够帮助开发者更好地编写逻辑判断和数据验证的代码,为编写高质量的JavaScript程序打下坚实的基础。
本文将详细介绍javascript中的undefined和null 历史原因 1995年JavaScript诞生时,最初像Java一样,只设置了null作为表示”无”的值。根据C语言的传统,null被设计成可以自动转为0 但是,JavaScript的设计者...
在JavaScript编程语言中,`undefined`和`null`是两种不同的数据类型,它们虽然在某些情况下可能被视为等价,但有着本质的区别。了解这两者的差异对于编写健壮的JavaScript代码至关重要。 首先,`undefined`是一种...
这包括变量、数据类型(如字符串、数字、布尔值、null和undefined)、操作符(算术、比较、逻辑等)、流程控制(条件语句如if...else,循环结构如for和while)以及函数的使用。理解这些基础,是构建任何JavaScript...
LoadMod ( 'https://rawgit.com/yannprada/cookie-garden-helper/master/cookie-garden-helper.js' ) ; } ( ) ) ; 这个怎么运作 首先,点击花园/农场底部的“ Cookie Garden Helper ”按钮。 在这里,您可以配置您...
在 JSON 中,不支持 JavaScript 中的特殊 undefined。 2. JSON 对象 JSON 对象的表示法需要加上双引号,并且不存在赋值运算和分号。例如:`var box = { "name": "Hou", "age": 100 };` 3. JSON 数组 JSON 数组的...
首先,入门阶段通常会介绍JavaScript的基础语法,包括变量、数据类型(如字符串、数字、布尔值、null和undefined)、操作符(算术、比较、逻辑)、流程控制(条件语句if...else、switch,循环语句for、while)以及...
5. **核心概念**: 强调了避免使用`eval`的重要性,解释了`undefined`和`null`的区别,以及自动分号插入机制,这些都是JavaScript编程中容易忽视但至关重要的细节。 6. **其他**: 提及了`setTimeout`和`setInterval`...
(ECMAScript有五种原始类型:Undefined、Null、Boolean、Number 和String.) 引用值(reference value)是存储在堆(heap)中的对象,也就是说存储的值是一个指针(point),指向存储对象的内存处。(对象,数组函数属于引用...
本节课程为初学者提供了 JavaScript 的基本概念、特点、优点和编程技术,旨在帮助学习者快速掌握 JavaScript 的基础知识和编程技能。 一、JavaScript 概述 JavaScript 是一种基于对象、事件驱动的编程语言,由 ...
本文将详细介绍javascript中的undefined和null 历史原因1995年JavaScript诞生时,最初像Java一样,只设置了null作为表示”无”的值。根据C语言的传统,null被设计成可以自动转为0 但是,JavaScript的设计者Brendan ...
目前仅有的讲JavaScript的测试驱动开发的书,英文版,Amazon书评4星级的好书。
2. 数据类型:JavaScript有七种数据类型,包括基本类型(Boolean、Number、String、Null、Undefined、Symbol、BigInt)和引用类型(Object)。 3. 运算符:包括算术运算符、比较运算符、逻辑运算符、赋值运算符等。 ...
该项目是一款基于HTML、JavaScript和CSS开发的智慧园林设计应用程序源码,包含332个文件,其中包括134个HTML文件、115个PNG图片文件、39个JavaScript文件、18个CSS文件、5个XML文件、4个DS_Store文件、4个JPG文件、3...
- **面向对象**:尽管JavaScript没有传统意义上的类,但它支持基于原型的面向对象编程方式,可以通过构造函数和原型链来实现继承。 - **事件驱动**:JavaScript的核心之一在于处理用户的交互事件,如点击、滑动等。 ...
JavaScript是一种广泛应用于Web开发的动态脚本语言,其灵活性和弱类型特性使得它在处理数据类型时具有独特的特点。在JavaScript中,类型系统包括多种不同的数据类型,其中一种就是"undefined"。这篇文档《JavaScript...