任务17 问答

2016-12-10  本文已影响0人  饥人谷_螃蟹

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

函数声明 function Name(){函数体}
函数表达式 var 变量=function (){};
Javascript 中函数声明和函数表达式是存在区别的,函数声明在JS解析时进行函数提升,因此在同一个作用域内,不管函数声明在哪里定义,该函数都可以进行调用。而函数表达式的值是在JS运行时确定,并且在表达式赋值完成后,该函数才能调用。

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

3.argument是什么?

argument是一个类数组的对象。可以将参数传入argument对象中,并且能调出数组的长度,以及当前函数的参数。

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

允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数必须不同。但在js中没有函数重载的概念,因为即使函数名相同,参数不同,也被认为是相同的函数。(例子1)

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

语法
(function sum(i){ })( );
(function sum(i){ }( ));
var a= function sum(i){ }( );
不必为函数命名,避免污染全局变量
函数内部形成了一个单独的作用域,可以封装一些外部无法读取的私有变量。通常只对匿名函数使用。

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

当一个函数被调用时,他先访问自身的变量,不存在时就回去访问父级函数的变量,知道访问全局变量为止。这种链式的过程称为作用于链。只能从内到外,不能从外到内。

上一篇 下一篇

猜你喜欢

热点阅读