阅读笔记《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 ...
随机推荐
- 牛客网多校训练第三场 A - PACM Team(01背包变形 + 记录方案)
链接: https://www.nowcoder.com/acm/contest/141/A 题意: 有n(1≤n≤36)个物品,每个物品有四种代价pi,ai,ci,mi,价值为gi(0≤pi,ai, ...
- MyBatis(1)优点&介绍&工程
本次全部学习内容:MyBatisLearning 一:jabc的相关说明: jdbc编程步骤: 加载数据库驱动 创建并获取数据库链接 创建jdbc statement对象 设置sql语句 设置sql语 ...
- VMware ESXi 6.5安装
vmware ESXI6.5安装 注意:我是用vmware模拟,选择镜像就可以进入.正常需要服务器做raid 然后安装的时候选择需要的硬盘 等待加载 按enter继续 F11同意并继续 等待扫描设备 ...
- checkout 提示失败
事故现场有些时候,当我们使用 git checkout <branchname>命令切换分支的时候,有时会切换失败,然后出现以下的提示信息: 提示信息说的很清楚,当前分支有未跟踪的文件,c ...
- Redis通过IO进行序列化+反序列化
必须引用序列化Serializable接口 创建类:Role package com.wbg.springRedis.entity; import java.io.Serializable; publ ...
- Git如何从github上pull别人的项目
1:使用git方式导入项目 菜单-File->import->Git->Projects from Git 2:选择某个服务器上的资源 3:选择需要pull的地址 后面需要自己加上 ...
- datagrid和combobox简单应用
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- javaScript 工作必知(十一) 数组常用方法实现
大纲 Array join reverse反转 sort排序 concat 拼接 slice splice 数组 //定义数组 var a = []; //使用Array定义一个数组, var a1 ...
- IDEA 相关问题
IntelliJ Idea 常用快捷键列表 Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导 ...
- Vue教程:组件Component详解(六)
一.什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功 ...
- 阅读《RobHess的SIFT源码分析:综述》笔记