[书]读《js设计模式》

作者:bibodeng 发布于:2013-11-29 11:17 Friday 分类:web开发

读《js设计模式》

by bibodeng 2013-11-29

迫切的需求

接触前端大概一年了,由于许多深入的东西都不懂,所以做不出高级的东西。对于稍微复杂一点的需求,都觉得难以下手。于是意识到了要学学设计模式了,所以就翻开(准确来说是点开了)这本《javascript设计模式》。由于有了js的基础,在读了《js编程精粹》之后,对于这门语言有了喜爱和习惯,于是这...

阅读全文>>

标签: web js 继承 笔记 设计模式

评论(0) 引用(1) 浏览(1705)

[读书] javascript: the good part 读书笔记

作者:bibodeng 发布于:2013-9-16 22:49 Monday 分类:web开发

javascript: the good part 读书笔记

对象的声明方式

var obj = { firstname : 'bibo', lastname: 'deng' }

var obj = { "firstname": 'bibo', "lastname": 'deng' }

访问的方...< 0 ? 'ceiling' : 'floor'](this); // 又见到了这个表达 floor(-2.3)是等于-3的 });

必须使用prototype来进行扩展。

作用域

C语言类似的可以保持block范围作用域,用花括号括起来的部分,除了这个范围,就不能使用了。javascript却不支持块作用域,却会覆盖外层作用域的声明,但是它支持函数作用域,也就是离开了当前函数,外面就不能访问函数内部定义的数据了。所以javascript中的应用,一般是要用到就先在最前面声明好。

闭包

< str1 则返回负数,比较规则字母序 - str.match(regexp) 做匹配,结果与regexp.exec(str)一样,如果有g则返回一组匹配值,但是不会返回分组 - str.replace(val-old, val-new) 替换字符内的字符,就像编辑器的替换一样,可以使用全局的regexp,这样可以替换所有匹配的值, val-new中$有特殊含义

><10; i++)
        {
            var name = 'aa';
            sum += i;
        }
        console.log(sum, name);
        //输出 45 "aa"
}


if (my_value && typeof my_value === 'object') { 
    // my_value is an object or an array! 
}
因为typeof null是 object, 但是可以用 my_value是否为假来加以判断

不要依赖js自动帮你加分号

减少全局变量的使用,它会搞乱变量的关系,我自己在开发中也遇到这样的问题

parseInt("08", 10) 应该提供第二个参数指定进制  

NaN 是一个number,不等于任何数,包括它自身的number,这是有多纠结呢,用isNaN(NaN)来判断  

isFinite() 接受所有不是NaN, Infinity的数字

if (my_value && typeof my_value === 'object' && 
    my_value.constructor === Array) { 
    // 判断是否是数组
}

蛋疼的类型判断(typeof):

Value     |    Type
--------------------
0         |    Number
NaN       |   (not a number)    Number
''        |   (empty string)    String
false     |    Boolean
null      |    Object
undefined |    Undefined

使用=== 和 !== 类型要相同才能比较

>

阅读全文>>

标签: javascript the good part note 笔记

评论(0) 引用(4) 浏览(1939)

Powered by emlog 京ICP备16017775