JS函数

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、什么是函数的作用域链 (****)

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

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

推荐阅读更多精彩内容

  • 函数声明和函数表达式有什么区别 (*)解析器会率先读取函数声明,并使其在执行任何代码之前可以访问;函数表达式则必须...
    coolheadedY阅读 2,972评论 0 1
  • 1. 函数声明和函数表达式有什么区别 (*) 函数在JS中有三种方式来定义:函数声明(function decla...
    进击的阿群阅读 3,188评论 0 1
  • 概念 1、函数声明和函数表达式有什么区别? ECMAScript规定了三种声明函数方式: 构造函数首先函数也是对象...
    周花花啊阅读 3,359评论 1 1
  • 1.函数声明和函数表达式有什么区别 ? 2.什么是变量的声明前置?什么是函数的声明前置 js引擎的工作方式:先解析...
    饥人谷区子铭阅读 3,180评论 0 1
  • 问答 1.函数声明和函数表达式有什么区别? 在日常的任务中,JavaScript主要使用下面两种方式创建函数: 函...
    饥人谷_任磊阅读 1,891评论 0 0