1.函数的声明有两种方法:

 //1.命名函数  函数有名字
    function testMe(){
}

//2.匿名函数  函数没有实际的名字
var a = function(){
    console.log("我是匿名函数")
}

2.自调用函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1.自调用函数的写法
(function(){

})()

2.自调用函数的作用:
开启一个新的作用域,防止变量命名污染的问题(沙箱)


3. 在自调用函数中向外部暴露信息
(function(w){
var k = "kk";
w.k = k; //一旦某个变量挂载到window对象中的时候,那么该变量就变成了全局变量
})(window)

console.log(k);


4. 自调用函数注意点
我们在写自调用函数的时候,推荐在自调用函数前面加;

;(function(){})()
;(function(){})()
;(function(){})()
console.log(box.style.width)   //box.style.xx  获取的是行内样式,如果是获取宽度指的是内容的宽度
console.log(box.style.height)

console.log(box.clientWidth);  //获取的是边框以内的宽度
console.log(box.offsetWidth);  //获取的是边框以及边框以内的宽度
console.log(box.scrollWidth);  //获取的是滚动出去的距离 + clientWidth

3.this总结:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1.	普通函数中的this    thiswindow
function a(){
console.log(this);
}
a()

2. 构造函数中this this是当前的对象
实例方法中的this this是当前对象
function Person(){
this.name =name;
this.say = function(){
console.log(this);
}
}
var p = new Person(){}
p.say();

3. Dom事件中的this this是绑定事件的那个dom对象
div.onclick = function(){
console.log(this)
}

4. 定时器中this thiswindow
setInterval(function(){
console.log(this)
},1000)