第一章 JavaScript基础
数据类型
简单数据类型:数、字符串、布尔值、undefined、null、symbol
复杂数据类型:数组、函数、对象、日期、正则表达式
null表示变量没有值(手动赋值了null),undefined表示未赋值
1 | function fn(b=1){ |
运算符
算数运算符:+
、-
、*
、/
、%
、++
、--
赋值运算符:=
、+=
、-+
、*=
、/=
、%=
比较运算符:==
、===
、!=
、>
、>=
、<
、<=
逻辑运算符:&&
、||
、!
位运算符:&
、|
、~
、^
、<<
、>>
位运算符相关操作见:JavaScript 位运算符 (w3school)
真值和假值
数值类型 | 转换成布尔值 |
---|---|
undefined | false |
null | false |
布尔值 | true为true,false为false |
数字 | +0、-0、NaN为false,其他为true(包括负数) |
字符串 | 根据长度判断,0为false,其余为true |
对象 | true |
⚠️JS对象在判断中永远为true,因此不适合直接用于判断
相等运算符
…(挖坑待补)
控制结构
条件语句:if...else
循环:for
、while
、do...while
函数
函数参数可以使用arguments
访问
JavaScript面向对象编程
class
、Function.prototype
第二章 ECMAScript和TypeScript
ES2015<–>ES6
ES2016<–>ES7
ES2017<–>ES8
ES2018<–>ES9
ES.Next
…
ES6新功能
-
let、const:①局部作用域;②let不允许重复定义;③const必须在声明时赋值
-
模版字面量:
{book.name}
-
箭头函数:
(a)=>{return a+1}
①简化:a=>a+1
;②this指向 -
默认参数:ES6之前,设置默认参数需要在函数内使用
if(x===undefined) x=1
-
展开运算符:
...
①展开数组;②代替arguments接收参数fn(a,b,...x)
-
对象属性增强:①数组解构:
let [x,y] = ["a","b"]
;②属性简写:{x:x,y:y}
写为{x,y}
-
使用类进行面向对象编程:①使用class而不是function原型函数表示类并实例化;②继承:
class A extends B{}
;③属性存取器get
、set
-
乘方运算符:
2**3 = 8
-
模块化:①
export {}
=>import {} from "X.js"
;②export ...; export...;
=>import * as XXX from "X.js"
③export default ...
=>import ... from "X.js
TypeScript
见博客文章 TS总结
第三章 数组
- 最好用来存储同一种类数据(虽然JS数组可以存储不同类型元素),数组是可修改、动态增长的
创建数组
1 | let arr = new Array(); // 创建空数组 |
数组方法
-
push、pop、shift、unshift
-
concat、every、filter、forEach、join、indexOf、lastIndexOf、map、reverse、slice、some、sort、toString、valueOf
-
ES6新增:@@iterator、copyWithin、entries、includes、find、findIndex、fill、from、keys、of、values