学习 《JavaScript DOM编程艺术 第2版》(中文)时候遇到的问题
links[i].onclick = function() {
return !showPic(this); // showPic(this) ? false : true
}
我自己试了试,两者结果一样,这两种方法在执行效率上有什么区别吗?
学习 《JavaScript DOM编程艺术 第2版》(中文)时候遇到的问题
links[i].onclick = function() {
return !showPic(this); // showPic(this) ? false : true
}
我自己试了试,两者结果一样,这两种方法在执行效率上有什么区别吗?
额,这点写法上的不同,实际运行中根本无需care,一般解释器都会帮你做优化的。像三目运算符这种常用的语法糖,如果会引起额外的副作用,各种教科书早就在介绍它的时候把它批判一番。
何况在这个业务场景下,函数更不会同时被调用个几万次,在这种程度下,两者几乎可以看作是相同开销的。
所以放心用好了。
作为程序员,你更需要关心的是: 这段代码,哪一种写法 可读性 更高。
当然,明显前者比后者的可读性要更高。
如果showPic
并没有被复用,只在这里先执行,再返回值做判断的话,建议把回调写成
function () {
return hidePic(this)
}
语义会更清晰一些。
当然在这个代码中,onClick以后,并没有后续的操作来接收return后的返回值吧,所以甚至连return都可以不加?
function () {
showPic(this)
}
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
这两种方式都是使用最基本的操作符,效率应该是一样的。
写了一段脚本实测了一下:
Result:
两种方式分别运行了十亿此,使用了2000ms,也就是分别跑了2秒钟时间。
效率一样。