听课笔记-Douglas Crockford JavaScript Programming 3,4


The JavaScript Programming Language(3)
http://video.yahoo.com/watch/111595/1710607

The JavaScript Programming Language(4)
http://video.yahoo.com/watch/111596/1710658


1. function are first-class object


2.function foo(){} == var foo=function (){}


3.static scope ,lexical scope


4.closure : the scope that an inner function continues even after the parent functions have returned


5.every function call has a scope


6.method : function stored into object


7.four ways to call function


    7.1 function form     f(arguments)  this == global object


    7.2 method form     o.f(arguments)   this ==o


    7.3 constructor form     new f(arguments)   this == new object created


    7.4 apply form        f.apply(o,[arguments])   this ==o


8.this is bound of invocation time.


9.arguments


     9.1  调用时自动出现在该函数作用于内


      9.2 an array-like object


     9.3 length 属性 是指实际调用参数的个数


10. can argument(expand) built-in types


  

String.prototype.trim = function () {


             return this.replace(/^\s*\S*(\s+\S+)*\s*$/,'$1');


   } 

 

PS:

 

    最快的trim:  (From Steven Levithan )

 

String.prototype.trim = function (){ 
    var text = this.replace(/^\s+/, ""); 
    for (var i = text.length - 1; i >= 0; i--) { 
        if (/\S/.test(text.charAt(i))) { 
            text = text.substring(0, i + 1); 
            break; 
        } 
    } 
    return text; 
} 

 

好用简洁的trim :

 

String.prototype.trim = function (){ 
    return this.replace(/^\s+/, "").replace(/\s+$/, ""); 
} 
 

 

 

   but in java String is final ,can not be expanded


11.           


type          typeof


object           'object'

function          'function'

array           'object'

number           'number'

String           'string'

object           'object'

boolean           'boolean'

null                  'object'

undefined          'undefined'



12. eval () 不建议使用  ,除了 JSON 解析


13  avoid  new Boolean()  new Number() new String()


       new Boolean(false)  truthy


14   on browser  global object == this


window.document ==document 白白多了一层自己查看


15 .尽量不要用全局变量 ,避免冲突 ,用 对象来管理你的命名空间


16 .使用匿名函数来达到封装的目的


 var application = (function () {


    var x='';


     return function () {


                 // 对 x 的 使用 在此


       }



})();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值