JavaScript读书笔记(一)
自动类型转换
在JavaScript中,使用 ==
、===
和 -
等运算符能够使得类型自动转换。
关于不同类型的值的比较
flase == 0; //true
"" == flase; //true
"1" == 1; //true
"0" == false; //true
null == false; //flase
undefined == false; //false
undefined == null; //true
null == null; //true
undefined == undefined; //true
如上示例,0,空字符串等等都会转换成布尔类型的false。但是当遇见null
和 undefined
时,只有两边都是null或undefined
的情况下,才会返回true。
NaN
NaN特点:
- 任何涉及NaN的操作都会返回NaN
- NaN与任何值不相等,包括NaN本身
深入理解逻辑运算符 && 和 ||
以前一直的固有思维就是 &&
和 ||
的逻辑运算符的使用产生的是boolean类型的值,即逻辑运算符产生的结果不是true就是false。图样图森破!
其实是这样,当比较的是布尔值,才会返回布尔值。如果是其他类型的值,则返回其他类型的值。
Demo1
var a = 1;
var b = 2;
console.log(a && b); //return 2
console.log(a || b); //return 1
a = 0;
console.log(a && b); //return 0
console.log(a || b); //return 2
由于 &&
和 ||
的短路特性,对于&&
来说,一旦左边的值可以转化为false时,就retrun左边的值;当左右两边的值都能转化为true时,则return右边的值,即Demo1中的b。
以此类推,对于||
来说,当左边的值可以转化为true时,则return左边的值;当左边转化false,右边无论true or false都return右边。
撞了南墙也不回头的 & 和 |
&&
和 ||
有短路的特性,而 &
和 |
则是不“短路”与和不“短路”或。
A & B
假设A可以转化为false,依然会执行B。以此类推:
A | B
假设A可以转化为true,依然会执行B。
一个比较有意思的Demo:
Demo2
var a = 1;
var b = 2;
if ((a=3) & (b=4)){
}
console.log(a); //return 3
console.log(b); //return 4
上述Demo显示了&
符号的不短路,还有 =
和 ==
的区别。
JavaScript读书笔记(一)的更多相关文章
- 数据结构与算法JavaScript 读书笔记
由于自己在对数组操作这块比较薄弱,然后经高人指点,需要好好的攻读一下这本书籍,原本想这个书名就比较高深,这下不好玩了.不过看着看着突然觉得讲的东西都比较基础.不过很多东西,平时还是没有注意到,故写出读 ...
- 你不知道的javascript读书笔记3
概述 这是我看<你不知道的JavaScript(中卷)>中关于类型检查的笔记,供以后开发时参考,相信对其他人也有用. typeof 我们知道js中有七种内置类型:undefined, nu ...
- JavaScript读书笔记(1)
从今天开启每天看书记笔记模式,<JavaScript高级程序设计(第3版)> 1. Javascript最初是为了解决输入验证器的问题,现在已经发展成一门复杂的语言: 2. 语言标准为E ...
- 悟透javascript读书笔记
1.undefined,null,0,"" 这四个值转换为逻辑值时是false,其他无论简单类型值,对象或者函数转换过来都是true 2.如图 第一个是“声明了一个变量,给变量赋 ...
- 高性能的JavaScript -- 读书笔记
高性能的JavaScript 一. 加载和运行 将脚本放在底部 脚本下载解析执行时,页面已经加载完成并显示在用户面前 成组脚本 减少外部脚本文件数量,整合成一个文件 延迟脚本 动态脚本元素 ...
- <你不知道的JavaScript>读书笔记
近几天看了一本不错的 JavaScript 的书,是 Kyle Simpson 写的 <You Don't know JS>.这本书是 Kyle Simpson 在 Github 上的开源 ...
- 编写可维护的Javascript读书笔记
写在前面:之前硬着头皮参加了java方面的编程规范培训,收货良多,工作半年有余的时候,总算感觉到一丝丝Coding之美,以及造轮子的乐趣,以至于后面开发新功能的时候,在Coding style方面花了 ...
- 高性能JavaScript读书笔记
零.组织结构 根据引言,作者将全书划分为四个部分: 一.页面加载js的最佳方式(开发前准备) 二.改善js代码的编程技巧(开发中) 三.构建与部署(发布) 四.发布后性能检测与问题追踪(线上问题优化) ...
- JavaScript读书笔记(4)-变量、作用域和内存问题
1.ECMAScript数据类型分为:基本类型值和引用类型值: ECMAScript中所有函数的参数都是按值传递的: 检查对象的类型:varible instanceof constructor Al ...
随机推荐
- 通过js调用android原生方法
有时候我们有这样一个需求,监听html中控件的一些事件.例如点击html中某个按钮,跳转到别的activity,复制某段文本. 首先是对webview的设置: myWebView = (WebView ...
- TBitmapSurface.StretchFrom
procedure TBitmapSurface.StretchFrom(const Source: TBitmapSurface; const NewWidth, NewHeight: Intege ...
- DataScientist————汇总篇
为了方便阅读查找.把写的其他关于机器学习的博客汇总在这里. ---------------------------------------------------------------------- ...
- erlang 虚机CPU 占用高排查
-问题起因 近期线上一组服务中,个别节点服务器CPU使用率很低,只有其他1/4.排除业务不均,曾怀疑是系统top统计错误,从Erlang调度器的利用率调查 找到通过erlang:statistics( ...
- 48. 二叉树两结点的最低共同父结点(3种变种情况)[Get lowest common ancestor of binary tree]
[题目] 输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点. 二叉树的结点定义如下: C++ Code 123456 struct BinaryTreeNode { int ...
- CDR VBA将字母改为大写
ActiveShape.Text.FontProperties.Uppercase = cdrSmallCapsFontCase
- CorelDRAW各版本安装软件下载
CorelDRAW X8 SP6-32位64位免激活免登陆版 百度网盘下载地址 提取密码:1z6w CorelDraw X7 (64位) 简体中文完整版: 百度网盘下载地址 提取密码:sqaw C ...
- [iOS] 为文本加上横线方法
_oldPriceLabel.text = "; _oldPriceLabel.textColor = [UIColor lightGrayColor]; NSMutableAttribut ...
- sql奇进偶舍函数
create function sslr(@num numeric(20,10),@i int) --@i保留的小数位 --@num传入的数据 returns varchar(2 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...