JavaScript有哪些数据类型,它们的区别?
2024-09-06 21:48:50
基本数据类型:number、string、boolean、Undefined、NaN(特殊值)、BigInt、Symbol
引入数据类型:Object
NaN是JS中的特殊值,表示非数字,NaN不是数字,但是他的数据类型是数字,它不等于任何值,包括自身,在布尔运算时被当做false,NaN与任何数运算得到的结果是NaN,计算失败或者运算无法返回正确的数值的就会返回NaN,一些数学函数的运算结果也会出现NaN ,
其中Symbol和BigInt是ES6中新增的数据类型:
1,Symbol代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现的全局变量冲突的问题。
2,BigInt是一种数字类型的数据,它可以表示任意精度格式的整数,使用BigInt可以安全地存储和操作大整数,即使这个数已经超出了Number能够表示的安全整数范围。
这些数据可以分为原始数据类型和引用数据类型:
栈:原始数据类型(Undefined、Null、Boolean、Number、String)
堆:引用数据类型(对象、数组和函数)
区别:
1,基本数据类型是按值访问的,也就是说我们可以操作保存在变量中的实际的值,
2,基本数据类型的值是不可变的,任何方法都无法改变一个基本类型的值,当这个变量重新赋值后看起来变量的值是改变了,但是这里变量名只是指向变量的一个指针,所以改变的是指针的指向改变,该变量是不变的,但是引用类型可以改变
3,基本数据类型不可以添加属性和方法,但是引用类型可以
4,基本数据类型的赋值是简单赋值,如果从一个变量向另一个变量赋值基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上,引用数据类型的赋值是对象引用,
5,基本数据类型的比较是值的比较,引用类型的比较是引用的比较,比较对象的内存地址是否相同
6,基本数据类型是存放在栈区的,引用数据类型同时保存在栈区和堆区
最新文章
- 怎么使用CDR中排列对象功能
- WhatFontIs - 字体百科全书,没有不认识的字体
- Unity-WIKI 之 AllocationStats(内存分配)
- Win7下手动卸载oracle 11G
- nosql简述
- HTML初讲
- dbs:apple-notes
- Codeforces Round #200 (Div. 1) B. Alternating Current 栈
- 启动RIDE时报错:wxPython not found
- Cinder-2 窗口的创建过程
- HDU 4380 Farmer Greedy 计算几何+bitset
- 常用的opengl函数(三)
- 实现多条件模糊查询SQL语句
- 在webapi中为Action使用dynamic参数实现Post方式调用
- Python连接MySQL数据库的多种方式
- formated time string for file naming
- MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重复记录,只保留一条不重复数据
- Docker Kubernetes 创建管理 Pod
- Linux 只列出目录的方法
- 使用POI导出Excel文件