美文网首页
js中函数声明和变量生命优先级

js中函数声明和变量生命优先级

作者: 奔跑的丸子129 | 来源:发表于2019-04-27 21:48 被阅读0次

在书籍《你不知道的JavaScript》(上卷)中写道:

"函数会首先被提升,然后才是变量"

请看以下demo:

console.log(fn);
function fn(){
  console.log("函数声明");
}
var fn="变量";

执行上面demo,输出结果为:

function fn(){
  console.log("函数声明");
}

出现这种结果的原因是执行顺序为:

function fn(){
  console.log("函数声明");
}
var fn;
console.log(fn);
fn="变量"

函数提升优先级比变量提升要高,且不会被变量声明所覆盖,但是会被变量赋值覆盖。如果在最后再加上打印就能看到函数已经被覆盖。

console.log(fn);//打印出依旧是函数
function fn(){
  console.log("函数声明");
}
var fn="变量";
console.log(fn);//"变量"

如果大家觉得该篇文章还不错,就给个小小心,谢谢!!!

相关文章

  • js中函数声明和变量生命优先级

    在书籍《你不知道的JavaScript》(上卷)中写道: "函数会首先被提升,然后才是变量" 请看以下demo: ...

  • js变量提升

    解析:js解析会将声明和赋值分为2部分:声明部分(函数声明优先级高于变量,所以先执行函数声明;已经被声明过的函数名...

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

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

  • JS笔记 命名问题

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

  • js面试题

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

  • JS变量声明和函数声明的优先级

    函数提升优先与变量提升要高,且不会被变量声明覆盖,但是会被变量赋值覆盖 .比如对上面代码进行改进 下面的一个例子 ...

  • 变量var声明和函数function声明优先级

    变量声明优先级 使用var关键字和function关键字声明的变量,会被JS的解释器优先解析执行,具有优先级 使用...

  • 闭包那点事儿

    >js变量的作用域 全局作用域(全局变量) : 在函数外面声明的变量 生命周期(变量从声明到销毁)...

  • 浏览器学习笔记-JS执行

    变量提升 变量提升原理浏览器对js是先编译后执行,在编译过程中,js中的变量声明会被提升到代码段落前面。函数声明和...

  • JS中的提升

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

网友评论

      本文标题:js中函数声明和变量生命优先级

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