关于函数定义
函数分为:定义式函数和赋值式函数
对于定义式函数,js引擎在加载过程中,会进行预处理,赋值式函数则是调用时才进行处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15// 定义式函数
Fn1()
function Fn1(){
alert("Hello World!")
}
// 执行正常 因为已经进行了预处理
// ********************************
// 赋值式函数
Fn2()
var Fn2 = function(){
alert("Hello wild!")
}
// 报错 Fn2 is not a function 浏览器未对Fn2进行预处理,依序执行,所以报错Fn2未定义注意
重复定义函数会覆盖前面的定义
关于变量声明
通过var关键字进行声明的变量会与作用域关联,而不通过var关键字声明,直接赋值,则只是给全局对象动态添加属性
通过var关键字声明的变量不能通过 delete 删除,没有使用var的可以通过 delete 删除
(var关键字声明的变量实际上是全局对象的不可配置属性)重复定义变量,会先查找定义域中是否已经定义该变量,若有,则进行值覆盖,若没有,则进行定义并赋值