数据类型
number 、string、boolean、underfined、null、 function、object([]、{})
通过使用 typeof 运算符检查控制台显示:
- Underfined:
typeof instance === "undefined"
- Boolean:
typeof instance === "boolean"
- Number:
typeof instance === "number"
- String:
typeof instance === "string
- null:
typeof instance === "object"
。 - Function:
typeof instance === "function"
- BigInt:
typeof instance === "bigint"
- Symbol :
typeof instance === "symbol"
ES6 中新增了一种 Symbol 。Symbol可以创建一个独一无二的值(但并不是字符串),可以解决属性名冲突的问题,做为标记。
谷歌67版本中还出现了一种 BigInt。BigInt是一种内置对象,它提供了一种方法来表示大于
2^53 - 1
的整数,BigInt可以表示任意大的整数。
数据类型又分:基础类型和应用类型
基础类型(值类型):
字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol(ES6新增)
引用类型:
Array 、Function 、Object 、Date
object数据类型表示方式有:
null 、[] 、{}
注意:{}对象里的数据有很多键值对组成,里面是没顺序的。{}就叫对象,不叫object对象类型。
基础类型和引用类型区别
存储的角度:基础类型的数据放在栈中,引用数据存储放在堆中;将堆的地址放在栈中。
赋值的角度:基础类型在赋值是将值复制一份给另一个变量,引用类型赋值是将栈中存储的地址复制一份给另一个变量。
栈
概念:栈是一种后进先出的数据结构,也就是说最新添加的项最早被移出;它是一种运算受限的线性表,只能在表头/栈顶进行插入和删除操作。
栈会自动分配内存空间,会自动释放,存放基本类型,简单的数据段,占据固定大小的空间。
堆
动态分配的内存,大小不定也不会自动释放,存放引用类型,指那些可能由多个值构成的对象,保存在堆内存中,包含引用类型的变量,实际上保存的不是变量本身,而是指向该对象的指针.
!!基础类型赋值:开辟一个空间保存 (a,b)
基础类型的赋值,是将其中一个值复制到另一个变量容器中,引用类型的赋值是将一个栈中的内存地址复制一份放到另一个变量容器中,改变其中一个的值,另一个也会发生改变。
var a=10var b=a // 将a中的值复制一份放到了b中,复制以后,有两个独立的值
a=20// 改变其中一个,另一个不会发生改变的
console.log(b)//10
引用类型改变:
var arr=[1,2,3]var brr=arr
brr[1]='d'// 将arr存储的地址中的值的2改成d
console.log(brr)//1 2 3 没有改变arr在栈中存储的内存地址
引用类型全等比较:基础类型比较值和类型,引用类型比较内存地址是否相等。
var arr=[1,2,3]var brr=[1,2,3]if(arr===brr){
console.log(true)
s}
console.log(false)
更详细可以看他:https://blog.csdn.net/u013592575/article/details/95087953
现在也是了解一点点,还没更深的见解,有错误的还请指出来。大家互相学习,冲冲冲。今天就记录到这里吧,希望有帮助的话就点个赞吧。
版权归原作者 Yan阿清 所有, 如有侵权,请联系我们删除。