美文网首页js牛客面试题目
js中声明函数的正确方法

js中声明函数的正确方法

作者: 梁海杰_IRV | 来源:发表于2017-09-02 15:45 被阅读0次

题目:以下代码的输出结果是d
A. "number"
B. "undefined"
C. "function"
D .Error

var f = function g() {
        return 23;
    };
typeof g();
  • 实践证明:
    如果是typeof f,结果是function
    如果是typeof f(),结果是number
    如果是typeof g,结果是undefined.
    如果是typeof g(),结果是ReferenceError,g is not defined

  • 原理
    在 JS 里,声明函数只有 2 种方法:
    第 1 种: function foo(){...} (函数声明)
    第 2 种: var foo = function(){...} (等号后面必须是匿名函数,这句实质是函数表达式)

除此之外,类似于 var foo = function bar(){...} 这样的东西统一按 2 方法处理,即在函数外部无法通过 bar 访问到函数,因为这已经变成了一个表达式。

但为什么不是 "undefined"?
这里如果求 typeof g ,会返回 undefined,但求的是 g(),所以会去先去调用函数 g,这里就会直接抛出异常,所以是 Error。

相关文章

  • js中声明函数的正确方法

    题目:以下代码的输出结果是dA. "number"B. "undefined"C. "function"D .Er...

  • 2.解决js中没有函数重载问题

    在js中没有重载: 相同名称的函数,最后一次声明的函数会覆盖之前声明的函数 解决js中没有重载的问题: 1.解决参...

  • js中变量和函数声明的提升

    二 、 js中变量和函数声明的提升

  • js面试题

    1、js 数据类型 基本数据类型 引用数据类型 2、js 变量和函数声明的提升 在js中变量和函数的声明会提升到最...

  • 函数与作用域

    1.函数声明和函数表达式有什么区别?Javascript 中函数声明和函数表达式是存在区别的,函数声明在JS解析时...

  • js中函数需要注意地方的个人总结

    1.js中函数的声明有声明提升的过程,而函数表达式必须等到所在的代码行时,才会进行解析,例: 函数声明: cons...

  • 总结一下js的函数类型

    几个概念 在js中,函数就是个对象 函数名就是个指向函数对象的指针 函数的三种声明方式 函数声明 函数表达式 使用...

  • Kotlin 函数

    Kotlin中函数的使用方法 函数的语法格式: 函数声明:Kotlin中的函数声明使用关键字fun 函数名称:每一...

  • 那些年成为node攻城狮的路(七)

    函数 函数声明和函数表达式 *函数中的几个属性 arguments 在node.js中为{0:value1.......

  • 探索JS的函数表达式(你不知道的js)

    函数是js中既强大又容易令人困惑的特性,首先定义函数的方法有两种:函数声明和函数表达式 许多浏览器给函数定义了一个...

网友评论

    本文标题:js中声明函数的正确方法

    本文链接:https://www.haomeiwen.com/subject/bnkrjxtx.html