我在Twitter的JS文件中找到了以下代码段.我想知道他们为什么需要调用hasOwnProperty函数看到dict有key财产?for循环正在为'dict'中的每个'key'运行,这意味着'dict'有'key',我错过了一个点吗?
function forEach(dict, f) {
for (key in dict) {
if (dict.hasOwnProperty(key))
f(key, dict[key]);
}
}
Run Code Online (Sandbox Code Playgroud) 你能解释一下为什么第二次调用fn会出错吗?代码如下.
function Test(n) {
this.test = n;
var bob = function (n) {
this.test = n;
};
this.fn = function (n) {
bob(n);
console.log(this.test);
};
}
var test = new Test(5);
test.fn(1); // returns 5
test.fn(2); // returns TypeError: 'undefined' is not a function
Run Code Online (Sandbox Code Playgroud)
这是一个重现错误http://jsfiddle.net/KjkQ2/的JSfiddle
我一直在努力理解Javascript的平等性.你能告诉我为什么以下一行返回false?
alert((function a(){}) == (function a(){})) // false
Run Code Online (Sandbox Code Playgroud)
但是你可以从下面的例子中看到<返回false但是<=返回true,这意味着==应该返回,true但它是false.你知道吗,为什么?
alert((function a(){}) < (function a(){})) // false
alert((function a(){}) > (function a(){})) // false
alert((function a(){}) <= (function a(){})) // true
alert((function a(){}) >= (function a(){})) // true
Run Code Online (Sandbox Code Playgroud) 虽然第二行和第三行工作正常但为什么下面的第一行会出错?
1.toString(); // SyntaxError
(1).toString(); // OK
1['toString'](); // OK
Run Code Online (Sandbox Code Playgroud) 我一直在寻找underscore.js库函数,我注意到一个函数返回元素是否是一个DOM元素.功能如下.
_.isElement = function(obj) {
return !!(obj && obj.nodeType == 1);
};
Run Code Online (Sandbox Code Playgroud)
你能告诉我为什么!!要用而不是回来(obj && obj.nodeType == 1).我想知道是否!!增加了任何性能改进.任何的想法...