美文网首页Web前端之路
[JS开发者应懂的33个概念]2.基本数据类型

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

作者: 三味罐 | 来源:发表于2019-08-26 16:07 被阅读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

相关文章

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

    Javascript数据类型 之 基本数据类型 在JavaScript中,数据类型主要分为两种 :基本数据类型和引...

  • JS 基本数据类型和引用数据类型的区别及浅拷贝和深拷贝

    JS基本数据类型和引用数据类型 再讲 js 的基本数据类型和引用数据类型之前,我们先说一下栈和堆的概念 1、栈(s...

  • JavaScript基础总结

    ✍目录总览:(JS概念与组成、JS格式规范、JS基本语法【输入、输出、变量、数据类型、数据类型转换、运算符、流程控...

  • 重新认识js复杂类型数据的引用和深浅拷贝

    js 基本概念———— 数据类型 js 深浅拷贝之概念 代码实现 —— 数组和对象的j浅拷贝 代码实现 —— 数组...

  • JS中的栈内存堆内存

    1. JS 数据类型 首先我们来认识js的七种数据类型: 1.基本数据类型 2.引用数据类型 2. 什么是栈与堆 ...

  • JavaScript知识点

    1. 介绍js的基本数据类型 Undefined、Null、Boolean、Number、String 2. js...

  • js数据类型

    JS基本数据类型和引用数据类型(JS 基本数据类型和引用数据类型的区别及浅拷贝和深拷贝) 再讲 js 的基本数据类...

  • JS的类型转换

    JS的数据类型: 首先, JS的数据类型分为基本数据类型和引用数据类型基本数据类型: string number ...

  • JS数据类型判断

    js中可以通过typeof来判断基本的数据类型。 数据类型 js的数据类型分为基本数据类型和引用数据类型,基本数据...

  • JS前端面试题

    1.介绍js的基本数据类型? 2.介绍js有哪些内置对象? 3.ES5和ES6分别几种方式声明变量 4.闭包的概念...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/rwhdectx.html