博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript之函数定义以及类型
阅读量:6161 次
发布时间:2019-06-21

本文共 694 字,大约阅读时间需要 2 分钟。

今天在网上做到一道面试题,代码如下:

var f = function g() {
return 23; };typeof g();

问:以上代码的输出结果是()

A “number” B “undefined” C “function” D Error

我第一反应选择的答案是A/C。然而正确答案是D

于是乎,我非常郁闷,就在自己的编译器上输入代码,亲自测试答案的正确性:

这里写图片描述

结果如下:

这里写图片描述

原来编译器真的是报错,上网查了查,才发现其中的奥秘。

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

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

好奇的我又试了试另外几个函数表达法的返回值,结果如下:

var f=function g() {
return 23;}console.log(typeof g());//errorconsole.log(typeof g);//undefinedconsole.log(typeof f);//functionconsole.log(typeof f());//number

这里写图片描述

输出如下:

这里写图片描述

由以上结果可知:typeof f 是指返回 f 的类型typeof f() 则是指返回 f() 执行结果的类型。

你可能感兴趣的文章
每天一个linux命令(19):find 命令概览
查看>>
MySQL kill操作
查看>>
windows下看端口占用
查看>>
Decommissioning a Domain Controller 降域控
查看>>
Character中的奇葩
查看>>
c++书籍推荐
查看>>
轻松监听Azure service health 状态
查看>>
获取SQL SERVER某个数据库中所有存储过程的参数
查看>>
在Linux下编译安装Apache2(2)
查看>>
Method Swizzling 处理一类简单的崩溃
查看>>
AngularJS学习!
查看>>
在Eclipse中搭建Python Django
查看>>
struts国际化
查看>>
Laravel 5.0 - Middleware (中间件)
查看>>
文件特殊权限及facl
查看>>
我的友情链接
查看>>
Android按两次返回键退出应用
查看>>
第一章:认识Redhat Linux
查看>>
文本查看指令
查看>>
我的友情链接
查看>>