没有操作的JavaScript约定是什么?
passfunction() {},它只调用上面的空函数.$.noop()或者值是否可以接受false? 在上下文中...所有这些工作都没有在Chrome中引发错误:
var a = 2;
(a === 1) ? alert(1) : function() {};
(a === 1) ? alert(1) : $.noop();
(a === 1) ? alert(1) : false;
(a === 1) ? alert(1) : 0;
Run Code Online (Sandbox Code Playgroud)
编辑:很多人回答说,"不要这样做!改变代码结构!" 这让我想起了有人问如何嗅探浏览器的帖子.他接到一连串的帖子说:"不要这样做!它是邪恶的",但没有人告诉他如何嗅探浏览器.这不是代码审查.想象一下,您正在处理无法更改的遗留代码,如果没有传入某些函数,它将丢失一个错误.或者,简单地说,这就是客户想要的方式,他们付钱给我.所以,请尊重,请回答这个问题:在JavaScript中指定"无操作"功能的最佳方法是什么?
编辑2:其中一个怎么样?
true;
false;
0;
1;
null;
Run Code Online (Sandbox Code Playgroud) 可以typeof用来确定值是原始的还是盒装的.
考虑:
typeof "foo"; // "string"
typeof new String("foo"); // "object"
Run Code Online (Sandbox Code Playgroud)
结合Object.prototype.toString我们可以定义以下两个函数
var toString = Object.prototype.toString;
var is_primitive_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "string";
};
var is_boxed_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "object";
};
Run Code Online (Sandbox Code Playgroud)
是否有任何使用情况下这两个功能呢?(或者类似的功能Number,Boolean等等).
我们是否应该关心我们拥有的价值是原始的还是盒装的?
我正在使用jQuery插件,它从网址获取数据,提取,计算和写入一些数据div.
我希望将这些div内容复制到另一个div,当这些功能完成它的工作时.
例如:
$("#div1").myfunction(); // it gets and calculates data and adds to #div1 . it needs 2-3 seconds to be done
var contents = $("#div1").html(); // when myfunction() done, copy contents
$("#div2").html(contents);
Run Code Online (Sandbox Code Playgroud)
当我运行该代码时,我没有新的内容#div2.
有没有办法在Javascript中将匿名函数作为自定义回调函数传递?我有这个代码:
function notifyme(msg){
console.log(msg)
}
notifyme("msg", function(){
//do some custom redirect logic
});
Run Code Online (Sandbox Code Playgroud)
我正在尝试上面的代码,它正在执行notifyme函数,但没有进一步使用重定向代码.我知道我可以将函数名称作为回调传递,但是我没有可以通过的特定函数.这就是为什么他们发明了我猜的匿名函数.
如果有办法做到这一点真的很好.
我编写了一个函数,它有3个参数,其中一个是回调函数.如何在不使用回调参数的情况下编写另一个函数的情况下,如何使回调成为可选参数?
function myFunction(arg1, arg2, callback){
// do something
// callback() if it has been passed
}
Run Code Online (Sandbox Code Playgroud)