JavaScript 开发经验点滴
一、常用资料
二、有用技巧
1. 如何获得唯一标识符(UID)
利用toString(36),将一个数字转换为36进制,也就是10个数字+26个字母uid = Number(Math.random().toString().split('.')[1]).toString(36);
2. localStorage采用[k,v]格式,仅支持字符串格式,怎么存储对象格式?
- 存储:通过
JSON.stringify()转换为序列号字符串; - 读取:通过
JSON.parse()恢复为Object或任何其它数据类型
3. 一元运算符加法 & 一元运算符减法
一元加法本质上对数字无任何影响,但对字符串却有有趣的效果,会把字符串转换成数字。
1 | var iNum = 20; |
类似的,一元减法就是对数值求负(例如,20 转换成 -20),或者将把字符串转换成近似的数字,并对该值求负(例如,字符串 “-20” 转换成 -20)。
注意:一元运算符默认仅支持十进制,仅对以 “0x” 开头的字符串(表示十六进制数字),一元运算符才能把它转换成十进制的值(例如 “0xB” 将被转换成 11)
请参考示例:
1 | // 不同于标准的isNaN(), Number.isNaN()不会默认进行的类型转换 |
4. 关于实例方法和原型方法(Todo)
5. 关于apply、call和bind
三、经验之谈
- javascript不支持同名方法的重载,因为它是一种弱类型的编程语言
- 关于Class,如果在一个方法前加上
static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。
ES6明确规定,Class内部只有静态方法,没有静态属性(指Class本身的属性,即Class.propName,而不是定义在实例对象(this)上的属性)