创建: 2017/09/16
更新: 2017/09/24 更改标题 【JavaScript 概要】-》 【JavaScript 基础】
完成: 2017/09/25
更新: 2017/10/09 补充函数声明也会上卷
更新: 2018/01/22 加红
函数也会上卷
补充内置Obejct等,完善欠缺的内容, 把标题列加粗,字体放大
改变文档结构, 标题单起一行
修改标题 【JavaScript 基础】 -> 【JavaScript 基础 (变量声明, 数据类型, 控制语句)】
更新: 2019/02/26 补充for/in相关
纠正插值方法 `${}`
待完成事项: TODO
注释 |
| 所有文末加;
|
变量声明 |
var |
注:无论声明在哪里,都最先执行 重复声明的话只看第一个(因为全部最先执行,所以没有影响) |
let |
类似c语言中的变量 和var的区别
如果有代码块,则作用域为代码块内部(对纯代码块也有效) | {let a = "测试";} print(a); //会报错 | 变量声明按行执行,不是最开始执行 | print(a); var a = 21; | 不能重复声明 | let a; let a; //会报错 | 不上卷(不会预先全部声明,遇到代码处才声明) | | | | | | | | | | | | | |
|
const |
let的常数版
值型 | 不能变更 | 参照型 | 不能变更object,但是可以变更object的属性(property) | | | | | | | | | | | | | | | | |
|
| |
| |
数据类型 |
值型 |
数值
没有整数浮点数的区别们,都是64位浮点数(double) 数组的索引已经比特运算作为long int(32位) 符号的记法
分类 | 写法 | 说明 | 整数 | 10进制 123 | 正常写 | 16进制 ES6 0x2a | 0x开头 | 8进制 ES6 0o12 | 0o开头 | 2进制 0b110 | 0b开头 | | | | | 浮动小数点数 | 整数.小数 | 3.14 | .小数 .123 | 整数部分为0可省略 相当于0.123 | 科学计数法 6.02e21 1.123E-12 | e和E没有区别 | | | | | | |
特殊值
分类 | 记法 | 说明 | 全局变量 | Infinity | 无穷大 | NaN | Not a Number 不定值 | | | | | | | | | | | | | | | | | Number的属性 | Number.POSITIVE_INFINITY | 正无穷 | Number.NEGATIVE_INFINITY | 负无穷 | Number.MAX_VALUE | 能用的最大值 | Number.MIN_VALUE | 能用的最小值 | Nunmber.NaN | 不定值 | Number.EPSILON ES6 | 一个特定量 | Number.MIN_SAFE_INTEGER ES6 | -9007199254740991e-16 | Number.MAX_SAFE_INTEGER ES6 | 9007199254740991 | | | | | |
字符串
"..."或者'...'包围 插值
转义符号
\0 | 空字符 | \b | back space(退格) | \t | tab | \n | 换行 | \v | 垂直tab | \f | 换页 ? | \r | 回到行开始 | \' | | \" | | \\ | | \xXX | 2位的16进制数,表示拉丁文字 | \uXXXX | 4位16进制数表示Unicode文字 | \u{XXXXXX} | 16进制的编码表示Unicode文字 | | | | | | | | | | | | | | |
|
布尔值
true,false |
特殊值
undefined, null 注意: undefined不能用来代入
symbol | 和其他的都不一样的值,相当于哈希值 | 生成 |
| var sym = Symbol() 注意: 每次呼出Sybmol()得到的值都不一样 | 带参数 | var sym = Symbol("test") 参数作为符号的描述 | 呼出描述 | 用toString() 例: sym.toString() | 以字符串为种子生成符号 | var sym = Symbol.for("...") 注: 同一字符串的符号完全相同 | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
符号
TODO p39 占位符 ${...} |
模板
TODO p41 第八章 |
|
|
|
|
对象(object)
| 类似于Swift的词典,c的哈希表与值的组合 |
参照型,共有一个 |
|
|
|
|
|
|
|
|
控制语句 |
条件句 |
if/else |
if () {
...
}else if (...) {
...
}else {
...
}
| switch |
switch(...) {
case 1:
...;
break;
case 2:
...;
break;
case 3:
...;
break;
default:
...;
}
| try/catch/finally | |
|
循环句 |
while |
| do/while |
do {
...
...
} while(...)
| for |
// 注: 三个条件可以随意省略
for(...; ...; ...) {
...
...
}
| for/in | 注: 获取的是属性名的字符串(获取属性用obj["name"]) Object.prototype等内部的实例属性/方法的enumerable都是false
for(var i in sample) { // 可以用已有的变量代替var i
...
}
· 有些库对Object.prototype添加方法时enumerable没设为false, 避免误操作的方法
for (var p in obj) {
if (!obj.hasOwnProperty(p)) { continue; }
...
}
// 或者
for (var p in obj) {
if (typeof(p) === "function") { continue; }
...
}
| for/of | TODO: 8 |
|
跳跃句 |
标签 | 标签名: statement 只有break和continue能用到标签
| break | 只有switch和循环文可用 break; 跳出当前循环 带标签用法: break 标签名; | continue | 只有循环能用 continue; continue 标签名; | return | 返回后面带的参数,并结束函数 |
|
| |
转载于:https://www.cnblogs.com/lancgg/p/8281726.html