目录
前言
发现很多小伙伴对js数据类型不是很理解,在本篇文章特别进行了整理分类。
提示:以下是本篇文章正文内容,下面案例可供参考
一、简单数据类型/基本类型
简单类型又叫基本数据类型或者值类型放在栈内直接放值本身
1.Number数字类型
包含整型值和浮点型值 例如 :1 0.1
2.String 字符串型
例如:‘张三’
3.Boolean 布尔值类型
true、false
4.null
代表空,是一个空指针
扩展:为什么null是object?
null:按照万物皆对象原理null是对象,但是null( 不是对象 ) 被判断为是object类型的原因是“在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000开头代表是对象,然而null表示为全零,所以将它错误的判断为object。虽然现在的内部类型判断代码已经改变了,但是对于这个 Bug 却是一直流传下来。
5.undefined
当变量声明未赋值时,会给该变量赋值undefined。
6.symbol
ES6新增的数据类型。表示独一无二的值
二、复杂数据类型/引用类型/对象类型
复杂类型又叫做引用类型放在堆内 首先在栈内存地址 然后这个地址指向堆内的数据
1内置对象
常用内置对象:
- String(字符串对象);
- Array(数组对象);
- Date(日期对象);
- Math(数学对象);
- Number(数字对象);
- Function(函数对象);
2 宿主对象
- BOM-浏览器对象模型;
- DOM-文档对象模型;
3 自定义对象
第一种是Object形式的自定义对象
var 变量名=new Object();//对象实例(空对象)
第二种是{ }花括号形式的自定义对象
三 对象的扩展:属性和方法的分类
对象离不开属性和方法,那么属性和方法分为什么类型呢?
一:属性
1 自定义属性(own properyt)
是直接在对象中定义的属性。
2 继承属性(inherited property)
是在对象的原型对象中定义的属性
二:方法
1 静态方法
静态方法中的this指向调用它的对象,静态方法只能被类调用
2 原型方法
原型方法中的this指向实例对象,原型方法只能被实例调用
总结
引用类型值可添加属性和方法,而基本类型值则不可以。
根本区别就是在内存中的存储方式,引用类型存在栈内,基本类型存在堆内