项目中多余的js写法之join和||连用
来源:互联网 发布:程序员的电脑配置 编辑:程序博客网 时间:2024/05/17 20:25
先看一段代码,框里面和框外面代码有区别吗?
也就是说直接给bookHtmlStr和checkHtmlStr赋值和经过一些无意义计算再赋值有什么区别,或者说有什么优劣吗?
首先我们看以上代码执行的结果截图,再分析原因。
也就是说,以上代码执行的最终结果为:
var bookHtmlStr = "<tr><td colspan='10'>暂无数据!</td></tr>";var checkHtmlStr = "<tr><td colspan='12'>暂无数据!</td></tr>";
为什么最终结果是这样的呢?我们先看一下js中join的用法。例如:
var arr = new Array("1","2","3");document.write(arr.join("."));打印的结果为: 1.2.3
在js中||和&&的用法如下:
a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行;
a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值;
在js中,null、undefined、字符串空“”、数字0 转化boolean值时,都是为false。
知道以上的知识后,再看一下最开始的代码:
var bookHtmlArr = [];var checkHtmlArr = [];var bookHtmlStr = bookHtmlArr.join("")||"<tr><td colspan='10'>暂无数据!</td></tr>";var checkHtmlStr = checkHtmlArr.join("")||"<tr><td colspan='12'>暂无数据!</td></tr>";
这样的代码导致bookHtmlArr.join(“”)一直都是false,最后的结果一直都会返回”暂无数据!“。所以估计这段代码应该是当初写的时候从其它地方copy过来改改的。以上代码的原意是:如果bookHtmlArr为空,就把“暂无数据”赋值bookHtmlStr ,如果bookHtmlArr有值,就把bookHtmlArr赋值给bookHtmlStr 。
反思:
知其人还有知其所以然。不管以后看别人代码还是自己写代码,都尽量做到不留多余代码在项目中。
0 0
- 项目中多余的js写法之join和||连用
- C++中cin和cin.getline函数连用的问题
- C++中指针*和取地址&的连用解析
- Map和Vetcor的连用
- js中push和join
- SQL join 和 where 等多条件连用
- hql 语句:关联查询left join 和count连用
- 在sqlserver和acess的delete和update语句中使用join的不同写法
- js中join()的用法
- js中join函数和reverse函数的底层代码
- js中join函数和reverse函数的底层代码
- 以前项目中js写法3
- js中普通类和单实例类的写法
- js和java写法中this标签的误区
- React.js中ES6 和 ES5写法的一些差别
- js中时间的写法
- js 中定时器的写法
- JS中模块的写法
- Android开发笔记
- XML 和 java对象相互转换
- 动态脚本加速
- vim 多文件编辑 切换
- netty in action第二章-第一个netty程序
- 项目中多余的js写法之join和||连用
- win8下cocos2dx-3.2+VS2012环境配置及项目创建
- linux下deb包如何安装
- WIFI 基础知识
- vim Ctrl-S造成窗口僵死,按Ctrl-Q恢复。
- 友元函数以及重载函数
- cocos2dx3.3开发FlappyBird总结十一:控制层功能设计
- CentOS设置程序开机自启动的方法
- 精品js大全