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());     //报错

  

转载于:https://www.cnblogs.com/mini-fan/p/6175671.html

JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前...相关推荐

  1. Vue 新手学习笔记:vue-element-admin 之入门开发教程(v4.0.0 之前)

    说实话都是逼出来的,对于前端没干过ES6都不会的人,vue视频也就看了基础的一些 但没办法,接下来做微服务架构,前端就用 vue,这块你负责....说多了都是泪,脚手架框架布了都没看过 干就完事,不过 ...

  2. Linux学习笔记(十一):磁盘配额、磁盘阵列与逻辑卷

    Linux学习笔记(十一):磁盘配额.磁盘阵列与逻辑卷 磁盘配额Quota 磁盘阵列RAID RAID level 软件磁盘阵列 逻辑卷管理器LVM 基本概念:PV, VG, LV 逻辑卷创建与管理 ...

  3. JavaScript闭包学习笔记

    闭包(closure)是JavaScript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于JavaScript初学者应该是很有用的. 一.变量的作用域 要理解 ...

  4. Javascript入门学习笔记

    JS入门学习笔记目录 1.JS简介 2.组成部分 3.特点 4.作用 5.JS三种添加方式 6.变量 7.数据类型 8.检测数据类型 9.逗号运算符 10.算术运算符 11.关系运算符 12.逻辑运算 ...

  5. Java Web--HTML、CSS、JavaScript详细学习笔记(内含丰富示例代码)

    ** Java Web–HTML.CSS.JavaScript学习笔记 ** HTML(Hyper Text Markup Language超文本标记语言):控制的是页面的内容,是由标签组成的语言,能 ...

  6. JavaScript ECMAScript学习笔记

    JavaScript语言(负责前端行为) · 解释性语言:JavaScript.php 优点:跨平台 逐行翻译成机械语言 缺点:稍微慢 · 编译性语言:c.c++ 优点:快 通篇翻译成机械语言 缺点: ...

  7. CososJS学习笔记(1) 环境配置(填坑版,让你少走弯路!)

    这段时间比较了国外的phaser.pixi.create等h5游戏框架以及国内的egret.cocosjs之后,最后还是决定使用cocosjs进行h5游戏的开发. 先简单地说一下个人的观点:首先pix ...

  8. javascript面向对象学习笔记(一)——继承

    最近在学习html5,玩了下canvas,发现js中很多的东西都不太记得了.翻了下笔记后发现还是去图书馆逛逛把,到借阅区找了我一直想看的<javascript design patterns&g ...

  9. javascript深入浅出——学习笔记(六种数据类型和隐式转换)

    在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容?随时补充 课程大纲 1.数据类型 2.表达式和运算符 3.语句 4. ...

最新文章

  1. 【2016-09-27-DP小练】
  2. 068_xhtml语法
  3. 优化数据库的注意事项
  4. Python | 深入浅出字符串
  5. mysql填写账户远程_mysql账户添加远程访问
  6. 一文搞懂物联网Modbus通讯协议
  7. 今天,我收到了蚂蚁金服offer
  8. Fastlane-iOS(调研篇)
  9. Altium AD20导入DXF/DWG文件,导入AutoCAD绘制的树莓派4B板框及图形
  10. javascript继承的原理
  11. jupyter notebook和python有什么区别_Python神器 Jupyter Notebook
  12. 什么是机器学习(Machine Learning)? |李宏毅机器学习【1】
  13. 评弱水三千,该取几瓢饮?———贪恋还是专情
  14. 解决Qt5.7.0 cannot find -lGL
  15. 三星对韩国意味着什么?假如三星破产了,韩国会受到什么影响?
  16. 适合编程初学者的开源博客系统
  17. 自动驾驶入门技术(4)—— 摄像头
  18. 2014届百田校招笔试
  19. 1005 继续(3n+1)猜想 (25 分)
  20. 英语不好怎么快乐的码代码! 快来跟我一起学英语吧

热门文章

  1. 【LeetCode】198.打家劫舍
  2. c#_static静态
  3. civil 3d 计算机配置,Civil 3D 2009安装后无法启动
  4. apache使用.htaccess删除.html扩展名_Web前端入门:html元素解析
  5. Java6程序设计基础教程_【Java】《Java程序设计基础教程》第三章学习
  6. harris角点检测_角点检测(2) - harris算子 - 理论与Python代码
  7. 电脑qq收藏在哪里_电脑突然死机了怎么办?几种常见电脑故障及其解决方法
  8. mysql sleep详解_mysql sleep链接过多的原因及解决办法
  9. js关闭手机浏览器_Unity 之 WebGL打开手机摄像头
  10. 人类又双叒叕输了,就没人能管管这条“狗”吗?