编码习惯(一)

154 阅读2分钟

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)
}