资讯专栏INFORMATION COLUMN

JS中用函数声明和函数表达式两种方式创建函数的区别

liangzai_cool / 2626人阅读

摘要:在中创建函数的方式有很多种,本文主要讲解函数声明和函数表达式两种方式创建函数的区别上面是这两种方法创建函数的格式他俩的区别主要在对待对待这两种方式的处理方式上,前者看作函数,后者为变量。

在JS中创建函数的方式有很多种,本文主要讲解函数声明(function declaration)和函数表达式(function expression)两种方式创建函数的区别.

function add1(a, b) {
    return a + b;
}  //  function declaration

var add2 = function(a, b) {
    return a+b;
};  // function expression

上面是这两种方法创建函数的格式
他俩的区别主要在对待JS对待这两种方式的处理方式上,前者看作函数,后者为变量。JS在执行代码的时候,会有一个叫做Hoisting的操作,Hoisting的结果,把对那些变量和函数进行预处理,把他们放在前面了,而变量只放过去变量名,函数却都被放过去了。比如我们看下面代码来理解一下。

console.log(a);
var a = "1";
console.log(a);   //  undefined  1;

而对于函数

    console.log(a());
    function a() {
        console.log("lol");
    }
    console.log(a());  // lol  lol;

从上面可以看出,虽然变量和函数都被Hoisting,但是处理的方式却是不同的,把这个处理方式应用到上面两种函数声明上面,第一种被看过函数,第二种被看作变量,那区别就很显然了:第二种函数的声明必须在函数调用的前面,第一个则无需这样。我们再来看最后一个例子:

var result1 = add1(1, 1);
function add1(n1, n2) {
    return n1 + n2;
}

var result2 = add2(1,1)
var add2 = function(n1, n2) {
    return n1 + n2;
};
result1   // 2
result2  //  undefined

帮到你了吗?

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84336.html

相关文章

  • JavaScript—— 函数声明函数达式有什么不同吗?

    摘要:函数声明和函数表达式的区别函数声明只能出现在程序或函数体内。所以,在等语义为语句的代码块中存在函数声明,由于函数提升特性,会破坏掉原本的语义。 这篇谈一下JS函数声明与函数表达式的区别及要注意的地方: 函数声明主要有两种类型: 函数声明 function fn() {}; 函数表达式 var fn = function () {}; 这两种函数创建方式...

    FleyX 评论0 收藏0
  • Javascirpt - 理解执行上下文以及作用域链

    摘要:本文章记录本人在深入学习执行上下文以及作用域链中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。每个执行上下文都与一个作用域链关联在一起。该对象的属性的值是它被创建时的执行上下文对应的作用域链。 本文章记录本人在深入学习执行上下文以及作用域链中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。 执行上下文概念 执行上下文,是ECMAScript规法...

    e10101 评论0 收藏0
  • React 单文件组件解决方案 Omil Omi Snippets

    摘要:属性我们还可以使用来书写样式,它会自动帮我们编译为格式内容语法高亮建议使用配合该扩展支持语法高亮扩展开发项目,当然你可以把文件当作对待。 Omil 是什么? Omil是一个 webpack 的 loader,它允许你以一种名为单文件组件(SFCs)的格式撰写 Omi 组件: ${this.data.title} export default class { test(){...

    lowett 评论0 收藏0
  • 前端基础入门四(JavaScript基础)

    摘要:学习目标掌握编程的基本思维掌握编程的基本语法我们先来学习基础,后续会讲解高级。语句基本语法当循环条件为时,执行循环体,当循环条件为时,结束循环。基础语法循环体循环条件代码示例初始化变量循环体自增循环条件语句和一般用来解决无法确认次数的循环。 学习目标: 掌握编程的基本思维 掌握编程的基本语法 我们先来学习JavaScript基础,后续会讲解JavaScript高级。 重点内容 变...

    王军 评论0 收藏0
  • 前端基础入门四(JavaScript基础)

    摘要:学习目标掌握编程的基本思维掌握编程的基本语法我们先来学习基础,后续会讲解高级。语句基本语法当循环条件为时,执行循环体,当循环条件为时,结束循环。基础语法循环体循环条件代码示例初始化变量循环体自增循环条件语句和一般用来解决无法确认次数的循环。 学习目标: 掌握编程的基本思维 掌握编程的基本语法 我们先来学习JavaScript基础,后续会讲解JavaScript高级。 重点内容 变...

    SnaiLiu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<