一、object
- 遍历:
for(var key in object){
console.log(key)//key=='a'
console.log(object.[key])//[key]==['a']
}
注意,
object.key==object['key']表示的是object里面一个叫key的属性名
而object[key]表示 的是动态的key key是一个抽象的概念代表属性名
二、array
var arr-=['a','b']
arr[1]=hello
console.log(1 in arr)//这里的1是arr[1]里的1代表 索引
ps:第一句可以这么理解(不等于)
var arrObject={
0:'a',
1:'b'
}
- 遍历:
var for(key in arr){
console.log(key)
console.log(a[key])
}//good for Object
或者
for(var i=0;i<a.length;i++){
console.log(i)
console.log(a[i])
}//good for Array
for(var i=a.length-1;i>=0; i--){
console.log(i)
console.log(a[i])
}//倒序
三、function
需要注意的几点:
- JSON 是 JS 对象的子集
- var a =2 在function里 就不是全局变量
- 数组、函数是一个特殊的对象
- 函数是可以被调用的object
var f=function(a,b){xx}//函数表达式 - var function d(c,d){xx}//函数声明
- f(1,2)
- d(1,2)
- 实际参数->1,2 形式参数->a,b c,d
注意,函数表达式和函数声明的区别 函数声明可以 变量提升
- 把匿名函数里面加个名字变成具名函数 ->只是在后面的{}里面有效果
- 声明变量一定要加 var
确定传的东西是不是Function,如下;
if(!(f instanceof Function)){
console.log('f is not a function')
return
}//注意,(!...)
- 函数声明先不执行 当看到函数调用的时候 执行 并把调用的值赋给函数
- 函数能独立出一个作用域
- 函数里面可以访问函数外面(函数定义的外面不是执行的外面)
- 自执行函数: 在匿名函数声明 前加需要求值的符号(!) 后加()