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()); //报错
转载于:https://www.cnblogs.com/mini-fan/p/6175671.html
JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前...相关推荐
- Vue 新手学习笔记:vue-element-admin 之入门开发教程(v4.0.0 之前)
说实话都是逼出来的,对于前端没干过ES6都不会的人,vue视频也就看了基础的一些 但没办法,接下来做微服务架构,前端就用 vue,这块你负责....说多了都是泪,脚手架框架布了都没看过 干就完事,不过 ...
- Linux学习笔记(十一):磁盘配额、磁盘阵列与逻辑卷
Linux学习笔记(十一):磁盘配额.磁盘阵列与逻辑卷 磁盘配额Quota 磁盘阵列RAID RAID level 软件磁盘阵列 逻辑卷管理器LVM 基本概念:PV, VG, LV 逻辑卷创建与管理 ...
- JavaScript闭包学习笔记
闭包(closure)是JavaScript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于JavaScript初学者应该是很有用的. 一.变量的作用域 要理解 ...
- Javascript入门学习笔记
JS入门学习笔记目录 1.JS简介 2.组成部分 3.特点 4.作用 5.JS三种添加方式 6.变量 7.数据类型 8.检测数据类型 9.逗号运算符 10.算术运算符 11.关系运算符 12.逻辑运算 ...
- Java Web--HTML、CSS、JavaScript详细学习笔记(内含丰富示例代码)
** Java Web–HTML.CSS.JavaScript学习笔记 ** HTML(Hyper Text Markup Language超文本标记语言):控制的是页面的内容,是由标签组成的语言,能 ...
- JavaScript ECMAScript学习笔记
JavaScript语言(负责前端行为) · 解释性语言:JavaScript.php 优点:跨平台 逐行翻译成机械语言 缺点:稍微慢 · 编译性语言:c.c++ 优点:快 通篇翻译成机械语言 缺点: ...
- CososJS学习笔记(1) 环境配置(填坑版,让你少走弯路!)
这段时间比较了国外的phaser.pixi.create等h5游戏框架以及国内的egret.cocosjs之后,最后还是决定使用cocosjs进行h5游戏的开发. 先简单地说一下个人的观点:首先pix ...
- javascript面向对象学习笔记(一)——继承
最近在学习html5,玩了下canvas,发现js中很多的东西都不太记得了.翻了下笔记后发现还是去图书馆逛逛把,到借阅区找了我一直想看的<javascript design patterns&g ...
- javascript深入浅出——学习笔记(六种数据类型和隐式转换)
在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容?随时补充 课程大纲 1.数据类型 2.表达式和运算符 3.语句 4. ...
最新文章
- 【2016-09-27-DP小练】
- 068_xhtml语法
- 优化数据库的注意事项
- Python | 深入浅出字符串
- mysql填写账户远程_mysql账户添加远程访问
- 一文搞懂物联网Modbus通讯协议
- 今天,我收到了蚂蚁金服offer
- Fastlane-iOS(调研篇)
- Altium AD20导入DXF/DWG文件,导入AutoCAD绘制的树莓派4B板框及图形
- javascript继承的原理
- jupyter notebook和python有什么区别_Python神器 Jupyter Notebook
- 什么是机器学习(Machine Learning)? |李宏毅机器学习【1】
- 评弱水三千,该取几瓢饮?———贪恋还是专情
- 解决Qt5.7.0 cannot find -lGL
- 三星对韩国意味着什么?假如三星破产了,韩国会受到什么影响?
- 适合编程初学者的开源博客系统
- 自动驾驶入门技术(4)—— 摄像头
- 2014届百田校招笔试
- 1005 继续(3n+1)猜想 (25 分)
- 英语不好怎么快乐的码代码! 快来跟我一起学英语吧
热门文章
- 【LeetCode】198.打家劫舍
- c#_static静态
- civil 3d 计算机配置,Civil 3D 2009安装后无法启动
- apache使用.htaccess删除.html扩展名_Web前端入门:html元素解析
- Java6程序设计基础教程_【Java】《Java程序设计基础教程》第三章学习
- harris角点检测_角点检测(2) - harris算子 - 理论与Python代码
- 电脑qq收藏在哪里_电脑突然死机了怎么办?几种常见电脑故障及其解决方法
- mysql sleep详解_mysql sleep链接过多的原因及解决办法
- js关闭手机浏览器_Unity 之 WebGL打开手机摄像头
- 人类又双叒叕输了,就没人能管管这条“狗”吗?