重新开始学习,记录一下。
1.语法错误
unexpected token:token就是编程语言里的一个符号。
2.运行时的错误
语法没有错误,运行时出现的错误。
常见:
-ReferenceError,变量引用异常;
-TypeError,类型使用错误。(变量属性或方法未初始化,调用类型错误)
-RangeError,递归爆栈(递归深度太深)
注:语法错误不可能运行成功,运行错误可能运行成功。
3.逻辑错误
结果不符合预期
调试:单步跟踪,debugger(调试工具一定要打开),运行到这里会暂停;或者在控制台单击行号,断点与单步跟踪
:恢复运行
:跳过这个函数的执行,只当作代码执行,不进入内部
:进入到这个函数里面去
:跳出这个函数的执行
或者自己在浏览器调试里面加断点
4.try...catch语句
主动会触发错误
抛出错误:throw
if(xxxx){
throw new Error('xxx错误提示xxx');
}
运行时不可避免的错误:try-catch
try{
c=a*b;
alert("乘积是"+c);
}catch(e){
alert('请输入两个数字!')
}finally{
xxxx;//不管有没有错都会执行
}
例如:
抛出的错误会跑到catch里,
如果内部的代码抛出错误,则代码直接跳入catch块运行,且把错误对象赋值给catch括号内的变量。
finally块一定会执行,在finally里做一些请理性的工作。
try catch finally语句:
1.finally不管怎样都会执行
2.无法包裹语法错误代码块(代码的语法错误是不能被捕获的,直接不能执行)
3.错误的冒泡(如果一个函数内部的代码报错了,而这个代码并没有被try catch包裹住的话,这个错误会跑到函数外面来,在函数被调用的位置继续去看周围有没有try catch,如果没有的话,就会一直往上跑,这个就称之为错误的冒泡)