1 基础
- 1.1 定义:面向对象的跨平台的脚步语言。
- 1.1.1 对象:属性和方法
- 1.1.2 跨平台:不依赖于操作系统,也不依赖硬件环境。
- 1.1.3 HTML文件必须在浏览器里执行,JS文件嵌入到HTML文件里才能执行。
- 1.2 特点:
- 1.2.1 解释性脚本语言
- 1.2.2 运行在浏览器(浏览器内核带有js解释器,Chrome v8引擎)
- 1.2.3 弱类型语言(松散型)
- 1.2.4 事件驱动(动态)
- 1.2.5 跨平台
- 1.3 用途:视觉交互、数据交互、node.js(后台)
- 1.4 内容:ECMAScript、BOM、DOM
- 1.5 历史
- 1.6 引用:
2 变量:存储数据的容器。
- 2.1 变量声明:var
- 2.2 变量特点:弱类型
- 2.3 命名规范:
- 2.3.1 首字符:字母+下划线+$
- 2.3.2 字母+数字+下划线+$
- 2.3.3 区分大小写
- 2.3.4 匈牙利命名法:驼峰命名法
- 2.4 关键字:关键字用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。
- 2.5 保留字:未来可能作为标识符存在。
- 2.6 变量类型:
- 2.6.1 基本类型:Number、String、Boolean、Null、undefined、Symbol
- 2.6.2 引用类型:Object、Function
- 2.6.3 特殊类型:null、undefined
- 2.7 类型判断:typeof()
- 2.8 类型转换
- 2.8.1 隐式类型转换
- 2.8.2 显式类型转换
- 2.9 转义字符:\
3 运算符:算术、逻辑、关系
- 3.1 算术运算符:四则运算±*/、求余%(取模)、++/–
- 3.2 逻辑运算符:&&与、||或、!非
- 3.3 关系运算符:==(相等)、!=(不等于)、<(小于)、>(大于)、<=(小于或者等于)、>=(大于或者等于)
- 3.3.1 判断运算符两侧的结果是否满足规则,满足结果即为true,否则false。
- 3.3.2 = 和 == 以及 === 的区别
4 结构:顺序、选择(分支)、循环
- 4.1 顺序结构:
- 4.2 分支结构:
- 4.2.1 if/if…else
- 4.2.1.1 嵌套:if(){}else if(){}else{}
- 4.2.1.2 false:0、-0、null、undefined、" "、NaN
- 4.2.2 switch…case
- 4.2.2.1 全等匹配
- 4.2.2.2 break穿透
- 4.2.1 if/if…else
- 4.3 循环结构:解决重复的操作
- 4.3.1 for
- 4.3.2 while
- 4.3.3 do…while:至少执行一次
- 4.3.4 break
- 4.3.5 continue
5 函数
- 5.1 用途:封装重复执行的代码
- 5.2 声明:
- 5.2.1 function fn(){}
- 5.2.2 var fn = function(){}
- 5.2.3 var fn = new Function()
- 5.3 参数
- 5.3.1 形式参数
- 5.3.2 实际参数
- 5.3.3 Argument
- 5.4 return
- 5.5 变量作用域
- 5.5.1 全局变量
- 5.5.2 局部变量
- 5.5.3 变量的生命周期
- 5.6 预编译
- 5.6.1 检验语法错误
- 5.6.2 变量提升
- 5.6.2.1 var关键字声明的变量:提示声明到作用域顶部,但不提示赋值
- 5.6.2.2 function关键字声明的函数:提升函数体整体
- 5.7 执行上下文
- 5.7.1 栈:先进后出(FILO),栈顶插入(压栈),栈底删除(出栈)
- 5.7.2 队列:先进先出(FIFO),对头删除,队尾插入
- 5.7.3 堆:动态分配
- 5.8 递归
- 5.8.1 自身调用
- 5.8.2 循环终点(出口)
- 5.9 驱动事件
- 5.10 构造函数