js-错误处理与调试,JSON

错误处理与调试:

1、try-catch

try{

      window.someNoneXistentFunction();

}catch(error){

      alert(error.message)

}

2、finally子句一经使用,就会执行

try{

      return 2;

}catch(error){

      return 1;

}finally{

      return 0;

}

3、throw操作符:随时抛出自定义错误,遇到throw操作符时,就会立即停止执行,仅当有try-catch语句捕获到被抛出的值时,代码才会继续执行

throw new Error(“zzzzz”);

4、关于原型继承

function CustomError(message){

      this.name="CustomError";

      this.message=message;

}

CustomError.prototype=new Error();

throw new CustomError("My message");

5、error事件

EventUtil.addHandler(image,"error",function(event){

      alert("image not loaded!");

});

image.src="zhang.gif";//指定不存在的文件

6、基本类型的值使用typeof检测,对象的值使用instanceof检测

7、错误日志:

function logError(sev,msg){

      var img=new Image();

      img.src="log.php?sev="+encodeURIComponent(sev)+"&msg="+

               encodeURIComponent(msg);

}

for(var i=0,len=mods.length;i<len;i++){

      try{

           mods[i].init();

      }catch(ex){

        logError("nonfatal","Module init failed:" + ex.message);-- nonfatal表示错误的严重程度

      }

}

Json:

1、json的语法可以表示以下三种类型的值:

简单值:字符串,数值,布尔值,null,不支持undefined

对象:

数组:

不支持变量,函数以及对象实例

json字符串必须使用双引号

2、对象:

{

      "name":"zhang",

      "age":29,

      "school":{

           "name":"zzz",

           "location":"zzzzzz"

      }

} ----没有分号

3、Json对象有两个方法:

stringify():把js对象序列化为JSON字符串

parse():将JSON字符串解析为js值

var book={

      title:"aaaa",

      authors:["aaaa"],

      edition:3,

      year:2011

};

var jsonText=JSON.stringify(book);

// jsonText是不包含任何空格字符或缩进

var bookCopy=JSON.parse(jsonText);

4、stringify()还可以接受另外一个参数:

第一个;

var jsonText=JSON.stringify(book,[“title”,”edition”]);

第二个:

函数,函数接收两个参数,属性名以及属性值

5、字符串缩进:--- stringify()的另一个参数

var jsonText=JSON.stringify(book,null,4);

最大缩进空格为10

不仅仅可以传空格:

var jsonText=JSON.stringify(book,null,“--”);

5、toJSON()方法:

var book={

      title:"aaaa",

      authors:["aaaa"],

      edition:3,

      year:2011

      toJSON:function(){

           return this.title;

      }

};

var jsonText=JSON.stringify(book);

6、解析选项:

JSON.parse()方法也可以接收另一个参数,是一个函数(还原函数):

如果还原函数返回的是一个undefined,则表示要从结果中删除相应的键,如果返回其它值,则将该值插入到结果中

var book={

      title:"aaaa",

      authors:["aaaa"],

      edition:3,

      year:2011

      releaseDate:new Date(2011,11,1)

};

var jsonText=JSON.stringify(book);

var bookCopy=JSON.parse(jsonText,function(key,value){

      if(key=="releaseDate"){

           return new Date(value);

      }else{

           return value;

      }

});

alert(bookCopy.releaseDate.getFullYear());

原文地址:https://www.cnblogs.com/zhanghuiyun/p/5138093.html