进阶任务三

2017-07-24  本文已影响0人  诺夏_

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

image.png image.png

什么是变量的声明前置?什么是函数的声明前置
JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。
JavaScript引擎将函数名视同变量名,所以采用function命令声明函数时,整个函数会像变量声明一样,被提升到代码头部。

arguments 是什么
arguments对象包含了函数运行时的所有参数,arguments[0]就是第一个参数,arguments[1]就是第二个参数,以此类推。这个对象只有在函数体内部,才可以使用。

函数的"重载"怎样实现

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

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

一是不必为函数命名,避免了污染全局变量

求n!,用递归来实现

以下代码输出什么?

屏幕快照 2017-08-04 上午8.08.05副本.png

写一个函数,返回参数的平方和?

屏幕快照 2017-07-22 下午12.26.06.png

如下代码的输出?为什么

屏幕快照 2017-08-04 上午8.16.51副本.png

因为var a=1存在变量提升,而b未定义,会报错

如下代码的输出?为什么


屏幕快照 2017-07-24 上午9.44.18.png

采用函数表达式声明函数时,不能在声明前调用,虽然声明提升,但未被赋值,所以还是会报错。

如下代码输出什么? 写出作用域链查找过程伪代码

function getInfo(name, age, sex){
        console.log('name:',name);
        console.log('age:', age);
        console.log('sex:', sex);
        console.log(arguments);
        arguments[0] = 'valley';
        console.log('name', name);
    }

    getInfo('饥人谷', 2, '男');
getInfo('小谷', 3);
getInfo('男');
上一篇 下一篇

猜你喜欢

热点阅读