在此之前通常调试js代码我都是使用alert()来查看变量,直到公司最近有个项目使用了前些项目的框架,页面在ie下提示console未定义错误,我才知道console这个东西。
console是一个控制台打印对象,比如在火狐下,用f12可以打开控制台,我们在代码里可以使用console.log(),console.info(),console.error()等方法来输出不同级别的日志信息。
而在ie下,有些版本并不支持这个对象,所以会弹出console未定义的错误。
我们可以使用if(window.console) 方法来判断是否支持该对象。并且我自己封装了它的方法,我对其内部原理和js语法并不熟悉,所以封装的这个东西只能满足目前我的使用。
- //
- // Log.js
- // 打印日志
- // 本质上是封装了console,防止在ie下报错
- // Created by ljy on 2014-10-21.
- // Copyright 2014 ljy. All rights reserved.
- //
- var Log = {
- /*判断是否支持console*/
- isSupport:function() {
- if(window.console) {
- return true;
- }
- return false;
- },
- log:function(message) {
- if(this.isSupport()) {
- console.log(message);
- }
- },
- i:function(message) {
- if(this.isSupport()) {
- console.info(message);
- }
- },
- d:function(message) {
- if(this.isSupport()) {
- console.debug(message);
- }
- },
- w:function(message) {
- if(this.isSupport()) {
- console.warn(message);
- }
- },
- e:function(message) {
- if(this.isSupport()) {
- console.error(message);
- }
- },
- profile:function(message) {
- if(this.isSupport()) {
- console.profile(message);
- }
- },
- profileEnd:function() {
- if(this.isSupport()) {
- console.profileEnd();
- }
- },
- time:function(message) {
- if(this.isSupport()) {
- console.time(message);
- }
- },
- timeEnd:function(message) {
- if(this.isSupport()) {
- console.timeEnd(message);
- }
- },
- dir:function(obj) {
- if(this.isSupport()) {
- console.dir(obj);
- }
- }
- };