编程风格、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时就会暂停运行,自动打开脚本源码界面。
网友评论