JavaScript基本数据类型和引用数据类型详解

简介: 笔记

数据类型小知识

JavaScript主要数据类型共有7种,有stringnumberbooleanundefinednullsymbolobject。其余7种可以笼统的分为两大类:基本数据类型引用数据类型

基本数据类型:string(字符串)、number(数字)、boolean(布尔)、null(空)、undefined(未定义)、symbol(符号)

引用数据类型:object(对象,除了基本数据类型其他都是对象。数组是对象、函数是对象、正则表达式也是对象)

基本数据类型:

基本数据类型的主要特点是赋值方式是传值,并且值存在栈中。

例如:

let val1="基本数据类型"
let val2=val1
console.log(val2)//基本数据类型

基本数据类型的值,赋值后相互不会影响。

例如:

val2="基本数据的值被修改"
console.log(val1)//基本数据类型
console.log(val2)//基本数据的值被修改

下表展示这种数据类型的赋值过程:

栈内存

初始栈内存只有val1

变量名
val1 基本数据类型
   

堆内存中将val1的值赋值给val2

变量名
val1 基本数据类型
val2 基本数据类型

修改val2的值

变量名
val1 基本数据类型
val2 基本数据类型的值被修改


引用数据类型:

引用数据类型的主要特点是赋值方式是传址,并且值存在堆中。(因为引用数据的值的大小无法确定,要根据情况进行特定的配置)

例如:

const obj1=new Object()
const obj2=val1 
console.log(obj2)//{}

引用数据类型的值,赋值后相互影响。

例如:

obj2.name = "引用数据的值被修改"
console.log(obj1.name)//引用数据的值被修改

下表展示这种数据类型的赋值过程:

栈内存

 

初始栈内存只有obj1

变量名
val1 引用地址(object)
   

堆内存中将obj1的引用地址赋值给obj2

变量名
val1 引用地址(object)
val2 引用地址(object)

添加obj2的值

变量名
val1 引用地址(object)
val2 引用地址(object) 添加name

堆内存

10.png

NULL歧义:

const test=null
console.log(typeof(test))//object
  for(item in test){
     console.log("运行")
  }//undefined

看在typeof中的结果null是object,而在循环中,for循环不会执行。所以在此会有一定的歧义,但是基本数据类型和引用数据类型的主要区别就是数据赋值不同和数据存储不同。所以个人感觉null是属于基本数据类型。

7种数据类型详情:

String(字符串):string类型是JavaScript中较为重要的类型,用来表示字符串。

Number(数字):用来表示数字串。主要有整数、小数、NAN等。

boolean(布尔):即布尔类型,该类型有两个值:truefalse

null(空):可以通过将变量的值设置为 null 来清空变量

undefined(未定义):表示变量不含有值

symbol(符号):ES6,主要防止命名冲突。

object(对象):对象,除了基本数据类型其他都是对象。数组是对象、函数是对象、正则表达式也是对象。

目录
相关文章
|
7月前
|
存储 JavaScript 对象存储
js检测数据类型有那些方法
js检测数据类型有那些方法
184 59
|
4月前
|
存储 JavaScript 前端开发
JavaScript中的数据类型以及存储上的差别
通过本文的介绍,希望您能够深入理解JavaScript中的数据类型及其存储差别,并在实际编程中灵活运用这些知识,以提高代码的性能和稳定性。
85 3
|
5月前
|
存储 JavaScript 前端开发
js中的数据类型
JavaScript 中的数据类型包括五种基本类型(String、Number、Undefined、Boolean、Null)和三种引用类型(Object、Array、Function,以及ES6新增的Symbol)。基本类型直接存储值,引用类型存储的是指向实际数据的内存地址。了解它们的区别对于掌握 JavaScript 的变量赋值和函数传参至关重要。
66 1
|
6月前
|
存储 JavaScript 前端开发
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
JavaScript 数据类型分为基本数据类型和引用数据类型。基本数据类型(如 string、number 等)具有不可变性,按值访问,存储在栈内存中。引用数据类型(如 Object、Array 等)存储在堆内存中,按引用访问,值是可变的。本文深入探讨了这两种数据类型的特性、存储方式、以及检测数据类型的两种常用方法——typeof 和 instanceof,帮助开发者更好地理解 JavaScript 内存模型和类型检测机制。
259 0
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
|
6月前
|
JavaScript 前端开发 开发者
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
85 1
|
7月前
|
JavaScript 前端开发
JavaScript基础知识-基本数据类型和引用数据类型
关于JavaScript基础知识的文章,主要介绍了基本数据类型和引用数据类型。
71 2
JavaScript基础知识-基本数据类型和引用数据类型
|
7月前
|
存储 前端开发 JavaScript
前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)
本文详细介绍了JavaScript中的数据类型,包括基本数据类型(Number、String、Boolean、Undefined、Null)和复杂数据类型(Object),并解释了如何使用`typeof`操作符来识别变量的数据类型。同时,还讨论了对象、函数和数组等复杂数据类型的使用方式。
222 2
|
6月前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
119 0
|
8月前
|
JavaScript 前端开发
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
这篇文章是JavaScript基础与实战教程的第一部分,涵盖了JavaScript的基本语法、标识符、数据类型以及如何进行强制类型转换,通过代码示例介绍了JS的输出语句、编写位置和数据类型转换方法。
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
|
8月前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
694 1
下一篇
oss创建bucket