zoukankan      html  css  js  c++  java
  • 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());

  • 相关阅读:
    第3周 实践项目2 建设”顺序表“算法库(可参考为模板)
    第3周实践项目3 求集合并集
    【luogu 2529】【SHOI 2001】击鼓传花
    【BZOJ 3270】博物馆
    【BZOJ 2337】XOR和路径
    浅谈期望dp
    【codeforces 24D】Broken Robot
    【POJ 1463】Strategic game
    【POJ 3585】Accumulation Degree
    【luogu 3146/3147】248/262144
  • 原文地址:https://www.cnblogs.com/zhanghuiyun/p/5138093.html
Copyright © 2011-2022 走看看