JavaScript中var变量引用function与直接声明function

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中var变量引用function与直接声明function相关的知识,希望对你有一定的参考价值。

今天在h5开发app的过程中遇到了一个js问题,function的执行问题

在js中声明函数function有这两种方法

var A=function(){...}

或者

function A(){...}

第一种称之为变量引用函数,因为js允许函数作为一个值传递给变量,第二种是直接声明式函数

一直以为这两种没什么区别,然而,今天在使用过程中发现,当我使用第一种方式声明function的时候,如果如下这样:

document.getElementById("xx").addEventListener("tap", A);var A=function(){...}//点击tap时并不会执行A

原因很简单,如果使用第一种方法,即函数作为值赋给变量A,必须先声明A,并且赋值,一个基本的编程常识没有声明过的变量不能使用(内存中根本不存在),变量声明必须在使用之前,实例中addEventListener根本得不到A!

然而话说回来,如果是第二种方法,即直接声明函数的方法,那么浏览器在获取DOM结束之后,function就已经在那里了,可调用

var 变量= 方式定义的函数,不能先调用函数,后声明,只能先声明函数,然后调用。

function方式定义函数可以先调用,后声明。


以上是关于JavaScript中var变量引用function与直接声明function的主要内容,如果未能解决你的问题,请参考以下文章

ES6——块级作用域

javascript中i++与++i

(转)常用的js设计模式

JavaScript基础知识(变量/引用/转换/函数)

javascript的基础知识

在JavaScript中引用类型和值类型的区别