确定申请人是否真的是专业JavaScript(浏览器方面)开发人员有哪些好问题?
可以区分某人是否是特定的JavaScript程序员,但实际上是在进行专业的JavaScript开发,面向对象,可重用和可维护的问题.
请提供答案,以便中级和临时JavaScript程序员可以采访更有经验的人,并提出很少有这些高级问题的答案.请避免公开提问.
请根据SO答案保留一个面试问题/答案,以获得更好的阅读体验和更轻松的面试准备.
谁可以在此代码中解释为什么结果为[20,20,10,10]:
var x = 10;
var foo = {
x: 20,
bar: function () {
var x = 30;
return this.x;
}
};
console.log(
foo.bar(),
(foo.bar)(),
(foo.bar = foo.bar)(),
(foo.bar, foo.bar)()
);
Run Code Online (Sandbox Code Playgroud)
欢迎链接到规范
这是我的代码:
function User(){
this.nickname='nickname';
}
User.prototype.save=function(){
dosomething();
};
User.prototype.add=function(){
navigator.geolocation.getCurrentPosition(function(positon){
this.save();
});
};
Run Code Online (Sandbox Code Playgroud)
但是this.save()错了,我想打电话给save()另一个回调.我发现这不是指向用户,我该怎么称呼save()正确?
javascript中有两种类型的范围,命名为 函数范围全局范围
现在我正在执行此代码
function abc()
{
alert(this);
}
abc();
Run Code Online (Sandbox Code Playgroud)
abc调用返回我[对象窗口]为什么?函数使另一个范围,所以它为什么代表窗口
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<body>
<script type="text/javascript" charset="utf-8">
(function(){
// this
var test=function(){
//this
return function(){
//this
};
}
(function(){
//this
var a={
p1:function(){
//this
}
};
})();
})();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)