JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑按值传递声明提前
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑按值传递声明提前相关的知识,希望对你有一定的参考价值。
1.短路逻辑
逻辑运算中,如果前一个条件已经可以得出最终结论,则后续所有条件不再执行!这里的逻辑运算指的是逻辑与和逻辑或。
我们要理解逻辑与是两个条件都为真的时候,才为真,如果第一个就是假的,那么后面一个也不用执行了。逻辑非是两个条件中有一个是真,则结果为真,所以只要第一个为真,那么结果为真,后面一条语句就不用执行了。于是又如下例题:
console.log(2&&3); //3 console.log(2||3); //2 console.log(0&&1); //0 console.log(0||1); //1
2.按值传递
两变量间赋值或向函数中传递参数时,都是将原变量的值复制一个副本给对方,修改其中一个,另一个不会改变。(这里想比喻成伏地魔的七个魂器,但不知道每毁掉一个魂器,伏地魔会受到影响吗?哈利波特脑残粉。。)。
var a = 10; var b = a; a++; console.log(b); //10
但是引用类型的值传递,传递的仅仅是引用地址,所以修改其中一个的值,另外一个也会跟着变。就好像一间屋子配置了两把钥匙,其中一个打开门,把钱全部拿走,另外一把钥匙打开门后,钱已经没有了。
var a=[1,2,3,4]; var b=a; a.pop(); console.log(b); //1,2,3
3.函数声明提前
在正式执行程序前,都会预先把所有的var声明的变量和function声明的函数,集中到当前作用域的顶部集中声明。但是赋值留在原地。
function fun(){ return 1; } console.log(fun()); //2 function fun(){ return 2; } console.log(fun()); //2 var fun=100; console.log(fun()); //报错
以上是关于JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑按值传递声明提前的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript新手学习笔记3——三种排序方式(冒泡排序插入排序快速排序)
算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。