数据类型
基本数据类型
1 具体细分为七种:number,string,boolean,undefind, null, Symbol, Bigint
其中BigInt和Symbol是es6之后才有的原始数据类型,其中BigInt的使用方法就是在整数后面加字母n,例如`let n = 1212111111111n
①Number :表示整数和浮点数
②String :用于表示文本,字符串
③Boolean :表示逻辑,共有两个值true或者false
④Null :表示为一个刻意设置为空的对象,表示没有任何值
⑤Undefined :表示变量已经被声明,但未被初始化
⑥BigInt(es10新增) :用来存储大于 2^53 - 1(即 Number.MAX_SAFE_INTEGER)的整数,用于表示任意大小的安全整数。
⑦Symbol(es6新增) :一种唯一且不可变的数据类型,常用于对象的键名以避免属性名的冲突。
这时候肯定有小伙伴会说:"不是还有NAN这种类型吗",但实际上NAN(Not a Number)也属于Number,尽管它代表非数字。
原始数据类型的特点是: 基本数据类型一旦被创建,其值就不能被修改,对他们进行操作时修改值其实并不是修改它的值,底层而是创建一个新的数据进行操作后再返回
null 和 undefind区别:
·undefined 表示没有赋值
·null表示赋值了,但是内容为空
应用场景: 如果一个变量里面确定存放的是对象,如果还没准备好对象,可以放一个null
引用类型:
①对象(Object) :最通用的引用类型,可以用来存储键值对的一个集合,可以包含值或者函数。
②数组(Array) :特殊类型的对象,用于存储有序的数据集合,数组的元素可以是任意类型的数据。
③函数(Function) :也属于对象,可以被赋值给变量,或者作为其他对象的属性,也可以被被调用来执行特定任务。
除了以上三种还有一些特殊或派生的引用类型如日期(Date)、正则(RegExp)等...
判断数据类型:
1. 对于基本数据类型:typeof:
1. 可以准确的判断除了 null 以外的所有原始类型 2. 用 typeof 判断引用类型,只有 function 能判断成功 typeof会通过将值转换为二进制来判断类型,对于二进制数据前三位是 0 的统一识别为对象,所有的引用类型转为二进制前三位都是 0,而 null 转为二进制全是 0
直接将变量的值放在typeof 之后或者加上一个括号就能够返回一个布尔值。使用如下:
typeof arr | or | typeof (arr)

2. 对于引用数据类型 -->instanceof
instanceof 的使用方法:要判断的数据 instanceof 原型 例如:arr instanceof Array
直白点来说就是看左边的是否隶属于右边


3. 对于任何类型的--->Object.prototype.toString()
区分slice 与splice语法:
splice

arr.splice(2,1) //splice方法 从下标2的位置 切割一个 输出[ 'a', 'b', 'd' ]
slice

arr.slice(0,3) // slice方法 默认 左闭右开 ,只截取[0,3)

6,-1) 输出wor
>数据类型转换
为何呢要进行数据转换?
JaveScript 是弱数据类型: JaveScript 也不知道变量到底属于哪种数据类型,只有赋值了才清楚。
📌坑坑坑:使用表单、prompt获取过来的数据默认是字符串类型,此时就不能直接简单的进行加减法运算了。

隐式转换
某些运算符被执行时,系统内部将数据类型进行转换
规则:
➡ +号两边只要有一个说字符串,都会把另外一个转成字符串
➡ 其他运算符号 -*/等都会把数据转化成数字类型
小技巧: +号作为正号解析可以转换成数字型
任何数字和字符串相加都是字符串

显示转换
编写程序时过度依赖系统内部的隐士转换是不严谨的,因为隐士转换并不清晰,大多数是靠经验总结规律。 为了避免因隐式转换带来的问题,通常根据逻辑需要对数据进行显示转换。
直白点就是 自己写代码告诉系统该转换成什么类型
转换成数字型
👉 Number (数据)
1· 转成数字类型 

2· 如果字符串内容里有非数字,转换失败时结果为NaN(Not a Number)即不是一个数字
3· NaN也是number类型的数据,代表非数字
👉 parselnt(数据)//int整数
只保留整数
👉 parseFloat(数据)//float浮点数 小数
可以保留小数

数据类型转换主要分为四类:
①基本数据类型转基本数据类型
②引用数据类型转基本数据类型
③基本数据类型转引用数据类型
④一些隐式类型转换..
基本数据类型转基本数据类型
可以直接使用显示转换,用原始数据类型的构造方法中传参数,就能将数据类型成功转换。
基本数据类型互转的基本规则如下图,这张图基本上涵盖了所有的特殊情况


小结
文章只是用来帮助巩固落实小小的模块知识的 ,相信这只是起点! js中的数据类型,以及对数据的相关操作是学习js中很重要的一环,数据类型的准确处理是编写高质量代码的关键。typeof、instanceof、Object.prototype.toString.call() 适时地利用等工具进行类型判断,结合显式与隐式的类型转换技巧,能够确保你的程序既健壮又易于维护。