javascript里面的数据类型有哪些

我总结后的数据类型(1~6是基本(原始)类型,7是引用类型):

1.number; 

2.string;

3.boolean;

4.undefined;

5.null;

6.symbol(ES6新增,文章后面有对着新类型的解释)

7.Object.(包括Object,Array,Function)

注意:有以下代码:

var arry=[1,2,3];

var nul=null;

console.log(typeof arry);//object

console.log(typeof nul );//object

查阅资料有以下:

Null 类型

另一种只有一个值(值为null)的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

alert(null == undefined);  //输出 "true"

尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

那么就有当声明一个变量,这个变量的值为null,那么这个变量就是“不存在的”。


基本类型和引用类型的区别

1. 基本类型: string,number,boolean,null,undefined,symbol

2. 引用类型: Function,Array,Object

访问方式
                           基本类型               引用类型
操作和保存在变量的实际的值 值保存在内存中,js不允许直接访问内存,在操作的时候,操作的是对象的引用

 

 

 

 

 

存储的位置
  基本类型  引用类型

 保存在栈区

引用存放在栈区,实际对象保存在堆区

 



















由上图可以看出当声明了一个引用变量,在堆内存中就有了一个专属的位置,除非是复制的,否则不可能相等,有以下代码为证:

console.log({}=={});//false

console.log([]==[]);//false


3.primitive (primitive value, primitive data type) is data that is not an object and has no methods.

这句话是从MDN上摘下来的,意思是原始数据类型不是引用类型(如果翻译成不是一个对象,你觉得对吗)且没有方法;


symbol类型

var a1 = Symbol('a')
var a2 = Symbol('a')
a1 !== a2 // true

可以记一句话:

Symbol 生成一个全局唯一的值。


 MDN上关于symbol的解释  :  https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值