2.js的数据类型(海文老师)
原始值
- 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
浙公网安备 33010602011771号