一.变量作用域
指变量起作用的范围
分类:
全局作用域:整个is全局起作用
区域作用域:在函数体内起作用
作用域访问规则:(只能向上寻找,不能向下寻找)
在自己的作用域中寻找,有就使用
没有就在上一级作用域中寻找,有就使用
没有就继续向上寻找,直至到全局作用域
如果全局作用域也没有,就会报错
变量赋值规则
在自己的作用域中寻找,有就使用
没有就在上一级作用域中寻找,有就使用
没有就继续向上寻找,直至到全局作用域
如果全局作用域也没有,就会将这个变量定义为全局变量,再给他赋值
二.递归函数
函数自身调用自身,这样的函数称为递归函数
注意:必须给递归函数设置 递归结束的条件
必须给递归函数设置 改变递归条件的代码
栗子:递归-斐波那契 1, 1, 2, 3, 5, 8, 13 ... 前两项都是 1, 后面项等于前两 项之和
function fun(m){
if(m=1 ||m=2){
return 1
}
return (m-1)+(m-2)
}
fun(8)
三.对象 复杂数据类型 Object
作用: key/value --> 键/值对的集合
理解对象
现实世界 对象--〉具体的一个事物
软件世界 对象--〉Object
属性 方法
属性名:属性值构成
创建对象
var jack={} 创建空对象
var jack={
age:18,
sex:'男',
name:jack
}
访问属性的值
console.log(jack.age)
改变属性值
jack.age=20
删除属性
delete jack.name
添加属性
jack.score:98
访问属性值,属性名为变量
var _age=age
console.log(jack.['age'])
遍历对象 for in
for(var key in jack){
console.log(key,jack[key])
}
创建对象的方式
字面量方式
var jack={
age:18,
sex:'男'
}
构造函数方式
var jack=new Object() 空对象
jack.age:18,
jack.sex:'男'
四.数组 复杂数据类型 Array
作用:储存一系列有序数据的集合
创建数组
var jack=[] 空数组
var jack=[1, 10, 'name', ture, 56 ]
索引号(下标) 0 1 2 3 4
访问数组元素
cosnole.log( jack[0])
数组长度(元素个数)
length属性
jack.length
console.log(jack.length)
遍历数组 for
for(i=0;i<jack.length;i++){
console.log(jack[0])
}
创建数组方式
字面量
var jack=[] 空数组
构造函数
var jack=new Array() 空数组
var jack=new Array(10,20,30)
创建数组只有一个元素,表示创建一个空数组,长度为5 length=5
var jack=new Array(5)
console.log(jack.length)
直接打印到控制台
console.log(jack)