Javascript - 函数声明之间的区别

标签 javascript scope execution

我刚刚开始使用 Javascript 进行开发,并且一直在阅读范围和执行上下文。我想知道这之间是否有区别:

function fun1 () {
    var x = 1;

    function fun2 () {
         x = x*2;
         alert(x);
    }
}

和:

function fun1 () {
    var x = 1;
    fun2(x);
}

function fun2 (x) {
    x = x*2;
    alert(x);
}

是否有理由使用其中一种而不是另一种?它们是否有任何性能/安全影响(或对初学者 JS 开发人员有其他意想不到的影响)?

最佳答案

主要区别在于,在第一种情况下,fun2 仅在 fun1 范围内可用。在第二种情况下,这两个函数都将在其定义为的范围内可用

关于Javascript - 函数声明之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43387846/

相关文章:

c++ - boost::signals 插槽是同步调用还是异步调用?

javascript - 处理 jQuery 上的可排序列表

javascript - TypeError : Router. use() 需要一个中间件函数,但在 Function.use 处得到一个字符串

javascript - 从map.data类获取标记使用geojson谷歌地图

ruby-on-rails - 按父属性排序的 Rails 作用域顺序

database - 用于日期和时间查询的 ruby​​ on rails 范围

php - 避免PHP执行时间限制

java - Gradle 执行 Java 类(无需修改 build.gradle)

javascript - 使用 scroll-spy 更改导航栏背景类

Javascript 范围 - parent sibling