关于 JS-函数

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

  • 函数声明就是定义一个函数,如以下例子

function text(){ //函数声明 console.log(1); }

  • 函数表达式就是让变量等于一个函数,也具有声明函数的作用(因此后面要加分号),如

var a =function text() { console.log(1); };

  • 区别在于:虽然两者都有声明函数的作用,但是函数声明能使整个函数提升(就是能在全局任何时候调用函数),但是函数表达式只让变量提前,只起到变量提升的作用,必须等到解析器执行到他所在的代码才会被真正执行(就是倘若在表达式之前调用函数,会发生错误,只能在表达式之后调用函数)
函数表达式前调用函数.png
函数表达式后调用函数.png

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

  • 变量的声明前置就是把变量(var a不是var a =3//a=3并没有提升)提升到前面(最前面)
  • 函数的声明前置把函数提升到前面(函数表达式并不可以)

3.arguments 是什么

在函数内部,你可以使用arguments对象获取到该函数的所有传入参数,能展示数组的实参是什么(形参不可以)

arguments实现.png

参考:JavaScript arguments对象

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

JavaScript并没有重载的功能,因此可以通过arguments实现

arguments重载.png

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

  • 立即执行函数表达式(Immediately-Invoked Function Expression),是将函数定义放在一个圆括号里,让JavaScript引擎将其理解为一个表达式,再在函数的定义后面加一个(),以达到定义函数后立即调用该函数的效果。
  • (function fn(){}())
  • 作用就是立即执行函数表达式并不会改变全局变量(**通常是用来立刻调用
    ![Uploading 作用域链展示_922803.png . . .]
    函数得出结果)
    • 定义的变量只是局部变量
  • 可以将独立的功能封装在自包含模块中。

6..什么是函数的作用域链

  • 作用域:作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。

例子如下:

作用域链展示.png

JavaScript 开发进阶:理解 JavaScript 作用域和作用域链


代码

1


task-1.png
task-2.png
task-3.png
task-4.png
task-5.png
task-6.png
task-7.png
task-8.png
task-9.png
task10.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数声明和函数表达式有什么区别 函数声明 函数表达式 函数表达式将一个函数声明赋值给一个变量。两者有一个明显的区别...
    尹萨萨阅读 276评论 0 0
  • 之前学习JS的变量声明前置和函数声明的相关内容时,忘记讨论一个互相影响的问题了,这里特地补充一下。 即JavaSc...
    DHFE阅读 1,380评论 0 2
  • 1. 函数声明和函数表达式有什么区别 (*) 函数在JS中有三种方式来定义:函数声明(function decla...
    进击的阿群阅读 453评论 0 1
  • 函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。 概述 函数的声明 JavaSc...
    oWSQo阅读 1,283评论 0 4
  • 参考文章:函数 1.概述 1.1函数的声明 JavaScript 有三种声明函数的方法。 (1)function ...
    chrisghb阅读 1,200评论 0 0