1. 函数声明和函数表达式有什么区别
- 函数声明就是定义一个函数,如以下例子
function text(){ //函数声明 console.log(1); }
- 函数表达式就是让变量等于一个函数,也具有声明函数的作用(因此后面要加分号),如
var a =function text() { console.log(1); };
- 区别在于:虽然两者都有声明函数的作用,但是函数声明能使整个函数提升(就是能在全局任何时候调用函数),但是函数表达式只让变量提前,只起到变量提升的作用,必须等到解析器执行到他所在的代码才会被真正执行(就是倘若在表达式之前调用函数,会发生错误,只能在表达式之后调用函数)
2.什么是变量的声明前置?什么是函数的声明前置
- 变量的声明前置就是把变量(var a不是var a =3//a=3并没有提升)提升到前面(最前面)
- 函数的声明前置把函数提升到前面(函数表达式并不可以)
3.arguments 是什么
在函数内部,你可以使用arguments对象获取到该函数的所有传入参数,能展示数组的实参是什么(形参不可以)
arguments实现.png4.函数的重载怎样实现?
JavaScript并没有重载的功能,因此可以通过arguments实现
arguments重载.png5.立即执行函数表达式是什么?有什么作用?
- 立即执行函数表达式(Immediately-Invoked Function Expression),是将函数定义放在一个圆括号里,让JavaScript引擎将其理解为一个表达式,再在函数的定义后面加一个(),以达到定义函数后立即调用该函数的效果。
(function fn(){}())
- 作用就是立即执行函数表达式并不会改变全局变量(**通常是用来立刻调用
![Uploading 作用域链展示_922803.png . . .]
函数得出结果)- 定义的变量只是局部变量
- 可以将独立的功能封装在自包含模块中。
6..什么是函数的作用域链
- 作用域:作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。
例子如下:
作用域链展示.pngJavaScript 开发进阶:理解 JavaScript 作用域和作用域链
代码
1
task-1.png
网友评论