Eloquant Javscript读书笔记

来源:互联网 发布:破解网络尖兵软件 编辑:程序博客网 时间:2024/05/18 03:56
  • Date的比较特殊之处 ==

在日期的比较中, >, < , >=, <= 都是按照所预期的正常工作,但==确实按照对象的比较来进行。就是说

var wallFall1 = new Date(1989, 10, 9),wallFall2 = new Date(1989, 10, 9);show(wallFall1.getTime() == wallFall2.getTime());
结果是false.

  • Javascript的作用域

作用域只涉及到function级的,代码块中的作用域无效。 如果在代码块中,声明私有变量,则设为其所在函数级的私有变量。

  • Array.splice vs Array.slice

Splice会修改Array的内容,而slice只是从当前数组中拷贝部分内容出来。

  • Number/Boolean/String的强制类型转化

Number(xxxx),  String(xxx), Boolean(xxx)

  •  私有函数

一般而言,函数是一级公民,但常常忽略的是函数之内还可以声明函数,即私有函数。 私有函数的使用可以提高代码本身的聚合度和整洁性。

单例模式的实现

单例模式的实现有多重方式。比如全局变量,直接对象等。如果基于闭包则会更为间接优美。 其本质是在单例函数类的对象为单例,但是提供访问单例对象的途径(对象)其本身会是多个的。

var LazySingleton = function(){    var attr = 1, fn = function(){};    var obj = {        method : function(){ fn(); },        getAttr : function(){ return attr; }    };    function init(){        return obj;    }    return {getInstace: init};}();

实现的访问方式:

LazySingleton.getInstance().method();LazySingleton.getInstance().getAttr();



原创粉丝点击