搜索

首页  >  问答  >  正文

javascript - 关于try、catch、throw的问题?

try{
    var num = pompt("请输入5~10");
}
catch(err){
    console.log(err);
    console.log(err + "这里我随便加上一段字符串");
}

上述代码中,console.log(err);在控制台是这样输出的:ReferenceError: pompt is not defined at index.html:37,有提示行号。
但是console.log(err + "这里我随便加上一段字符串");在控制台中输出是这样的:ReferenceError: pompt is not defined这里我随便加上一段字符串,加上了一段字符串,就没有提示错误行号。这是什么原因呢?

PHP中文网PHP中文网2752 天前516

全部回复(4)我来回复

  • PHP中文网

    PHP中文网2017-05-19 10:33:16

    第一句打印的是一个对象。

    第二句打印的是一个字符串。即err.toString() + "这里我随便加上一段字符串"

    try{
        var num = pompt("请输入5~10");
    }
    catch(err){
        console.log(err);
        console.log(err.toString());
    }
    

    非专业回答,仅供参考-。-

    回复
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:33:16

    你log一下err.toString()就知道了

    因为err+str,err先调用toString转化为字符串了。

    回复
    0
  • PHP中文网

    PHP中文网2017-05-19 10:33:16

    try{
        var num = pompt("请输入5~10");
    }
    catch(err){
        console.log(err);
        console.log(err , "这里我随便加上一段字符串");
    } 

    可以这样啊

    回复
    0
  • 怪我咯

    怪我咯2017-05-19 10:33:16

    err是一个对象形式的数据,加号连接的时候被自动转成字符串了。

    回复
    0
  • 取消回复