随笔分类 -  javascript best practice

JS最佳实践
摘要:JS模块化和闭包 js最初作为一个在浏览器中运行的脚本语言,设计的目标是用来给html增加交互行为,早期的网站都是在服务器端生成并返回给浏览器,js也只对单独的一个html进行操作,所以模块化并没有在早期的JS中得到很好的考虑,随着浏览器js引擎越发的快速,现在已经有很多前端框架,并不依赖与服务器生 阅读全文
posted @ 2016-02-22 16:30 Xiaohu1986 阅读(2946) 评论(0) 推荐(0)
摘要:JS红色警戒 JS有很多让人迷惑的地方,一起来看看吧。 with with可以扩展作用域链,建议永远不要使用它。我们来看看这些列子。 案例1 正常用法 看起来很方便的样子。 with让阅读代码的人很疯狂 看看下面的代码 我们运行一下就知道,两个变量变成了全局变量。 案例2 正常用法 with让阅读代 阅读全文
posted @ 2016-02-22 14:35 Xiaohu1986 阅读(429) 评论(0) 推荐(0)
摘要:异常处理 JS语言和大部分语言一样,有异常处理。但是JS中的异常处理和编译性的语言有一些差别。要弄清楚这个差别,我们要分清楚JS中的语法错误和运行时错误。 语法错误 语法错误不会通过解析器,他会被标记为非法的JS并报告在控制台中。 看一下这个代码,却少右括号,所以是一个语法错误。控制台会打印出 Un 阅读全文
posted @ 2016-02-22 12:42 Xiaohu1986 阅读(823) 评论(0) 推荐(0)
摘要:JS中的比较 ==与=== ==会进行类型转换,所以结果为true 会判断内容和类型是否匹配,所以结果为 。建议都使用 ,因为 的转换并不好记忆, 可以帮助我们确保结果是我们所期望的。 instanceof 有的时候我们需要判断\n 1. 一个object是否由某个构造函数创建的(是否是某类型) 2 阅读全文
posted @ 2016-02-21 21:52 Xiaohu1986 阅读(276) 评论(0) 推荐(0)
摘要:优化JS代码性能 优化循环 我们来看一段段代码 这段代码循环footballTeam中的members数组,然后打印队员。怎么优化呢?首先footballTeam.members.length可以缓存一下,footballTeam.members[i]也可以缓存一下,看一下下面的代码就知道了。为什么 阅读全文
posted @ 2016-02-20 22:50 Xiaohu1986 阅读(490) 评论(0) 推荐(0)
摘要:switch语句的技巧 概述 switch语句对一个表达式求值,将结果与 case 子语句比较,如果匹配,则从 case 处的语句向下执行。 语法 语句是可选择的,如果遇到 则会跳出整个 语句。如果没有任何case匹配,则进入到 的分支。 分支也是可选的。 switch语句的技巧 case中使用条件 阅读全文
posted @ 2016-02-20 21:12 Xiaohu1986 阅读(670) 评论(0) 推荐(0)
摘要:逻辑运算符的使用技巧 逻辑或 Logical OR (||)语法 expr1 || expr2 返回expr1如果expr1为true;否则返回expr2。||会选择第一个(leftmost)为真的值作为结果,当找到一个真值的时候,后面的值不再计算,这叫做short circuiting 。如果没有 阅读全文
posted @ 2016-02-20 20:09 Xiaohu1986 阅读(766) 评论(0) 推荐(0)
摘要:为啥用三元操作符(ternary) condition ? expr1 : expr2 三元操作符用来简化条件判断 这个操作符可以用来代替if else条件判断。但是为什么有这个操作符呢?这里的原因是if else使用两个代码块,确只有一个会执行,在讲究的程序员看来是一种浪费。所以使用三元操作符用一 阅读全文
posted @ 2016-02-20 16:31 Xiaohu1986 阅读(1504) 评论(0) 推荐(0)