美文网首页
阮一峰JS教程读后感(四)Js语法(下)

阮一峰JS教程读后感(四)Js语法(下)

作者: 前端艾希 | 来源:发表于2019-06-14 11:16 被阅读0次

编程风格、console对象与控制台

1. 如果在循环或者判断的代码块中去掉大括号会造成什么样的后果?
如果去掉大括号,则代码块中默认只有第一行代码起作用,其余代码则不属于该代码块。
ps:Python可以不使用大括号,使用缩进完成代码块区分
2. 行尾不使用分号的情况有哪几种?
(1)for 和 while循环(do while 是有分号的)
(2)分支语句:if switch try
(3)函数的声明语句(如果使用表达式声明需要分号)
3. 写Js时一定要在行尾加分号,原因如下:
(1)Js代码压缩器不会自动添加分号,行尾没有分号会影响压缩效果
(2)不写分号可能导致脚本合并失败
(3)Js解释器添加分号的行为难以预测,可能会在不该添加的地方添加
4. switch...case结构的替代使用
// 原有结构
function doAction(action) {
  switch (action) {
    case 'hack':
      return 'hack';
    case 'slash':
      return 'slash';
    case 'run':
      return 'run';
    default:
      throw new Error('Invalid action.');
  }
}
//修改后的替代结构
function doAction(action) {
  var actions = {
    'hack': function () {
      return 'hack';
    },
    'slash': function () {
      return 'slash';
    },
    'run': function () {
      return 'run';
    }
  };

  if (typeof actions[action] !== 'function') {
    throw new Error('Invalid action.');
  }

  return actions[action]();
}
5.console对象的静态方法有哪些?
1.console.log()用于在控制台输出信息,类似于print,%c为css占位符
2.console.info()用法与log完全一致,但是会在输出信息的前面加上一个蓝色的图标
3.console.debug()会在控制台输出调试信息。
4.console.warn(),
5.console.error()同log,warn输出内容前加 ✘,warn加❗️

6.console.table()可以把复合型数据转为表格输出,例如:
var languages = [
  { name: "JavaScript", fileExtension: ".js" },
  { name: "TypeScript", fileExtension: ".ts" },
  { name: "CoffeeScript", fileExtension: ".coffee" }
];

console.table(languages);
index name fileExtension
0 'JavaScript' '.js'
1 'TypeScript' '.ts'
2 'CoffeeScript' '.coffee'
7.console.count()方法用于计数,输出它被调用多少次,可以接受一个参数作为标签。
function greet(user) {
  console.count();
  return 'hi ' + user;
}

greet('bob')
//  : 1
// "hi bob"

greet('alice')
//  : 2
// "hi alice"

greet('bob')
//  : 3
// "hi bob"

function greet(user) {
  console.count(user);
  return "hi " + user;
}

greet('bob')
// bob: 1
// "hi bob"

greet('alice')
// alice: 1
// "hi alice"

greet('bob')
// bob: 2
// "hi bob"

8.console.dir() 用于对对象的检查,格式化打印便于阅读
9.console.dirxml() 用于以目录树的方式显示DOM节点,如果是普通对象则显示结果同dir
10.console.assert()可以接受两个参数
console('条件','错误结果') 当条件为false时抛出错误结果

11.console.time() ,console.timeEnd()可以计算一个操作花费的时间
console.time('Array initialize');

var array= new Array(1000000);
for (var i = array.length - 1; i >= 0; i--) {
  array[i] = new Object();
};

console.timeEnd('Array initialize');
// Array initialize: 1914.481ms
常用的基本上就console.log
6. debugger语句的作用?
主要用于设置断点,当代码运行到debugger时就会暂停运行,自动打开脚本源码界面。

相关文章

网友评论

      本文标题:阮一峰JS教程读后感(四)Js语法(下)

      本文链接:https://www.haomeiwen.com/subject/zksufctx.html