函数与作用域

1、函数声明和函数表达式有什么区别

函数声明:使用function关键字可以声明一个函数,声明不必放到调用的前面
//函数声明
function sayHello(){
console.log('hello')
}
//函数调用
sayHello()

函数表达式:声明必须放到调用的前面
var sayHello = function(){
console.log('hello');
}
sayHello()

2、什么是变量的声明前置?什么是函数的声明前置

函数声明前置:函数的声明会被提升到当前作用域的最前面,所以在该作用域的任何地方都能调用该函数

图片.png

3、arguments 是什么

在函数内部,你可以使用arguments对象获取到该函数的所有传入参数

图片.png

4、函数的“重载” 怎么实现

可以在函数体针对不同的参数调用执行相应的逻辑


图片.png

5、立即执行函数表达式是什么?有什么作用

立即执行函数能够立即执行,这样可以做到隔离作用域,避免变量污染全局。

图片.png

6、求n!,用递归来实现

图片.png

7、以下代码输出什么?

图片.png
图片.png

8、写一个函数,返回参数的平方和?

图片.png

9、 如下代码的输出?为什么

图片.png

10、如下代码的输出?为什么

图片.png

11、如下代码输出什么? 写出作用域链查找过程伪代码

图片.png
图片.png

输出10

12、如下代码输出什么? 写出作用域链查找过程伪代码

图片.png
图片.png

输出30

13、以下代码输出什么? 写出作用域链的查找过程伪代码

图片.png
图片.png

输出30

14、以下代码输出什么? 写出作用域链查找过程伪代码

图片.png
图片.png

输出undefined 5 1 6 20 200

推荐阅读更多精彩内容

  • 1. 函数声明和函数表达式有什么区别 ECMAScript规定了三种声明函数方式 构造函数首先函数也是对象的一种,...
    QQQQQCY阅读 7评论 0 0
  • 1. 函数声明和函数表达式有什么区别 使用function关键字声明一个函数时,声明不必放到调用的前面。//函数声...
    _李祺阅读 41评论 0 0
  • 1.函数声明和函数表达式有什么区别 函数声明:使用function关键字声明函数,声明不必放到调用的前面函数声明在...
    BAWScipes阅读 40评论 0 0
  • 无聊时画一画,虽然不咋样,但总比玩手机好
    TXT桃阅读 43评论 3 3
  • 不喜欢我的 这多么正常 我没有给你脸 也没讨你欢喜 你当然不喜欢 所以 要说不喜欢 也是我不喜欢你在先 然则 拜谢...
    清净独觉阅读 128评论 0 23