1.什么是数据
- 存储在内存中代表特定信息的东西,本质上是0101、、
- 数据的特点:可传递,可运算
- 一切皆数据
- 内存中所有操作的目标:
1)算术运算
2)逻辑运算
3)赋值
2.什么是内存
- 内存条通电后产生的可存储数据的空间(临时的)
- 内存产生和死亡:内存条(电路板)=>通电=>产生内存空间=>存储数据=>处理数据=>断电=>内存空间和数据都消失
- 一块小内存的2个数据:
1)内部存储的数据
2)地址值 - 内存分类
1)栈:全局变量/局部变量
2)堆:对象
3.什么是变量
- 可变化的量,由变量名和变量值组成
- 每个变量都对应的一块小内存,变量名用来查找对应的内存,变量值就是内存中保存的数据
4.内存,数据,变量关系
- 内存是用来存储数据的空间
- 变量是内存的标识
5.关于引用变量赋值的问题
- 2个引用变量指向同一个对象,通过一个变量修改对象内部数据,另一个变量看到的是修改之后的数据
- 2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一引用变量依然指向前一个对象
问题:在js调用函数时传递变量参数时,是值传递还是引用传递
理解1:都是值(基本/地址值)传递
理解2:可能是值传递,也可能是引用传递(地址值)
问题:js引擎如何管理内存
- 内存生命周期
1)分配小内存空间,得到它的使用权
2)存储数据,可以反复进行操作
3)释放小内存空间 - 释放内存
1)局部变量:函数执行完自动释放
2)对象:成为垃圾对象==>垃圾回收器回收
6.什么是对象
- 多个数据的封装体
- 用来保存多个数据的容器
- 一个对象代表现实中的一个事物
6.1为什么要用对象
统一管理多个数据
6.2对象的组成
- 属性:属性名(字符串)和属性值(任意)组成
- 方法:一种特别的属性(属性值是函数)
6.3如何访问对象内部数据
- . 属性名:编码简单,有时不能用
- ['属性名’] :编码麻烦,能通用
问题 :什么时候必须使用['属性名’] 的方式
- 属性名包含特殊字符: - 空格
- 属性名不确定
var p={}
var propName='myAge
var value=18
//p.propName=value不能用
p[propName]=value
7.什么是函数
- 实现特定功能的n条语句的封装体
- 只有函数是可以执行的,其他类型的数据不能执行
7.1为什么要用函数
- 提高代码复用
- 便于阅读交流
7.2如何定义函数
- 函数声明
- 表达式
7.3如何调用(执行)函数
- test():直接调用
- obj.test():通过对象调用
- new test():new调用
- test.call/apply(obj):临时让test成为obj的方法进行调用
7.4什么函数才是回调函数
1.你定义的
2. 你没有调用
3. 但最终执行了
7.5常见的回调函数
- dom事件回调函数
- 定时器回调函数
- ajax请求回调函数
- 生命周期回调函数