JavaScript高级教程
2022-05-05 本文已影响0人
WebGiser
数据类型
基本(值)类型
- String:任意字符串
- Number:任意数字
- boolean:true/false
- undefined:undefined
- null:null
对象(引用)类型
- Object:任意对象
- Function:一种特别的对象(可以执行)
- Array:一种特别的对象(数值下标,内部数据是有序)
类型判断
- typeof:返回数据类型的字符串表达。可以判断 undefined、数值、字符串、布尔值,不能区别 null与object、object与array
- instanceof:判断对象的具体类型,实例属于哪种类型
- ===:判断 undefined、null
问题
- null与undefined的区别
undefined代表定义了但未赋值,null代表定义并赋值了,只是值是null。 - 什么时候给变量赋值为null?
1、变量初始赋值,表明变量将要赋值为对象;
2、结束前,让对象成为垃圾对象(被垃圾回收器回收)
var b = {"name": "tom"}
// 当对象成为垃圾对象(没有变量引用它),会被浏览器垃圾回收器回收
b = null;
- 严格区分变量类型与数据类型
1、数据类型:基本类型、对象类型
2、变量类型:变量内存值的类型,基本类型:保存的是基本类型的值,引用类型:保存的是内存地址值。
数据、内存、变量
数据
存储在内存中的代表特定信息的‘东东’,本质是 010101。。。
内存
内存条通电后产生的可存储数据的空间(临时的)
内存产生和死亡:内存条(电路板)==》通电==》产生存储空间==》存储数据==》处理数据==》断电==》内存空间和数据都消失
内存分类:堆(对象)、栈(全局/局部变量)
变量
可变化的量,由变量名和变量值组成,每个变量都对应一小块内存。变量是内存的标识。
变量名用来查找对应的内存。变量值就是内存中存储的数据。
函数参数传递
- JS的传参只有值传递,所谓的引用传递本质就是值传递。
- 值传递是单向的。
- 内置基本类型做为实参时,不能通过形参改变实参的数值。
- 引用类型做为实参时,可以通过形参改变实参所指向空间的值。