在IT界,需要大量的 JavaScript 开发者。如果你的能力能够胜任这一角色,那么你将获得许多换工作和提高薪水的机会。但是在你被公司录取之前,你需要展现你的技术,以便通过面试环节。在这篇文章中,我会为你展示前端面试会被问到的 5 个典型问题及相关解决方法,这 5 个问题常被用来测试面试者的 JavaScript 技能。它们很有意思! 问题1: 范围(Scope)思考以下代码: (function() {
var a = b = 5;
})();
console.log(b);
控制台(console)会打印出什么? 答案上述代码会打印出5。 这个问题的陷阱就是,在立即执行函数表达式(IIFE)中,有两个命名,但是其中变量是通过关键词var来声明的。这就意味着a是这个函数的局部变量。与此相反,b是在全局作用域下的。 这个问题另一个陷阱就是,在函数中他没有使用"严格模式" ('use strict';)。如果 严格模式开启,那么代码就会报出未捕获引用错误(Uncaught ReferenceError):b没有定义。记住,严格模式要求你在需要使用全局变量时,明确地引用该变量。因此,你需要像下面这么写: (function() {
'use strict';
var a = window.b = 5;
})();
console.log(b);
问题2: 创建 “原生(native)” 方法在String对象上定义一个repeatify函数。这个函数接受一个整数参数,来明确字符串需要重复几次。这个函数要求字符串重复指定的次数。举个例子: console.log('hello'.repeatify(3));
应该打印出hellohellohello. 答案一种可能的实现如下所示: String.prototype.repeatify = String.prototype.repeatify || function(times) {
var str = '';
for (var i = 0; i |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|