逻辑与、逻辑或、逻辑非
1)逻辑与:&& 两真则真 两个操作数 双目运算符
- 如果第一个操作数是false,就直接决定了整体的值是false,因此第二个操作数就不进行运算。
&&两侧要放布尔值
<script>
console.log(true &&true); //true
console.log(false && true); //false
console.log(true && false); //false
console.log(false && false); //false
</script>
例题:
<script>
var a = 10;
var b = 0;
b && a++;
var c = b && a++;
var d = a++ && b;
console.log(a);
console.log(b);
console.log(c);
console.log(d);
</script>
结果展示
:
2)逻辑或:|| 一真则真 两个操作数 双目运算符
- 如果第一个操作数是false,不能确定整体的值,要对第二个操作数进行运算
如果第一个操作数是true,则就确定了整体的值,所以也就不对第二个数进行运算了。
<script>
console.log(true || true); //true
console.log(false || true); //true
console.log(true || false); //true
console.log(false || false); //false
</script>
例题:
<script>
var a = 0;
var b = 2;
var c = a || b++;
console.log(a);
console.log(b);
console.log(c);
</script>
结果展示:
3)逻辑非 :!(取反) 1个操作数 单目运算符
- 如果为真 整体就是假
如果为假 整体就是真
<script>
console.log(!true); // false
console.log(!false); // true
</script>
例题:
<script>
var m = 1;
var n = "";
var q = m || n;
console.log(m);
console.log(n);
console.log(q);
</script>
结果展示:
js中的错误类型
1.语法错误:SyntaxError
- JS代码在预编译时 就发现了错误
- 特点:1)代码没有机会执行。2)错误最好找
2.引用错误:ReferenceError
- 通常访问一个没有定义的变量就会发生引用错误
- 特点:JS代码在执行时的时候,才会发现引用错误,错误之后的代码就不执行
- 解决办法:先定义好这个变量,再使用之
3.类型错误:TypeError
- 使用类型不当 你提供的数据,不是JS想要的
- 也是JS代码在执行时才会发现 类型错误之前的代码也会执行,之后的代码不会执行
- 解决办法:一般是你数据类型使用不当,修改之就OK了
4.范围错误:RangeError
- 使用容器时,范围指定不当
- Uncaught RangeError: Invalid array length
5. 逻辑逻辑错误
- 上面的4类错误,在控制台都会报错,修改就OK了;还有一类错误,控制台不会报错,叫逻辑逻辑错误。
- 逻辑错误解决办法:通过debugger调试错误。
异常处理
异常不是错误,异常是指可能出错的错码。
语法:
try{
// 放可能出错的代码
}catch(e){
// 如果上面的代码错误了,就到这里进行错误的处理,其中e表示错误对象
// 它里面包含了错误信息。通过查看e,可以知道它到底出了什么错误
}finally{
// 无论对错,代码都会执行到此处,在JS中用的不多
}
<script>
try{
console.log(a); // 放可能出错的代码
}catch (e) {
console.log("有错误:",e);
}finally {
console.log("最终finally一定会执行");
}
</script>
<script>
try{
var a = 0;
console.log(a);
if(a == 0){
// 程序员主动抛出一个错误
throw new Error("不能为0"); // 抛出错误 catch会捕获到
}
}catch (e) {
console.log("友情提示:这里有点小问题,工程师正在解决中...",e)
}
</script>