汤姆大叔的深入理解JavaScript读后感一(1——16节)

今天要分享的内容是tom大叔的JavaScript系列的读书观后感

第一部分,编写高质量JavaScript代码的基本要点

内容不多,但是作为从头规范开始,值得遵循,现在看来,才更能明白里面的道理。
总结一下:

1. 避免全局变量,为啥?自己去看,以及隐式全局变量的副作用,那怎么办?命名空间
2. 推荐单一的单var形式,如  var a = 1,b = 2,myobject = {};形式
3. for循环,预存缓存变量,for-in遍历对象用hasOwnProperty,去掉原型链的属性
4. 避免使用eval,记住该咒语“eval()是魔鬼”,给setInterval(), setTimeout()和Function()构造函数传递字符串,大部分情况下,与使用eval()是类似的,因此要避免                     
5. 编码规范,缩进,空格,花括号,分号
6. 命名函数,啥时候大写,啥时候小写,推荐驼峰命名
7. 关于注解,通常,当你深入研究一个问题,你会很清楚的知道这个代码是干嘛用的,但是,当你一周之后再回来看的时候,想必也要耗掉不少脑细胞去搞明白到底怎么工作的。就是保持注释的及时更新,因为过时的注释比没有注释更加的误导人。

第二部分,揭秘命名函数表达式

总结如下:

1. 什么是申明函数?
2. 什么是表达式函数?
3. 什么是函数语句?
4. 什么是命名函数?
5. 主要是区别的地方,很细微,然后又很多浏览器的怪异行为,坑比较多
6. 还有一种函数表达式不太常见,就是被括号括住的(function foo(){}),他是表达式的原因是因为括号 ()是一个分组操作符,它的内部只能包含表达式
7. 后面的部分,如果第一次看,肯定看不懂,是啥意思,建议先忽略掉

第三部分,全面解析Module模式

总结如下:

1. 正常的module模式,缺点就是,每次都必须new,每个实例都是单独的

“`
var Calculator = function (eq) {
//这里可以声明私有成员

      var eqCtl = document.getElementById(eq);

      return {
          // 暴露公开的成员
          add: function (x, y) {
              var val = x + y;
              eqCtl.innerHTML = val;
          }
      };
  };

“`
2. 改进过后的,利用函数自执行,可以直接使用

“`
var blogModule = (function () {
var my = {}, privateName = “博客园”;

function privateAddTopic(data) {
    // 这里是内部处理代码
}

my.Name = privateName;
my.AddTopic = function (data) {
    privateAddTopic(data);
};

return my;

} ());
“`
3. 改進松耦合

“`
var blogModule = (function (my) {

// 添加一些功能   

return my;

} (blogModule || {}));
“`

   4. 克隆

“`
var blogModule = (function (old) {
var my 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值