task17

**函数声明和函数表达式有什么区别 **
函数声明:function functionname(){};
函数表达式: var variable=function(){};

  1. 函数表达式可以省略标识符(函数名)。
  2. 函数声明会提升。

**什么是变量的声明前置?什么是函数的声明前置 **
console.log(i); var i=1; //得到的结果是undefined; 说明var =i 被前置到console.log(i)前。

fn(); function fn(){ console.log("我是函数的变量声明"); };//执行这段可以打印“我是函数的变量声明”,函数的声明被前置了。

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

**函数的重载怎样实现 **
js中可以用arguments参数实现类函数重载的功能。
function test1() { var text=""; for(var i=0;i<arguments.length;i++){ text+="参数"+i+":"+arguments[i]; } alert(text); }
arguments包含了传递给函数的所有参数,并且arguments.length根据实际传递参数的个数的不同而不同,arguments.length代表了实际传递给函数参数的个数。

*立即执行函数表达式是什么?有什么作用 **
立即执行函数表达式:(function(){ /
code */ })();
建立一个函数作用域,相关局部变量和参数只在函数内有效

**什么是函数的作用域链 **
JavaScript中所有的量都是存在于某一个作用域中的,除了全局作用域, 每一个作用域都是存在於某个作用域中的,在试图访问一个变量时JS引擎会从当前作用域开始向上查找直到Global全局作用域停止。
当代码在一个环境中执行时,会创建变量对象的一个作用域链,用途是保证对执行环境有权访问的所有变量和函数的有序访问。

代码题:

Paste_Image.png

function sumOfsquers() { var result=0; for(i=0;i<arguments.length;i++){ result+=arguments[i]*arguments[i]; } return result; }

console.log(a); //undefined,因为var a变量声明前置; var a = 1; console.log(b);//is not defined,因为没有b变量的声明;

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

推荐阅读更多精彩内容

  • 函数声明和函数表达式有什么区别 (*)解析器会率先读取函数声明,并使其在执行任何代码之前可以访问;函数表达式则必须...
    coolheadedY阅读 400评论 0 1
  • 三、闭包和高阶函数 3.1 闭包 3.1.1 变量的作用域 所谓变量的作用域,就是变量的有效范围。通过作用域的划分...
    梁同学de自言自语阅读 1,494评论 0 6
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,842评论 2 17
  • 弹弹play安卓版更新日志 2.3.9 (2017-08-12)修复几处可能导致崩溃的bug 2.3.8 (201...
    Swart阅读 1,373评论 0 0
  • 很久没有开口唱歌了,也忘了从小到大标签里有会唱歌这件事。听到if I ain't got you,跟着附和,对自己...
    上帝是个宇航员阅读 147评论 0 0