JS 优美、糟粕、鸡肋特性(总结于JAVASCRIPT THE GOOD PART一书)

糟粕:

1.全局变量(首当其冲)

三种定义全局变量的方法:

var foo=bar; // 并未在任何函数中声明,在函数之外声明是全局变量

window.foo=bar; //定义在全局对象上是全局变量

foo=bar ;// 定义在函数中,如果函数被执行,也成了全局变量,如果定义在函数外也是全局变量

2.作用域

JavaScript采用了C级代码块,但是没有提供块级作用域:代码块中声明的变量在函数的任何位置可见

3.自动插入分号(不知道为什么有如此糟的特性)

4.保留字

JavaScript的保留字很特别:对于一些没用过的单词也强行加入到保留字的行列:

abstract boolean byte debugger do等,尽量少碰有可能是保留字的单词

5.Unicode

JS字符是16位的

6.typeof

记住几个特殊的typeof就好了  typeof null 返回 object(判断某个变量是null用 val===null)

如果判断某个是对象 应该用下面的表达式:

val&&typeof val ==='object'

对于增则表达式,尽量不要用typeof,各个版本不同

7.parseInt

parseInt将字符串转化成整数,但是遇到非数字会停止解析

8.+

太多歧义,小心

9.浮点数

二进制的浮点数不能够用10进制来衡量,比如0.1+0.2===0.3是错误的

10.NaN

NaN不是一个数字,但是typeof NaN =='number',

判断是数字就用下面的表达式

typeof val ==='number' && isFinite(val)

11.伪数组

好处也是坏处

12.假值

可以列举的假值:0,false,null,[],NaN,‘’,undefined

13.hasOwnProperty

14.对象

对象都会有原型链,所以实质上没有空的对象,要对象赋属性值的时候要小心不要重名。


鸡肋:

1. == 

记住:能使用===和!==的地方就不要用==,因为有时候转换的规则谁也搞不清楚

2.with

能避免就避免,处理速度影响,有时候逻辑会自己乱

3.eval

eval是被滥用的最多的JS特性,使用eval会使得代码难以阅读,Function是eval的另一种形式,也应该避免,setTiemout

和setInterval函数当传递的是字符串的时候会想eval一样去处理,字符串形式也应该避免使用

4,switch

太容易出错了。

5. ++ --

6.new

new运算符创建一个继承于其运算输的原型的新对象,然后把新对象绑定给this,尽量少用this

7.void

避免使用




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值