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

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中,赋值操作就等于新开辟了一处内存空间。我们看下面这个图:

赋值操作

因此,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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值