函数与作用域

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

  • 函数声明

    1. 函数声明必须有函数名
    2. 函数可以在任意地方调用fn();
  • 函数表达式

    1. 前后两个函数的名字可以相同也可以不相同
    2. function 后面的这个名字是可以省略的
    3. function 后面的这个名字只能再函数内部使用
    4. 函数调用只有在函数表达式声明后调用。

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

  • 变量声明前置
    JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,然后给他初始值undefined,然后才逐句执行程序,这就叫做“变量提升”,也即“变量的声明前置”。

  • 函数声明前置
    和变量的声明会前置一样,函数声明同样会前置

arguments 是什么

  • arguments 是JavaScript里的一个内置对象,有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数。object对象。

函数的"重载"怎样实现

  • js中没有重载! 同名函数会覆盖。 但可以在函数体针对不同的参数调用执行相应的逻辑

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

  • 立即执行函数表达式有多种写法:(function(){})();, 或(function(){}()); ,或!function(){}();,或void function(){}();
  • 作用:创建一个独立的作用域。这个作用域里面的变量,外面访问不到(即避免变量污染)

求n!,用递归来实现

function factor(n){
if (n == 0) {
return 1;
}
if (n > 0) {
if(n === 1) {
return 1;
}
return n * factor(n-1);
} else if (n < 0) {
if(n === -1) {
return -1;
}
return n * factor(n+1);
}
}

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

推荐阅读更多精彩内容

  • 1. 函数声明和函数表达式有什么区别 使用function关键字声明一个函数时,声明不必放到调用的前面。//函数声...
    _李祺阅读 293评论 0 0
  • 如题,本文介绍函数与作用域的相关知识 1.函数声明和函数表达式有什么区别 函数声明:使用function关键字可以...
    hahahahaqwert阅读 304评论 0 0
  • 任务 函数声明和函数表达式有什么区别答:函数声明:function functionName(){}  函数表达式...
    mhy_web阅读 425评论 0 0
  • 函数声明和函数表达式有什么区别? 函数声明和函数表达式是EMACScript规定的两种不同的声明函数的方法。1.函...
    LeeoZz阅读 365评论 0 1
  • 声明前置和作用域也是JS 部分面试常考点 1.函数声明和函数表达式有什么区别 函数声明:使用function关键字...
    湖衣阅读 220评论 0 0