函数基础

2018-01-27  本文已影响0人  zy懒人漫游

函数声明和函数表达式的区别

虽然都可以定义函数,但最大的区别在于:
解析器会率先读取函数声明,使其在执行任何代码之前就可以访问(也就是 函数声明提升);
而函数表达式则需要解析器执行到它所在的代码行才会被解释执行。

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

arguments 是什么?

arguments 是一个类数组对象。代表传给一个function的参数列表。
arguments[0]就是第一个参数,arguments[1]就是第二个参数,以此类推。这个对象只有在函数体内部,才可以使用。

函数的重载怎样实现?

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

立即执行函数表达式:

    (function(){ /* code */ }());
   // 或者
   (function(){ /* code */ })();

通常情况下,只对匿名函数使用这种“立即执行的函数表达式”。它的目的有两个:一是不必为函数命名,避免了污染全局变量;二是IIFE内部形成了一个单独的作用域,可以封装一些外部无法读取的私有变量。

什么是函数的作用域链

作用域就是变量与函数的可访问范围,在JavaScript中,变量的作用域有全局作用域和局部作用域两种。

全局作用域:在代码中任何地方都能访问到的对象拥有全局作用域。
局部作用域:和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到。
用域链的原理是,如果变量在该作用域中没有,则它会逐级向上寻找,直至最顶层。

上一篇下一篇

猜你喜欢

热点阅读