关于编码常见的20个陷阱 你中枪了没?
作者:网络转载 发布时间:[ 2012/12/17 10:05:54 ] 推荐标签:
3、在for...Loops中使用hasOwnProperty()方法
JavaScript数组是没有关联的,可以把它当做哈希表,使用循环来遍历对象属性:
1.for (var prop in someObject) {
2. alert(someObject[prop]); // alert's value of property
3.}
然而,存在的问题是for...in loop是在对象属性链上遍历每个枚举类型的属性,如果你只想使用对象实际拥有的属性,这可能有问题的。那怎么解决呢?你可以使用hasOwnProperty()方法。代码如下:
1.for (var prop in someObject) {
2. if (someObject.hasOwnProperty(prop)) {
3. alert(someObject[prop]); // alert's value of property
4. }
5.}
4、比较布尔值
把布尔值作为条件进行比较,其实这是在浪费电脑的计算时间。看下面这个例子吧:
1.if (foo == true) {
2. // do something for true
3.} else {
4. // do something for false
5.}
其实foo==true这个比较完全是多余的,因为foo已经是布尔类型。直接这样写行:
1.if (foo) {
2. // do something for true
3.} else {
4. // do something for false
5.}
又或者这样写:
1.if (!foo) {
2. // do something if foo is false
3.} else {
4. // do something if foo is true
5.}
5、事件绑定
在JavaScript中,事件是个复杂的问题。事件冒泡(event bubbling)和委托正在取代内联事件(inline onclick)操作(一些特殊的“初始页”除外)。
假设你有一个图片网格,需要启动一个modal lightbox窗口。千万不要采取下面的做法,示例采用的是jQuery,如果你使用相似的库或者其他,冒泡机制也同样适合传统的JavaScript。
相关的HTML代码:
1.<div id="grid-container">
2. <a href="someimage.jpg"><img src="someimage-thumb.jpg"></a>
3. <a href="someimage.jpg"><img src="someimage-thumb.jpg"></a>
4. <a href="someimage.jpg"><img src="someimage-thumb.jpg"></a>
5. ...
6.</div>
不好的JavaScript写法:
1.$('a').on('click', function() {
2. callLightbox(this);
3.});
这段代码假设调用lightbox,里面传递一个anchor元素并且引用全屏图片。与其绑定每个anchor元素还不如直接使用#grid-container元素。
1.$("#grid-container").on("click", "a", function(event) {
2. callLightbox(event.target);
3.});
在这段代码中,this和event.target都表示anchor元素。同样你也可以在任何父元素上使用。只要保证所定义的元素是事件目标行(event's target)。
6、避免三元冗余
在JavaScript和PHP中,过度使用三元语句是很常见的事情:
1.// javascript
2.return foo.toString() !== "" ? true : false;
1.// php
2.return (something()) ? true : false;
条件判断的返回值永远只有false和true,言外之意是你无需把true和false显示添加到三元运算中。相反,你只需简单的返回条件:
1.// javascript
2.return foo.toString() !== "";
1.// php
2.return something();
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11