资讯专栏INFORMATION COLUMN

JS-Undefined类型

姘存按 / 670人阅读

摘要:一概述中首字母大写类型定义是有且只有一个首字母小写值的类型。任何没有赋值的变量的值都是。但类型只存在于规范中,实际实现中并没有定义类型。所以我们也可以定义名为属性了,并且老的中可以重写属性值二替代运算符返回的是。

一、概述

ECMAScript中Undefined(首字母大写)类型定义是:有且只有一个undefined(首字母小写)值的类型。任何没有赋值的变量的值都是undefined。

var a; 
console.log(a); // undefined

但Undefined类型只存在于规范中,实际实现中并没有定义Undefined类型
在浏览器上下文中undefined是全局变量window的成员变量(一般是只读的),既然undefined是全局属性变量,那他肯定不是保留字了。所以我们也可以定义名为undefined属性了,并且老的JS中可以重写window.undefiend属性值:

var a;
console.log(a === window.undefined); // true
;(function(){
    var undefined = "hello";
    console.log(undefined); // hello
    console.log(a === window.undefined); // true
    console.log(a === undefined); // false
})();
二、void 0替代undefined

void运算符返回的是undefined。

var a; 
;(function(){
    var undefined = "hello";
    console.log(a === void 0); // true
    console.log(a === undefined); // false
})();

代码中常常看到使用void 0替代undefined,这是为啥呢?:

2.1 void 0 更安全

如上文,undefined值可以作为变量的,万一值被重新了,那岂不是凌乱了。

2.2 void 0 体积小

好多代码压缩工具都会把undefined替换成void 0。字符串“void 0” 比“undefined”更短一些(额,少了3个字符)。

参考

http://www.ecma-international...
https://developer.mozilla.org...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83780.html

相关文章

  • 基本类型类型转换(隐式类型转换)和强制类型转换(译一)

    摘要:基本类型的类型转换和强制类型转换一的变量类型分为种。目录基本类型的类型转换隐式类型转换基本类型的强制类型转换基本类型的类型转换隐式类型转换基本类型的类型转换是通过扩展转换的规则完成的。 基本类型的类型转换和强制类型转换(一) Java的变量类型分为2种。基本类型(原始类型)和引用类型。基本类型包括以下八种类型:boolean、 char、byte、short、int、long、floa...

    pcChao 评论0 收藏0
  • 数据类型——数据类型简介及之间的转换

    摘要:二类型转换隐式类型转换转换为字符串类型任意类型转换为类型任意类型一个加号加任意类型转换为类型任意类型显式类型转换转换为字符串类型转换为类型将字符串或布尔值转换为整数类型。 内容简介: 一.数据类型简介 ———— 原始类型 ———— 引用类型 二.数据类型之间的转换 一、数据类型简介 数据类型主要分为原始类型(也有称为基本类型/原始值)和引用类型。 1.原...

    codercao 评论0 收藏0
  • 为vue3学点typescript, 解读高级类型

    摘要:直达第一课体验第二课基础类型和入门高级类型第三课泛型第四课解读高级类型第五课什么是命名空间回顾第二课的时候为了更好的讲解基础类型所以我们讲解了一部分高级类型比如接口联合类型交叉类型本节课我会把剩余高级类型都讲完知识点摘要本节课主要关键词为自 直达 第一课, 体验typescript 第二课, 基础类型和入门高级类型 第三课, 泛型 第四课, 解读高级类型 第五课, 什么是命名空间(na...

    chuyao 评论0 收藏0
  • 通俗的方式理解动态类型,静态类型;强类型,弱类型

    摘要:不允许隐式转换的是强类型,允许隐式转换的是弱类型。拿一段代码举例在使用调用函数的时候会先生成一个类模板运行时生成,执行的时候会生成类模板,执行的时候会生成类模板。 0 x 01 引言 今天和一个朋友讨论 C++ 是强类型还是弱类型的时候,他告诉我 C++ 是强类型的,他和我说因为 C++ 在写的时候需要 int,float 等等关键字去定义变量,因此 C++ 是强类型的,我告诉他 C+...

    周国辉 评论0 收藏0

发表评论

0条评论

姘存按

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<