2018年3月21日学习笔记

ARM 106浏览

    昨天理解了变量提升跟函数提升的概念。今天抽时间特意写下来把自己理解的内容梳理整合。

   1、变量提升

所有的变量声明都会被提升到代码顶部。

比如

x=2;

console.log(x);

var x;

会被js解析为 

var x;

x=2;

console.log(x);//2

2、函数提升

函数是一等公民,JavaScript中头等舱的存在。优先级大于变量提升。

比如

var a = 2;

function a(){

console.log(typeof(a));  // a is not a function

}

a(); // a is not a function  因为函数提升 代码被解析为 var a = 2;给a赋值为2 是一个number类型。

var a = function(){

console.log(typeof(a)); 

}

var a =2;

a();