认识js的声明式函数和表达式函数的区别

声明式函数:

//不能这样使用

  if(conditio){

    function sayHi(){}

  }else{

    function sayHi(){

      alert('hi');

    }

  }

表达式函数:

var sayHi;

//这样没有问题

if(conditio){

    sayHi = function(){};

  }else{

    sayHi = function(){

      alert('hi');

    };

  }

对于声明式函数,浏览器大部分会返回第二个函数,condition将会被忽略。对于表达式函数(匿名函数)则不存在该问题。这与Js的引擎有关。

原文地址:https://www.cnblogs.com/craig-yilia/p/4062674.html