首页 存档 技术 查看内容

JavaScript 面试,你怕了吗?

2018-3-30 13:00 |来自: 互联网 412 0

摘要: 每日一题: 总是放弃(打一作家名) 关注公众号“有马笔记”回复14获取答案今天分享的面试题涉及到作用域、内置方法、声明、this使用、闭包、数据类型、事件循环、算法等。 最好收藏一下,别到时候后悔莫及啊。 ...




每日一题:

总是放弃(打一作家名)

关注公众号“有马笔记”回复14获取答案


今天分享的面试题涉及到作用域、内置方法、声明、this使用、闭包、数据类型、事件循环、算法等。


最好收藏一下,别到时候后悔莫及啊。



01
class


问题1:作用域

考虑如下代码:

(function() {

var a = b = 5;

})();

console.log(b);

请问控制台上会输出什么?


答案

输出:5



这一题的陷阱是,在函数表达式中有两个赋值,但a是用关键字var 来声明的,这意味着a是局部变量,而b则被赋予为全局变量。


另一个陷阱是,它并没有使用严格模式(use strict)。在函数里面,如果启用了严格模式,代码就会报错:“Uncaught ReferenceError: b is not defined”。请记住,严格模式需要你显式地引用全局作用域,代码应该写成:

(function() {

'use strict';

var a = window.b = 5;

})();

console.log(b);




02
class


问题2:创建“内置”方法

给String对象定义一个repeatify方法。该方法接收一个整数参数,作为字符串重复的次数,最后返回重复指定次数的字符串。例如:

console.log('hello'.repeatify(3));

输出应该是:hellohellohello.


答案

一个可行的做法如下:

String.prototype.repeatify = String.prototype.repeatify || function(times) {

var str = '';

for (var i = 0; i

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部