《改善javascript程序的188个建议》摘抄
2014-06-05 09:20
330 查看
1:不要使用汉字命名。
2:最大限度的避免使用全局变量;使用以下方法减少全局变量污染:
使用My.work['one']['name']调用某一个变量。
3:并且尽量在函数体的顶部声明所有将要用到的变量。
4:浮点运算是不精确的,整数运算是精确的;eg: 0.1+0.2=0.3000000000000000000000004; (1+2)/10=0.3
5:检测数据类型方法,
方法一:typeof
返回number,string,boolean,object,function,undefined其中的一种,null返回object而不是null;不能够检测复杂的数据类型;
方法二:constructor属性
value.constructor,构造函数的属性值;
null和defined
数值直接量要加括号:
方法三:toString()
以字符串形式返回[object class];
5:正确使用parseInt
对parseInt加上基数参数:
6:句尾加分号;长句换行不要形成语义,避免自动加分号产生错误;
7:正确使用NaN和isFinite
NaN参与运算结果为NaN;
NaN !== NaN;
isNaN(NaN)== true;
isFinite会筛除掉NaN和无穷大;
isFinite会试图将运算数转换为数字;
使用自定义函数来判断是否为数字:
8:使用===和!==,不要使用== 和 !=
===会先判断类型是否相同,然后判断值,都相同时为true
9:不要使用++和--
10:不要信任hasOwnProperty,因为其有可能被清空;
11:避免使用eval();
12:避免使用continue;
13:switch中case记得加上break防止贯穿;
14:不要省略块标志;
15:推荐使用第二种,理解函数就是数值的概念;
16:不要使用类型构造器,也不要使用new
17:少用函数迭代;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------Chapter 1 ends-------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
18:连接字符串开销很大,尽量避免多次连接大的字符串;
19:load 会在所有内容包括图片加载完成后触发,DOMContentLoaded 在文档结构加载完毕的时候触发,比load早触发;
20:beforeunload在离开当前页面之前触发;
2:最大限度的避免使用全局变量;使用以下方法减少全局变量污染:
var My = {}; My.name = { "first-name" : " first ", "last-name" : " last " }; My.work = { number : 123, one : { name : " one ", time : "2012-9-14 12:55", city : "beijing" }, two : { name : "two", time : "2012-9-12 12:42", city : "shanghai" } };
使用My.work['one']['name']调用某一个变量。
3:并且尽量在函数体的顶部声明所有将要用到的变量。
4:浮点运算是不精确的,整数运算是精确的;eg: 0.1+0.2=0.3000000000000000000000004; (1+2)/10=0.3
5:检测数据类型方法,
方法一:typeof
返回number,string,boolean,object,function,undefined其中的一种,null返回object而不是null;不能够检测复杂的数据类型;
function type(o){ return (o===null)?"null":(typeof o); }
方法二:constructor属性
value.constructor,构造函数的属性值;
null和defined
var t=null; alert(typeof t); //object alert(t&&t.constructor); //null var m=undefined; alert(typeof m); //undefined
数值直接量要加括号:
alert((10).constructor)
方法三:toString()
以字符串形式返回[object class];
var d=new Date(); var m=Object.prototype.toString; alert(m.apply(d));
5:正确使用parseInt
parseInt('123abc'); //123 parseInt('1.23'); //1 parseInt('.123'); //NaN
对parseInt加上基数参数:
parseInt('10', [radix]); //将‘10’按照radix(进制)转换为10进制整数;
6:句尾加分号;长句换行不要形成语义,避免自动加分号产生错误;
7:正确使用NaN和isFinite
NaN参与运算结果为NaN;
NaN !== NaN;
isNaN(NaN)== true;
isFinite会筛除掉NaN和无穷大;
isFinite会试图将运算数转换为数字;
使用自定义函数来判断是否为数字:
var isNumber=function isNumber(value){ return typeof value === 'number'&&isFinite(value); }
8:使用===和!==,不要使用== 和 !=
===会先判断类型是否相同,然后判断值,都相同时为true
9:不要使用++和--
10:不要信任hasOwnProperty,因为其有可能被清空;
11:避免使用eval();
12:避免使用continue;
13:switch中case记得加上break防止贯穿;
14:不要省略块标志;
15:推荐使用第二种,理解函数就是数值的概念;
//No1 function abcd(){ alert(1); } abcd(); //No2 var f=function abc(){ alert(1); } f();
16:不要使用类型构造器,也不要使用new
17:少用函数迭代;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------Chapter 1 ends-------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
18:连接字符串开销很大,尽量避免多次连接大的字符串;
19:load 会在所有内容包括图片加载完成后触发,DOMContentLoaded 在文档结构加载完毕的时候触发,比load早触发;
20:beforeunload在离开当前页面之前触发;
相关文章推荐
- [已读]编写高质量代码 改善JavaScript程序的188个建议
- 《编写高质量代码改善JavaScript程序的188个建议》读书笔记
- 编写高质量代码:改善JavaScript程序的188个建议
- 编写高质量代码:改善JavaScript程序的188个建议
- 【笔记】改善javascript程序的188个建议27-33
- 编写高质量代码:改善JavaScript程序的188个建议
- 读《改善js程序的188个建议》
- 编写高质量代码:改善JavaScript程序建议--函数式编程
- 编写高质量代码改善Java程序的151个建议--总结摘抄
- 编写高质量代码改善Java程序的151个建议--总结摘抄
- 编写高质量代码:改善JavaScript程序建议--面向对象编程
- 编写高质量代码改善Java程序的151个建议--总结摘抄
- 编写高质量代码:改善JavaScript程序建议--面向对象编程
- 改善C#程序的建议10:用Parallel简化Task
- 【编写高质量代码:改善C++程序的150个建议 之 7】 时刻提防内存溢出
- 编写高质量代码-改善c#程序的157个建议文摘
- 编写高质量代码:改善Java程序的151个建议 勘误 [不断更新]
- 改善 C#程序的建议4:C#中标准Dispose模式的实现
- 改善C#程序的建议(强转)
- 改善C#程序的建议4:C#中标准Dispose模式的实现