变量作用域(重点)
- 什么是作用域,就是一个变量可以生效的范围
- 变量不是在所有地方都可以使用的,而这个变量的使用范围就是作用域
全局作用域
- 全局作用域是最大的作用域
- 在全局作用域中定义的变量可以在任何地方使用
- 页面打开的时候,浏览器会自动给我们生成一个全局作用域 window
- 这个作用域会一直存在,直到页面关闭就销毁了
局部作用域
- 局部作用域就是在全局作用域下面又开辟出来的一个相对小一些的作用域
- 在局部作用域中定义的变量只能在这个局部作用域内部使用
- 在 JS 中只有函数能生成一个局部作用域,别的都不行
- 每一个函数,都是一个局部作用域
变量使用规则(重点)
- 有了作用域以后,变量就有了使用范围,也就有了使用规则
- 变量使用规则分为两种,访问规则 和 赋值规则
访问规则即获取变量值规则
赋值规则
作用域链
- 变量访问或赋值时,先在自己的作用域查找,如果没找到,再一层一层向上查找,至到最外层全局作用域。这种层层查找关系,叫作用域链
递归函数
- 函数定义好之后,不能自已执行,需要使用函数调用语句调用才会执行,函数调用语句一般写在函数体外面,但如果将函数调用语句写在函数体中,也就是在一个函数内部,调用自己,这种函数称为递归函数:
- 上面递归函数 一旦执行,会循环往复,没有止尽。需要给递归函数设置递归结束条件。 不然就是一个没有尽头的递归函数,我们叫做 死递归
- 运行原理
递归实现(重点)
- 解决问题: 后面的结果,是由前面推导的
实现递归
1. 函数自身调用自身
function fn(){
fn()
}
2. 结束递归条件
function fn(n){
if(n == 1){
return 1
}
}
3. 前后关系,后面结果与前面值关系
例如:
1 + 2 + 3 + 4 + 5 = ?
f(5) = f(4)+5↑
=> f(3)+4↑
=> f(2)+3 ↑
=> f(1)+2 ↑
1 ↑
f(n) = f(n-1) + n
简单了解对象
- 对象引入
现实生活
对象
=> 具体一个事物
张三 李四
x100手机 pm001手机
区别:
行为 特征
软件世界
对象
特征: 属性
行为: 方法
- 简单对象创建方式 两种
- 访问对象属性
对象.属性名
var obj = {name:'jack'}
obj.name