最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

区别JavaScript函数声明与变量声明

来源:懂视网 责编:小采 时间:2020-11-27 22:07:47
文档

区别JavaScript函数声明与变量声明

区别JavaScript函数声明与变量声明:今天,又由一到题目引发了一场我跟JS基础的较量:首先是 var getName = function(){alert(1)}; function getName(){alert(2)}; getName();// 1 or function getName(){alert(2)}; var getName = function(
推荐度:
导读区别JavaScript函数声明与变量声明:今天,又由一到题目引发了一场我跟JS基础的较量:首先是 var getName = function(){alert(1)}; function getName(){alert(2)}; getName();// 1 or function getName(){alert(2)}; var getName = function(

今天,又由一到题目引发了一场我跟JS基础的较量:首先是

var getName = function(){alert(1)};
function getName(){alert(2)};
getName();// 1

or

function getName(){alert(2)};
var getName = function(){alert(1)};
 
getName();// 1

为什么我调换声明顺序,结果还是输出以 var 形式声明的函数的值?

有人回答我说 "啊,变量提升呀...",我最开始的理解,就算变量提升,第一种情况提升之后,应该是这样啊:

var getName;
getName = function(){alert(1)};
function getName(){alert(2)};

最后应该输出 2 才对啊(很理直气壮)。

殊不知不只有var声明才会提前,以function fn(){}这种形式声明的函数,会被提升到作用域的最最顶部,然后再是变量的提升。
具体请看下面例子:

fn();//Uncaught TypeError: fn is not a function
var fn = function(){console.log(1)};

but

fn();//2
var fn = function(){console.log(1)};
function fn(){console.log(2)}

足以说明函数提升的更凶一些。

文档

区别JavaScript函数声明与变量声明

区别JavaScript函数声明与变量声明:今天,又由一到题目引发了一场我跟JS基础的较量:首先是 var getName = function(){alert(1)}; function getName(){alert(2)}; getName();// 1 or function getName(){alert(2)}; var getName = function(
推荐度:
标签: 区别 js 声明
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top