阅读笔记《JavaScript高级程序设计》
0. 严格模式
"user strict"
(1整个脚本顶部,2函数体顶部)
1. 数据类型
undefined -- 未定义
boolean
string
number
object -- 对象 或 null
function
0) typeof操作符(不是函数)
alert(val) //error
typeof val //返回"undefined"
val定义局部变量(函数体内),全局变量(不再任何函数体内)
直接写变量名定义全局变量
1) Undefined
所有未初始化的变量均为Undefined类型,值为undefined
undefined 派生自 null, null == undefined // true
typeof null; // "object"
2) Boolean
可以通过Boolean()函数将所有其它值转换为Boolean类型
转换为false的值有:"", 0和NaN, null, undefined
在控制流if()中科自动执行相应的Boolean转换
3) Number
十进制
八进制(0开头+(0-7),超过7则忽略开头的0,当做十进制)
十六进制(0x开头+(0-9及A-F/a-f))
浮点数(var num = 10.1; var num = 10.1e7), 注意浮点数是有误差的,比较式不要直接==
范围: Number.MAX_VALUE Number.MIN_VALUE, 超出范围为 -Infinity/Infinity(正/负无穷), isFinite()判断是否未超出范围
NaN (Not a Number)
将非数字字符串转换为Number返回NaN), 0除以0返回NaN, 正数/0返回Infinity, 任何NaN参与的算术运算值都为NaN
NaN不等于任何值(包括自己)
isNaN()
Number() --- Number("adf")NaN, Number(0011)11, Number(true)1
parseInt() --- parseInt("1234as")1234, parseInt("0xf")15
parseFloat() --- parseFloat(12.21.5)12.21, parseFloat(3.1e1)==31
4) string
"a" + "b" === "ab"
Number.toString()
String()
String(true) === "true"
String(null) === "null"
val test; String(test) === "undefined"
5) Object
和Java的Object类似
2. 操作符
- 单目运算符: ++ -- + - (即正负号)
- 位运算符: ~ & | ^ << >>(有符号右移,符号位不动) >>>
- 逻辑运算符: ! && ||
- 算术运算符: * / % + -
- 关系操作符: < > <= >= != == ===(全等,比较时不会做类型转换)
- 条件操作符: ? :
- 赋值操作符: = *= /= %= += -= <<= >>= >>>=
- 逗号操作符: , (返回值会最后一项,如:val a = 10, 9, 0; // a == 0)
3. 语句
- if () {} else {}
- do{} while();
- while() {}
- for(;
阅读笔记《JavaScript高级程序设计》的更多相关文章
- 阅读《RobHess的SIFT源码分析:综述》笔记
今天总算是机缘巧合的找到了照样一篇纲要性质的文章. 如是能早一些找到就好了.不过“在你认为为时已晚的时候,其实还为时未晚”倒是也能聊以自慰,不过不能经常这样迷惑自己,毕竟我需要开始跑了! 就照着这个大 ...
- RobHess的SIFT源码分析:imgfeatures.h和imgfeatures.c文件
SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述 imgfeatures.h中有SIFT特征点结构struct feature的定义,除此之外还有一些特征点的导入导出以及特 ...
- RobHess的SIFT源码分析:综述
最初的目的是想做全景图像拼接,一开始找了OpenCV中自带的全景拼接的样例,用的是Stitcher类,可以很方便的实现全景拼接,而且效果很好,但是不利于做深入研究. 使用OpenCV中自带的Stitc ...
- 阅读《RobHess的SIFT源码分析:综述》笔记2
今天开始磕代码部分. part1: 1. sift特征提取. img1_Feat = cvCloneImage(img1);//复制图1,深拷贝,用来画特征点 img2_Feat = cvCloneI ...
- element-ui button组件 radio组件源码分析整理笔记(一)
Button组件 button.vue <template> <button class="el-button" @click="handleClick ...
- element-ui 组件源码分析整理笔记目录
element-ui button组件 radio组件源码分析整理笔记(一) element-ui switch组件源码分析整理笔记(二) element-ui inputNumber.Card .B ...
- element-ui Carousel 走马灯源码分析整理笔记(十一)
Carousel 走马灯源码分析整理笔记,这篇写的不详细,后面有空补充 main.vue <template> <!--走马灯的最外层包裹div--> <div clas ...
- STL源码分析读书笔记--第二章--空间配置器(allocator)
声明:侯捷先生的STL源码剖析第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的 ...
- element-ui MessageBox组件源码分析整理笔记(十二)
MessageBox组件源码,有添加部分注释 main.vue <template> <transition name="msgbox-fade"> < ...
- element-ui switch组件源码分析整理笔记(二)
源码如下: <template> <div class="el-switch" :class="{ 'is-disabled': switchDisab ...
随机推荐
- UOJ #62. 【UR #5】怎样跑得更快
题目分析 显然不可能高斯消元. 考虑反演. \(b_i=\sum\limits_{j=1}^n\gcd(i,j)^C\cdot \text{lcm}(i,j)^D\cdot x_j\) \(b_i=\ ...
- es6之proxy和reflect
一.proxy //Proxy和Reflect //供应商 let obj={ time:"2017-11-21", name:"net", _r:123 } ...
- Eclipse安装Sonarlint插件
这里安装的是Sonarlint3.6.插件安装非常简单.插件比Sonar更为简单快捷. 一.首先通过点击Eclipse上方Help菜单会出现一个下拉列表,点击其中的Eclipse MarketPlac ...
- R语言学习笔记1——R语言中的基本对象
R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...
- HDU 2089(暴力和数位dp)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2089 不要62 Time Limit: 1000/1000 MS (Java/Others) M ...
- ffmpeg 简单使用总结
FFMPEG 生成指定长度的空白音频: ffmpeg -f lavfi -i aevalsrc=0 -t seconds -q:a 9 -acodec libmp3lame out.mp3 FFMPE ...
- center os 7 修改 mysql 密码
笔记 本redis 密码 654321忘记密码:修改密码update user set authentication_string=password('123456') where user='roo ...
- OC - ARC(自动引用计数)
1.什么是自动引用计数? 顾明思义,自动引用计数(ARC,Automatic Reference Counting)是指内存管理中对引用采取自动计数的技术. 在OC中采用ARC机制,让编译器来进行内存 ...
- 第一个electron
1 开发环境:node环境 2 下载electron:npm install electron --save-dev 3 package.json配置如下: { "name": & ...
- Centos配置静态IP
ifconfig -a //看IP,HWADDR netstat -rn //看网关 service network restart //重启网卡 输入命令:vi ...
- 阅读《RobHess的SIFT源码分析:综述》笔记