JS函数

作者: StarLikeRain | 来源:发表于2016-07-19 11:09 被阅读18次

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

    ·函数声明后面没有分号,而表达式有分号。

    ·函数声明有声明前置,而函数表达式没有。

    图中只有var test2被提升了,test2(1);会报错,不是一个函数。

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

    ·什么是变量声明前置:把变量的声明(var)提到作用域的最前面。

    ·什么是函数的声明前置:就是把整个函数(function)提升到当前作用域的最前面。

    3、arguments 是什么 (*)

    arguments是一个类数组对象,可以传入function内部所有的参数(本地变量),但不是函数的属性,只在函数内部有效,写法是arguments[i]依次对参数进行访问和修改。

    4、函数的重载怎样实现 (**)

    js中没有直接的函数重载,但是可以实现类似的效果。

    ①通过传入参数实现重载

    ·通过arguments来实现重载

    console.log(sum(2,3,4));输出结果9

    ·函数覆盖重载

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

    ·立即执行函数是一个表达式,让函数在定义后就立即被执行。

    (function(){})();

    一、可以不必为函数命名,避免污染。

    二、形成了一个单独的作用域,封装起来一些外部无法读取的私有变量。

    6、什么是函数的作用域链 (****)

    作用域链是内部上下文所有变量对象(包括父变量对象)的一个列表,用来查询变量的。在代码执行的时候,所有需要用到的变量现在当前的作用域中查找,如果没有,就往上面一个作用域去寻找,一直到全局作用域的寻找,如果找到就会停止(不会理会上一级可能有的同名变量),找不到就一直往上级,直到全局作用域。如果一直找不到,就报错了。

    相关文章

      网友评论

          本文标题:JS函数

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