1行动范围:范围

复制代码代码如下所示:

(函数(){())

var a = b = 5;

});

console.log(B);



什么可以在控制台上打印

回答

上面的代码将打印5。

这个问题的诀窍在于有两个变量声明,但是A是用关键字var来声明的,它代表一个函数的局部变量。

另一个窍门,这问题是,它不使用严格的模型(将严格';')。如果严格模式已启用,该代码将导致referenceerror错误:B是未定义的(b没有定义)。记住,严格的模式需要指定这样一个全局变量声明可以实现。例如,你应该写:

复制代码代码如下所示:

(函数(){())

严格使用;

var =窗口= B = 5;

});

console.log(B);



2:创建本地方法

字符串对象的定义repeatify功能。当一个整数N介绍,它返回重复n的字符串的结果。例如:

复制代码代码如下所示:

console.log(你好。repeatify(3));



的hellohellohello应该打印。

回答

一个可能的实现如下所示:

复制代码代码如下所示:

string.prototype.repeatify = string.prototype.repeatify功能(次){ | |

var=;

对于(var i = 0;i <次数;i + +){

这个=;

}

返回字符;

};



当前的问题测试了开发人员对Javascript继承和原型的知识,这也验证了开发人员是否知道它是否应该扩展内置对象(尽管这不应该做)。

这里的另一点是,您需要知道如何不覆盖已定义的函数,直到函数定义被测试时才存在。

复制代码代码如下所示:

string.prototype.repeatify = string.prototype.repeatify功能(次)| | { / *代码*这里