Javascript 如何知道错误所在的线路?

Javascript 如何知道错误所在的线路?,javascript,line-numbers,Javascript,Line Numbers,在php中,当我们做错了某件事时,就会显示一个错误,其中包含提交错误的行号。我希望在javascript中使用相同的代码,您可以从我的代码中理解: var varlist = {}; var private = { str : function(nameArg, valueArg, security){ if (varlist.hasOwnProperty(nameArg) === true){ throw "Variable Existance : variab

在php中,当我们做错了某件事时,就会显示一个错误,其中包含提交错误的行号。我希望在javascript中使用相同的代码,您可以从我的代码中理解:

var varlist = {};
var private = {
 str : function(nameArg, valueArg, security){
     if (varlist.hasOwnProperty(nameArg) === true){
         throw  "Variable Existance : variable "+nameArg +" is already exist in your variable list and cannot be overwritten in private type";
     }else if(security === "h"){
         var stre = String(valueArg);
         var strnew = stre.replace(/\d/g, "");
     varlist[nameArg] = strnew;
     }else if(security === "l"){
         varlist[nameArg] = String(valueArg);
     }else if(security !== "h" || security !== "n"){
             varlist[nameArg] = String(valueArg);
         throw "Unexpected Security Level: Entered " +security+" is unexpected and the default security level is low(l)";
     }
     }
    }
现在看最后一个
throw
语句,如果安全性不是
“h”
“l”
,那么它会抛出一个异常,如您所见。 现在假设我在代码编辑器的第90行,在那里我写了
private.str(“abc”,9000,“o”)其中
“o”
无效。所以javascript应该找到
private.str(“abc”,9000,“o”),然后抛出
“意外安全级别:在“+line_number+”行输入的“+Security+”是意外的,默认安全级别为低(l)”行号是90。
因此javascript应该抛出以下语句:“意外的安全级别:在第90行输入的o是意外的,默认的安全级别是低的(l)”

我试图寻找这一点,但没有人能帮助我的知识范围


谢谢

默认情况下,Javascript也会抛出错误,但它们不会在屏幕上打印,而是显示在控制台中。按F12打开浏览器的调试/开发模式并刷新页面。如果出现任何javascript错误,它将向您显示错误所在


使用console.log,您还可以将自己的“错误”添加到控制台以进行跟踪。

您可以使用在代码中的任何位置获取堆栈跟踪。这段代码抛出并捕获一个伪异常,并返回异常的内容。浏览器支持:Chrome、Firefox、IE(10及以上)、Opera、Safari(6及以上)

您可以使用firebug或js控制台,也可以在这样的代码中使用

var
line=(new Error).stack.split("\n")[4],
nr=line.slice(line.indexOf("at ")+2, line.length);

()

好的,但最重要的是我想知道在脚本应该是line.indexOf时,错误发生在哪里