2017.9.3红宝书回顾

由于需求没有确定下来,所以上周有点时间看了一下书。重新回头看红宝书的时候,受益匪浅

闭包

2017.9.3红宝书回顾_第1张图片
经典的考题

类型转换

1.布尔值转换成数值
2.字符串转数值
3.对象转换成基本类型,使用valueOf()方法

1.null和undefined相等==
2.不能将null和undefined转换成其他
3.如果两个操作数都是对象,那就看它是不是指向同一个对象

2017.9.3红宝书回顾_第2张图片
一些比较特殊的类型转换

事件

事件对象的获取:IE中是作为全局对象存在(wndow.event)存在的Firefox中则是作为句柄的第一个参数传入的,所以

 var evt = window.event || arguments[0]

函数

2017.9.3红宝书回顾_第3张图片
题目1
2017.9.3红宝书回顾_第4张图片
测试结果
2017.9.3红宝书回顾_第5张图片
题目2

解析:立即执行函数(IIFE)中,重新定义了foo 但是并没有向它赋值,这个时候就是undefined,所以会执行第二个

修改后:

2017.9.3红宝书回顾_第6张图片
返回hello

async和defer

2017.9.3红宝书回顾_第7张图片
script标签中的属性
2017.9.3红宝书回顾_第8张图片
defer
2017.9.3红宝书回顾_第9张图片
async
2017.9.3红宝书回顾_第10张图片
总结

逻辑与或

2017.9.3红宝书回顾_第11张图片
逻辑与或

其他

  • 在使用for-in之前,最好使用检测和确认该对象不是null或者undefined
  • arguments对象来访问这个参数数组
  • null==0为false
  • with的作用是将代码的作用域设置到一个特定的对象中 with(expression) statement

你可能感兴趣的:(2017.9.3红宝书回顾)