原始值
- number =>数字类型 1 2 3
- string =>字符串类型 “123” ” ” “”
- boolean =>布尔值 true false
- obbject =>null null
- undefined =>undefined undefined
引用值
- 普通对象/标准对象{age:18} {} 花括号
- 数组 [1,2,3] 中括号
- function(){} 函数对象
- /2/ 正则 /开始/结束
声明变量的关键字
var的作用: 声明变量
检测数据类型函数typeof
console.log(typeof 变量名)
typeof 返回的类型是字符串
< typeof typeof 2
> “string” //字符串类型的string
var a={} var b=[1,2] var c=function(){} console.log(a) //object a={name:"lion"} console.log(a.name) //"lion" console.log(typeof b) //"object" console.log(typeof a) //"object"; 字符串类型的object
var a = [1,2,3] var b = {name:"lion"} var c = function(){}; var d = /2/ var f = [a,b,c,d]; for(let i = 0; i<4;i++){ console.log(typeof f[i]); }
我们能看到输出结果
02.html:15 object 01.html:15 function 01.html:15 object
原始值和引用值的区别
原始值是存放在栈区域(stack)
引用值是存放在堆区域(heap)
在赋值的时候
原始值是赋值地址中的值
引用值方式赋值地址
var a = 2; var b = a; b = 3; console.log(a); //a = 2 var arr1 = [1,2,3]; var arr2 = arr1; arr2[0] = "lion"; console.log(arr1); //["lion",2,3]
以下有两个概念图来区别栈与堆的存储


在typeof输出的时候有两个数据类型需要注意
第一个是null,它返回的结果是”object”,但它的数据类型其实是null
第二个是function,它返回的结果是”function”,但它的数据类型其实是object