javascript - 一个用表达式声明的函数和同名的用函数声明声明的函数 总是执行表达式
怪我咯
怪我咯 2017-04-11 12:11:48
0
4
607

var getName = function () {console.log(3)};
function getName (){console.log(4)};
getName()//3

function getName () {console.log(4)};
var getName = function (){console.log(3)};
getName() //依旧是3

怪我咯
怪我咯

走同样的路,发现不同的人生

reply all (4)
大家讲道理
var getName = function () {console.log(3)}; //[1] function getName (){console.log(4)};//[2] getName()//3 [3] function getName () {console.log(4)}; //[4] var getName = function (){console.log(3)}; //[5] getName() //依旧是3 [6]

==>

function getName (){console.log(4)};//[2] function getName () {console.log(4)}; //[4] var getName;//[1] getName = function () {console.log(3)}; //[1] getName();//3[3] //var getName = function (){console.log(3)}; //[5] getName已经声明,var getName;被忽略 getName = function (){console.log(5)};//[5] getName() //依旧是3 [6]

同名的变量名只申明一次,
变量声明和函数申明都会前提,但是函数申明比变量申明还要提前

    左手右手慢动作

    声明提升,函数声明提升优先级高于变量声明,所以你这俩例子都是先走的函数声明,再走的表达式

      阿神

      因为function声明的优先级比var声明的优先级高

        刘奇

        声明函数会进行提升,函数表达式却不会.

          Latest Downloads
          More>
          Web Effects
          Website Source Code
          Website Materials
          Front End Template
          About us Disclaimer Sitemap
          php.cn:Public welfare online PHP training,Help PHP learners grow quickly!