浅析javascript中函数声明和函数表达式的区别

作者: 计算机网络技术  发布:2019-09-06

javascript中扬言函数的格局有三种:函数表明式和函数表明式.

分别如下:

1).以函数申明的法门定义的函数,函数名是必需的,而函数表明式的函数名是可选的.

2).以函数表明的格局定义的函数,函数能够在函数注脚从前调用,而函数说明式的函数只可以在宣称之后调用.

3).以函数注解的秘籍定义的函数并不是当真的宣示,它们仅仅能够出现在全局中,恐怕嵌套在其余的函数中,可是它们不可能冒出在循环,条件依旧try/catch/finally中,而

    函数表明式能够在其他地点证明.

上边分别用二种办法定义函数:

复制代码 代码如下:

 //函数评释式
 function greeting(){
       console.log("hello world"); 
 }
 //函数表明式
 var greeting = function(){
     console.log("hello world");
 }

下边三个有意思的javascript:

复制代码 代码如下:

 function f() { console.log('I am outside!'); }
 (function () {
   if(false) {
     // 重复声明一次函数f
     function f() { console.log('I am inside!'); }
   }
   f();
 }());

会输出什么吗?第一反馈应该是"I am outside"吧.  结果在chrome中输出"I am inside",IE11平素报错,firefox低一些的版本输出"I am outside"...

chrome输出的结果很明显的反响了用函数评释式表明的函数的特征--函数在表明从前就足以调用.

IE报错展现缺少对象,因为函数申明在了尺度里,违背了函数注明式的原则.

函数表明式的作用域:

假如函数表明式注脚的函数有函数名,那么那些函数名就相当于那几个函数的三个局地变量,只可以在函数内部调用,举个栗子:

复制代码 代码如下:

 var f = function fact(x) {
                 if (x <= 1)
                     return 1;
                 else
                     return x*fact(x-1);
                 };
                 alert(fact());   // Uncaught ReferenceError: fact is not defined

fact()在函数内部能够调用,在函数外界调用就能够报错:fact未定义

以上正是本文的全体内容了,希望我们可以欣赏。

您只怕感兴趣的篇章:

  • JavaScript中等高校函授数申明与函数表明式的分别详解
  • 浅谈javascript 函数表明式和函数评释的分化
  • JavaScript中等高校函授数表明式和函数表明及函数评释与函数表明式的例外
  • 详解JavaScript中的函数表明和函数表达式
  • js中等高校函授数表明与函数表明式
  • JavaScript中的函数注解和函数表达式差异浅析
  • javascript函数注脚和函数表明式差别深入分析
  • Javascript学习笔记之 函数篇(一) : 函数宣称和函数表明式
  • javascript 函数注明与函数表明式的区分介绍
  • Javascript中的函数注解与函数表明式(奇技淫巧)
  • 接头 javascript 中的函数表明式与函数注解

本文由今晚买四不像发布于计算机网络技术,转载请注明出处:浅析javascript中函数声明和函数表达式的区别

关键词:

上一篇:scope方法使用指南
下一篇:没有了