什么是声明,什么是定义?函数
var:例如咱们创建一个
var a = 10;
var a;这就是声明
a = 10;这就是定义
var 在最开始执行时只会声明,但不会定义,而赋予的默认值则会是undefined,简单来说就是说会记住
a,可是a是什么并不会记住,因此默认是undefined。
function:咱们创建一个函数
function f(){
console.log(666)
}
f()
function 声明的函数在代码执行以前早就已经存在了因此在整个js的任意位置均可以执行。
复制代码
用 var 和 function 都创建一个函数,在他们上面输出:
复制代码
咱们刚才说了 function 即声明又定义可是在{}块级做用域中 只声明不定义,声明不定义 给的默认值都是undefined。spa
通常会出如今 for、if.....这些块级做用域中
例如:
console.log(f)
for(var i=0;i<3;i++){
function f(){
}
}
复制代码
结果是undefined,在块级做用域中只声明不定义,一样在条件句中的代码也会进行变量提高 无论条件是否成立对于
带function 的变量这时也只有声明没有定义。
复制代码