您的位置:首页 > Web前端 > JavaScript

javascript 中的console.log

2016-03-06 10:01 453 查看
1、

主要是方便你调式javascript用的。你可以看到你在页面中输出的内容。

相比alert他的优点是:

他能看到结构化的东西,如果是alert,淡出一个对象就是[object object],但是console能看到对象的内容。

console不会打断你页面的操作,如果用alert弹出来内容,那么页面就死了,但是console输出内容后你页面还可以正常操作。

console里面的内容非常丰富,你可以在控制台输入:console,然后就可看到:

它有网页的各种提示。

2、对于JavaScript程序的调试,相比于alert(),使用console.log()是一种更好的方式,原因在于:alert()函数会阻断JavaScript程序的执行,从而造成副作用;而console.log()仅在控制台中打印相关信息,因此不会造成类似的顾虑

一、什么是console.log()?

除了一些很老版本的浏览器,现今大多数浏览器都自带调试功能;即使没有调试功能,也可以通过安装插件来进行补充。比如,老版本的Firefox没有自带调试工具,在这种情况下可以通过安装Firebug插件来添加调试功能。在具备调试功能的浏览器上,window对象中会注册一个名为console的成员变量,指代调试工具中的控制台。通过调用该console对象的log()函数,可以在控制台中打印信息。比如,以下代码将在控制台中打印”Sample log”:

代码如下:window.console.log("Sample log");

上述代码可以忽略window对象而直接简写为:

代码如下:console.log("Sample log");

console.log()可以接受任何字符串、数字和JavaScript对象。与alert()函数类似,console.log()也可以接受换行符n以及制表符t。console.log()语句所打印的调试信息可以在浏览器的调试控制台中看到。不同的浏览器中console.log()行为可能会有所不同, 本文主要探讨Firebug中console.log()的使用 。

二、兼容没有调试控制台的浏览器

对于缺少调试控制台的老版本浏览器,window中的console对象并不存在,因此直接使用console.log()语句可能会在浏览器内部造成错误(空指针错误),并最终导致某些老版本浏览器的崩溃。为了解决这一问题,可以人为定义console对象,并声明该console对象的log函数为空函数;这样,当console.log()语句执行时,这些老版本的浏览器将不会做任何事情:

代码如下:if(!window.console){

window.console = {log : function(){}};

}

不过,在大多数情况下,没有必要去做这种兼容性工作 — console.log()等调试代码应当从最终的产品代码中删除掉。

三、使用参数

与alert()函数类似,console.log()也可以接受变量并将其与别的字符串进行拼接:

代码如下://Use variable

var name = "Bob";

console.log("The name is: " + name);

与alert()函数不同的是,console.log()还可以接受变量作为参数传递到字符串中,其具体语法与C语言中的printf语法一致:

代码如下://Use parameter

var people = "Alex";

var years = 42;

console.log("%s is %d years old.", people, years);

上述代码的执行结果为:”Alex is 42 years old.”

一般情况下我们用来输入信息的方法主要是用到如下四个

1、console.log 用于输出普通信息

2、console.info 用于输出提示性信息

3、console.error用于输出错误信息

4、console.warn用于输出警示信息

5、console.debug用于输出调试信息

代码示例:

//变量

var i = 'I am a string';

console.log('变量:',i);

//数组

var arr = [1,2,3,4,5];

console.log('数组:',arr);

//对象

var obj1 = {

key1 : 'value1',

key2 : 'value2',

key3 : 'value3'

};

var obj2 = {

key6 : 'value4',

key5 : 'value5',

key4 : 'value6'

};

var obj3 = {

key9 : 'value7',

key8 : 'value8',

key7 : 'value9'

};

console.log('对象:',obj1);

//对象数组

var objArr1 = [obj1,obj2,obj3];

var objArr2 = [[obj1],[obj2],[obj3]];

console.log('对象数组1:',objArr1);

console.log('对象数组1:',objArr2);

/*

输出:

变量:I am a string

数组:[1, 2, 3, 4, 5]

对象:Object { key1="value1", key2="value2", key3="value3"}

对象数组1:[Object { key1="value1", key2="value2", key3="value3"}, Object { key6="value4", key5="value5", key4="value6"}, Object { key9="value7", key8="value8",
key7="value9"}]

对象数组1:[[Object { key1="value1", key2="value2", key3="value3"}], [Object { key6="value4", key5="value5", key4="value6"}], [Object { key9="value7", key8="value8",
key7="value9"}]]

*/


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: