task17

作者: 饥人谷_姜琼君 | 来源:发表于2016-11-14 18:35 被阅读0次

    **函数声明和函数表达式有什么区别 **
    函数声明: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

    相关文章

      网友评论

          本文标题:task17

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