box-sizing: content-box; //标准盒模型 box-sizing: border-box; //ie盒模型
NaN结果是number,null结果是object,函数结果是function。前端
ES5的继承实质上是先建立子类的实例对象,而后再将父类的方法添加到this上。
es6经过class定义类,类经过extends关键字实现继承,子类必须在constructor方法中调用super方法。es6
使用get和set实现。ajax
最⼤的特色就是能够控制函数的执⾏。
特色:
Generator 函数神奇之一:g()并不执行g函数
g()并不会执行g函数,返回的也不是函数运行结果,而是一个指向内部状态的指针对象,也就是迭代器对象(Iterator Object)。
分段执行
yield:函数体内部使用yield语句,定义不一样的内部状态,控制产出。promise
减小dom的操做次数
选择dom节点时尽量使用querySelector(),querySelectorAll()缓存
每次调⽤ then 以后返回的都是⼀个 Promise,而且是⼀个全新的 Promise,缘由也是由于状态不可变。安全
promise里面接收一个参数,参数是函数。这个函数里面传入两个参数:resolve和reject,resolve是异步操做执行成功的回调函数,reject是异步操做执行失败的回调函数,resolve是将Promise的状态置为fullfiled,reject是将Promise的状态置为rejected。
then方法是一个链式操做,用来分别指定成功和失败的回调函数,then方法能够接受两个参数,第一个对应resolve状态的回调,第二个对应reject状态的回调。Promise对象除了then方法,还有一个catch方法,用于指定发生错误时的回调函数,其实它和then的第二个参数同样,用来指定reject的回调。
区别:then 的第一个函数出错了,后面的catch能够捕获,写到then的第二个函数则捕获不到。数据结构
a is not defined。闭包
addHeader(name, value);dom
不一样的任务源会被分配到不一样的 Task 队列中,任务源能够分为 微任务(microtask) 和 宏任务(macrotask)。在 ES6 规范中,microtask 称为 jobs,macrotask 称为 task。
Event Loop 执⾏顺序以下所示:异步
宏任务的优先级高于微任务。
宏任务:setTimeout、setInterval、setImmediate、requestAnimationFrame。
微任务:Promise.then catch finally、process.nextTick
函数提高的优先级更高。
DNS是用来作域名解析的,当你上网输入网址后,把它转换成IP。
打开控制台看报错,多是资源加载失败,或者请求异常。