Javascript中什么是基本数据类型,什么是引用数据类型?以及各个数据类型是如何存储的?
基本数据类型:
- number 数字型
列如:66、-52、52.1、1314···等
注释:
即我们数学中学习到的数字,可以是整数、小数、正数、负数
NaN 不是一个数字,但是确实数字类型 NaN是粘性得 自己不等于自己
- string 字符串型
列如:'姬霓太美'、"18岁"、`篮球`
注释:
通过单引号('') 、双引号("")或反引号(``)包裹的数据都叫字符串,单引号和双引号没有本质上的区别,平常使用用更推荐使用单引号。
- boolean 布尔型
列如:false、true
注释:
表示肯定或否定时在计算机中对应的是布尔类型数据,它有两个固定的值 `true` 和 `false`,表示肯定的数据用 `true`,表示否定的数据用 `false`。
- undefined 未定义型
示例:
let a;
console.log(typeof a); //输出结果为undefined
注释:
声明了但是没有赋值得情况下,就属于undefined类型,undefined类型就只有一个值undefined。
- null 空类型
示例:
let obj = null
console.log("obj",obj) //输出结果为null
注释:
表示赋了值但是空的,将来会有。简单理解:你先在虽然没有对象,但你将来一定会有的。
- symbol(ES6新增)
示例:
let sy = Symbol('姬霓太美')
console.log(sy); // 输出结果 Symbol(姬霓太美)
console.log(typeof sy); // symbol
let sy1 = Symbol('姬霓太美')
console.log(sy === sy1); //结果为false
注释:
ES6引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
Symbol 函数栈不能用 new 命令,因为 Symbol 是原始数据类型,不是对象
引用数据类型
- object 对象
示例:
let obj = {
name:'姬霓太美',
age:18,
aihao:'篮球',
}
注释:
为了满足描述一个对象更加详细生动的开发需求,我们要使用到对象
对象有属性和方法组成属性:信息或叫特征(名词)方法:功能或叫行为(动词)
- function 函数
示例:函数封装的补零函数。
function padZero(n) {
if (n < 10) {
return '0' + n
} else {
return n
}
}
注释;
函数的定义:function执行特定任务的代码
使用函数的好处:代码复用,可以提高效率,减少代码的冗余。
- array 数组
示例:
let arr = [1 ,2 ,3 ,4 ,5 ]
对应的下标 0 1 2 3 4
注释:
定义:一种将一组数据存储在单个变量名下的优雅方式
元素:数组中保存的每个数据都叫数组元素
下标:数组中数据的编号(数组下标从0开始计算)
长度:数组中数据的个数,通过数组的length属性
总结
基本类型有6种:
undefined(未定义型)、null(空类型)、boolean(布尔型)、string(数字型)、number( 数字类型)、
symbol(ES6新增)
引用数据类型3种
object 对象、function 函数、array 数组、
数据类型是如何存储的?
基本数据存储:
基本数据类型存储在栈内存,存储的是值。
引用数据存储:
复杂数据类型的值存储在堆内存,地址(指向堆中的值)存储在栈内存。当我们把对象赋值给另外一个变量的时候,复制的是地址,指向同一块内存空间,当其中一个对象改变时,另一个对象也会变化。
参考代码看图理解:
示例:
let obj1 = {
age: 18
}
let obj2 = obj1
//修改赋值
obj2.age = 20
console.log(obj1.age); // 输出结果为20