美文网首页
js变量声明提升与函数表达式

js变量声明提升与函数表达式

作者: JiangHaoFunc | 来源:发表于2018-08-01 16:54 被阅读8次

1.变量声明提升

js引擎会把变量声明与函数声明都提升到当前函数的顶部。eg:

console.log('x' in window);//true
var x;
x = 0;

js引擎编译为

var x;
console.log('x' in window);//true
x = 0;

2.函数表达式

对于函数的声明有
var Foo = function(){}
function Foo(){}
前者为函数表达式,后者为函数声明
js会把函数表达式拆分为两行分别执行。例如:

var x=1;
function x(){}

执行时为先把函数表达式拆分,然后变量变量提升

function x(){}
console.log(x);
x=1

相关文章

  • js变量声明提升与函数表达式

    1.变量声明提升 js引擎会把变量声明与函数声明都提升到当前函数的顶部。eg: js引擎编译为 2.函数表达式 对...

  • 闭包

    提升 1 变量提升 2 函数表达式 函数表达式的提升 === 变量提升 3 函数声明 demo 执行环境&词法作用...

  • 猫眼

    var变量提升,函数声明提升,消除变量声明提升(let); 高阶函数,函数式的编程,柯里化 原型链继承,js面向对...

  • 关于变量提升

    函数提升的优先级要高于变量提升,变量提升到函数声明的后面; 变量提升,但是赋值不提升,函数表达式不提升;

  • 函数与作用域

    函数声明和函数表达式有什么区别 函数声明会提升到当前作用于执行之前;而函数表达式提升的声明是变量的声明。 函数声明...

  • js中变量和函数声明的提升

    二 、 js中变量和函数声明的提升

  • JS中的提升

    JS中包含两种提升,变量提升和函数提升。 变量提升 变量提升只能是var或者function声明的变量或者函数,l...

  • 你不懂的js上卷(二)

    变量提升 1.先声明 后赋值2.函数声明会被提升,函数表达式却不会3.函数声明会提升到普通变量之前 4 var a...

  • JS笔记 命名问题

    JS中函数和变量重名时,后声明的覆盖先声明的,后赋值的覆盖先赋值的。 变量提升和函数提升时,变量的声明是在函数的声...

  • js面试题

    1、js 数据类型 基本数据类型 引用数据类型 2、js 变量和函数声明的提升 在js中变量和函数的声明会提升到最...

网友评论

      本文标题:js变量声明提升与函数表达式

      本文链接:https://www.haomeiwen.com/subject/iusrvftx.html