主要知识点
当页面一打开js代码首先要从上到下执行,先把整个js浏览一遍,把其中带 var 和 function 的提前声明一下 var 是只声明不定义, function 而是声明定义。
什么是声明,什么是定义?
var:例如我们建立一个
var a = 10;
var a;这就是声明
a = 10;这就是定义
var 在最开始执行时只会声明,但不会定义,而赋予的默认值则会是undefined,简单来讲就是说会记住
a,但是a是什么并不会记住,所以默认是undefined。
function:我们建立一个函数
function f(){
console.log(666)
}
f()
function 声明的函数在代码执行之前早就已经存在了所以在整个js的任意位置都可以执行。
我们看一个简单的例子,来理解 var 和 function 的区别
用 var 和 function 都建立一个函数,在他们上面输出:
function的特殊情况
我们刚才说了 function 即声明又定义但是在{}块级作用域中 只声明不定义,声明不定义 给的默认值都是undefined。
一般会出现在 for、if.....这些块级作用域中
例如:
console.log(f)
for(var i=0;i<3;i++){
function f(){
}
}
结果是undefined,在块级作用域中只声明不定义,同样在条件句中的代码也会进行变量提升 不管条件是否成立对于
带function 的变量这时也只有声明没有定义。