Web前端之路

[JS开发者应懂的33个概念]2.基本数据类型

2019-08-26  本文已影响0人  三味罐

Javascript数据类型 之 基本数据类型

在JavaScript中,数据类型主要分为两种 :基本数据类型和引用数据类型。这里主要讲解关于基本数据类型的相关知识点。

分类

基本数据类型主要分为7种,它们分别是 nullundefinednumberstringbooleansymbol(ES6新增基本数据类型)、bigint(也是新增的基本数据类型,但仍在提案阶段,它是除number以外第二个数值类数据类型)

具体可以查看MDN —— https://developer.mozilla.org/zh-CN/docs/Glossary/Primitive

特点

对于基本数据类型,它有以下这些特点:

为什么说值是不可改变的?

我们来看一个例子:

var str = "demo"
console.log(str)  // dmeo
str.toUpperCase()
console.log(str)  // demo

可以看到,两次输出的值都是demo。如果是赋值操作呢?

// 紧接上述例子
str = str.toUpperCase()
console.log(str)  // DEMO

可以看到,这里输出的结果是DEMO。但这并是不因它的值被改变了,前者str和后者str其实是两个不同的内存空间。在JavaScript中,赋值操作就等于新开辟了一处内存空间。我们看下面这个图:

image

因此,str的值准确的说是被替换了,而不是改变了。

值的比较

我们来看一个例子:

var a = 1;
var b = "1";
console.log(a == b) // true
console.log(a === b) // false

"==" 与 "===" 的简单区别

== :只对值进行比较,会进行数据类型的转换

===:不仅对值进行比较,而且还会对类型进行比较

null 与 undefined

这两者都是JavaScript中的基本数据类型,似乎两者很相似,但还是有一些不同点的。

null是等于空值,俗称“空指针对象”,因此它是属于一个对象声明且被定义了,而其定义的值就是“空值”;

undefined是表示根本不存在,还未被定义。

下面看一个例子简单理解:

var x;
console.log(x) // undefined
console.log(typeof x) // undefined
var y = null;
console.log(y) // null
console.log(typeof y)  // object

可以看到,x是属于声明未定义,因此输出是undefined类型;而y是属于声明且定义了,因此输出是null。

typeof是用于判断数据类型的,但因为null属于空指针对象,因此使用typeof判断null的类型数据时返回的是object。

bigint

BigInt是JavaScript中一个新的基本数据类型,它的出现主要是因为在JavaScript中一直缺少处理整数的数据类型,同时在处理大整数的时候也会出现各种问题。BigInt主要是为了解决大整数的存储和处理等问题。

此处不再展开,本人对JavaScript处理数字这块并没有深入研究,只知道对于小数和大整数的处理时经常会有一些奇奇怪怪的问题。之后仍需对这块知识进行学习...

关于基本数据类型想到的知识点暂时只有这些,如果有什么错误之处或者不足之处希望大家可以指出或进行补充。之后会对引用数据类型进行总结。

参考文章

  1. 原始数据 —— MDN

    https://developer.mozilla.org/zh-CN/docs/Glossary/Primitive

  2. JavaScript 深入了解基本类型和引用类型的值

    https://segmentfault.com/a/1190000006752076

  3. JavaScript的数据类型及其检测

    https://alili.tech/archive/iaieh127g4r/

  4. undefined与null的区别

    http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html

上一篇 下一篇

猜你喜欢

热点阅读