1. console.log()
一定使用console.log('错误:', err)
或者console.log(err, '错误')
而不是 console.log('错误:'+err)


console.log('错误:'+err); 这种写法,是没办法查看对象的。
关于console
window.console
console.assert() //->判断第一个参数是否为真, false的话抛出异常并且在控制台输出相应信息。
console.clear() //->清空控制台,并输出 Console was cleared
console.count() //->以参数为标识记录调用的次数,调用时在控制台打印标识以及调用次数。
console.countReset() //->重置指定标签的计数器值
console.debug() //->在控制台打印一条"debug"级别的消息
console.dir() //->打印一条以三角形符号开头的语句,可以点击三角展开查看对象的属性
console.dirxml() //->打印XML/HTML元素表示的指定对象,否则显示JavaScript对象视图
console.error() //->打印一条错误信息
console.exception() //->error()方法的别称
console.group()
console.groupCollapsed()
console.groupEnd()
console.info()
console.log()
console.profile()
console.profileEnd()
console.table()
console.time()
console.timeEnd()
console.timeLog()
console.timeStamp()
console.trace()
console.warn()
1、打印单个对象
var someObject = { str: 'Some text', id: 5 };
console.log(someObject);

2、打印多个对象
var car = 'Dodge Charger'
var someObject = { str: 'Some text', id: 5 }
var err = { msg: 'error' }
console.info(
'My first car was a',
car,
'.The object is:',
someObject,
'.The err is:',
err
)

3、console.log() 与 console.dir()、console.info()的区别
4、console.table()
console.table()在控制台打印,以表格的形式呈现打印的内容;展现更完美
var arr = {name: '1',set: 'a'}
console.table(arr)

4、控制台输出的字符串是黑色的,数字是蓝色的
2. continue、break、return
3. Promise的错误捕捉
4. Promise与 try{}catch{}的使用
可以统一用 Promise.catch()捕获所有同步和异步的错误。
常规的写法:
let login = () => {
return new Promise(function(resolve, reject) {
// ...
// if(/* 异步任务执行成功 */) {
if (true) {
resolve('value')
} else {
reject('error')
}
})
}
login()
.then(data => {
console.log('data:', data)
})
.catch(err => {
console.log('错误:', err)
})
错误处理的两种做法:
1、reject('错误信息').then(null, message => {})
2、throw new Error('错误信息').catch(message => {})
推荐使用第二种,更加清晰好读,并且可以捕获前面的错误。
console.log('start')
new Promise(resolve => {
setTimeout(() => {
throw new Error('bye');
}, 2000);
})
.then(value => {
console.log(value + ' world');
})
.catch(error => {
console.log('Error: ', error.message)
});
5. if (变量) {}
在js的if中变量判断,以下情况会被认为返回false:
1、 "" 空的字符串
2、 '' 空的字符串
2、 为 0 的数字
3、 为 null 的对象
4、 为 undefined 的对象
5、 布尔值 false
其他的都为真。
var a = null
if (a) {
console.log(true)
} else {
console.log(false) //->false
}
var b = undefined
if (b) {
console.log(true)
} else {
console.log(false) //->false
}
var c
if (c) {
console.log(true)
} else {
console.log(false) //->false
}
var d = '' //->或 ""
if (d) {
console.log(true)
} else {
console.log(false) //->false
}
var e = 0 //注意这里是number类型的0
if (e) {
console.log(true)
} else {
console.log(false) //->false
}
var f = '0' //注意这里是string类型的"0"
if (f) {
console.log(true) //->true
} else {
console.log(false)
}