点一下看两眼,声明变量教你辩

208 阅读1分钟

主要知识点

当页面一打开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 都建立一个函数,在他们上面输出:

很明显就能看出 var 和 function 的区别,function 提前声明定义所以哪里都可以输出,而 var 则会是 undefined。

function的特殊情况

我们刚才说了 function 即声明又定义但是在{}块级作用域中 只声明不定义,声明不定义 给的默认值都是undefined。

一般会出现在 for、if.....这些块级作用域中
    例如:
            console.log(f)
            for(var i=0;i<3;i++){
            function f(){
            }
            }

结果是undefined,在块级作用域中只声明不定义,同样在条件句中的代码也会进行变量提升 不管条件是否成立对于
带function 的变量这时也只有声明没有定义。

这就是声明变量的基本内容,我也会经常更新JS其他知识概要,一起提高。