美文网首页
函数和作用域

函数和作用域

作者: 向前冲冲的蜗牛 | 来源:发表于2017-09-20 12:42 被阅读0次

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

函数声明是使用function来进行声明的,可以不用在意调用函数的前后位置,是因为函数声明会前置。

而函数表达式是则是通过”=“(赋值)来声明函数,函数表达式必须放在调用函数之前。因为函数表达式是将变量提升,而不是将函数前置,而此时的变量是undefined。所以函数表达式必须在调用函数之前。

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

声明前置 会都会提升到当前作用域的顶部

var 声明的变量会前置,而function定义的函数,则会将函数的声明前置。

例如

变量的声明前置 函数的申明前置

3.arguments 是什么

arguments shi类数组的对象,用来显示所有传入函数的参数。

4.函数的"重载"怎样实现

在java或c等语言中,重载是函数名相同,而参数类型不同,从而满足相同函数不同参数对不同功能的实现。但是在js中,相同的函数会出现覆盖的问题,要实现重载,只有在函数内部实现对不同参数类型的区分,然后实现不同区分的实现。

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

立即执行函数也叫IIFE是能够立刻执行,避免了全局变量的污染,也类似的模仿出了一个块作用域,IIIFE之外的函数是无法访问IIFE函数内部的。

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

7.以下代码输出什么?

getInfo("饥人谷",2,"男");输出的是

getInfo("小谷",3);输出的是

getInfo('男')输出的是:

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

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

结果为:

因为console.log(a)在 var a=1之前,变量a提升,此时的结果为undifined.

console.log(b)是因为b没有声明,所以出现了错误。

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

结果为:hello world

               undefined 

因为函数sayName是函数声明,函数的声明会前置

sayAge是函数表达式,是将变量前置,变量前置的结果是undefined

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

结果是10

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

结果为:30

执行bar()函数的时,内部执行foo(),先从bar的执行上下文中的活动对象中查找是否有foo,barcontext.AO中有foo,进入foo的执行上下文,发现没有x,返回bar执行上下文的活动对象中中查找到有x。所以x的值为30

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

结果为30

(function(){console.log(x))()是立即执行函数表达式,会从当前的活动对象中查找x,如果没有就从bar里面找到了x,所以x为30

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

结果为:undefined ,5 ,16 ,20 ,200

相关文章

  • JavaScript 作用域和闭包理解

    作用域: 分为函数作用域,和块级作用域; 函数作用域 函数作用域外面的无法访问函数作用域内部的变量和函数,这样就可...

  • 第九天,函数作用域和声明提前

    函数作用域和函数声明提前。 函数作用域,分为全局作用域和部分作用域,在系统执行函数时会自动创建一个作用域,在执行完...

  • 闭包

    js的作用域分为全局作用域,和函数作用域, 内部作用域可以访问外部作用域的函数参数,外部不能访问内部函数的变量和参...

  • 作用域

    标识符的作用域有函数原型作用域、局部作用域(块作用域)、类作用域和 命名空间(namespace) 作用域 函数原...

  • 变量声明、声明提前和作用域

    一. 作用域 分为全局作用域和函数作用域 函数作用域简言之就是:变量在声明他们的函数体以及这个函数体嵌套的任意函数...

  • 函数作用域 | 块作用域 | 提升

    一.函数作用域和块作用域 1.1函数中的作用域 函数作用域的含义是指,属于这个函数的全部变量都可以在整个函数的范围...

  • ES6学习-块级作用域、let和const

    一、作用域  在以前的ES5中,作用域只有全局作用域和函数作用域,没有块级作用域。 在函数作用域或全局作用域中通过...

  • 函数作用域&&作用域链

    注意:函数作用域和变量作用域并不是一个概念,在学习函数作用域时可以先暂时忘记变量作用域的概念。 怎么理解函数作用域...

  • 一网打尽 JavaScript 的作用域

    JavaScript 的作用域包括:模块作用域,函数作用域,块作用域,词法作用域和全局作用域。 全局作用域 在任何...

  • JavaScript作用域分类

    JavaScript作用域分类全局作用域局部作用域函数作用域块级作用域catchwithlet 和 const 什...

网友评论

      本文标题:函数和作用域

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