前端三部分
- HTML 超文本标记语言 结构
- CSS 层叠样式表 样式
- JavaScript 脚本语言 行为
JavaScript三部分
-
BOM 浏览器对象模型
- 控制浏览器的行为
- location 地址栏相关
- history 历史记录相关
- navigator 浏览器信息
- 弹层
- alert
- prompt
- confirm
- 定时器
- setInterval clearInterval
- setTimeout clearTimeout
- 我们平时写的兼容问题就是在写这个
- 控制浏览器的行为
-
DOM 文档对象模型
- 控制文档的内容
- 获取元素
- getElementById
- getElementsByClassName
- getElementsByName
- getElementsByTagName
- querySelector
- querySelectorAll
- 创建元素
- createElement
- createTextNode
- createComment
- 操作元素属性
- .语法/[]语法操作属性 将元素当作JS对象来处理
- 如果是HTML标准属性 会显示在标签上
- 如果是非HTML标准属性 不会显示在标签上但是可以成功
- setAttribute(name, value) 设置HTML属性并显示在页面中
- name HTML属性 包括标准的和非标准的
- value 属性值
- getAttribute(name) 获取
- removeAttribute(name) 移除
- innerHTML 设置元素的文本 但是会当作HTML文本来处理(会渲染)
- innerText 设置元素的文本 但是只是当作文本显示
- .语法/[]语法操作属性 将元素当作JS对象来处理
- 节点
- 1 元素节点
- 2 属性节点
- 3 文本节点
- 8 注释节点
- 9 文档节点
- 节点属性
- nodeType
- nodeName
- nodeValue
- 操作元素的关系
- 父子关系
- parentNode 返回父节点
- childNodes 返回子节点的集合
- children 返回所有元素子节点
- firstChild 第一个子节点
- firstElementChild 第一个子元素
- lastChild 最后一个子节点
- lastElementChild 最后一个子元素
- 兄弟关系
- previousSibling 前一个节点
- previousElementSibling 前一个元素
- nextSibling 下一个节点
- nextElementSibling 下一个元素
- 父子关系
- 获取元素
- 控制文档的内容
-
ECMAScript 核心语法
-
变量
- 定义 通过var关键字定义
- 命名规范
- 整体以数字、字母、下划线、美元符号组成 不能以数字开头
- 不能以关键字、保留字做变量名
- 驼峰命名法
- 区分大小写
- 允许定义同名变量
-
数据
- 定义 计算机中的一切都是在操作数据
-
数据类型
- 基本数据类型(值类型、原始数据类型)
- number 数字 1 2 3 4 NaN Infinity…
- string 字符串 “a”、 “hello”…
- boolean 布尔值 true false
- undefined 未定义 undefined
- null 空值 null
- 引用类型(复合类型、复杂类型、对象类型)
- object 对象 [] {} function new Date()
- 基本数据类型(值类型、原始数据类型)
-
判定数据类型
- typeof typeof()
- 两个bug
- 对null进行类型判定结果为 “object”
- 对function进行类型判定 结果为 “function”
-
数据类型之间的转换
- 字符串转数字
- parseInt
- parseFloat
- Number
- +字符串
- ++ –
- 数字转字符串
- 拼接一个空字符串
- toString()
- toFixed()
- String()
- 转布尔值
- Boolean()
- !!
- JS中的六种为false的值
- 0
- null
- NaN
- undefined
- “”
- false
- 字符串转数字
-
运算符
- 数学运算符 + - * / %
- '+'运算符有两个含义: 连字符和加法运算
- 两个运算数中有任何一个是字符串就会当作连字符
- 两边都是数字时会当作加法运算符
- '+'运算符有两个含义: 连字符和加法运算
- 逻辑运算符
- 逻辑与 &&
- 逻辑或 ||
- 逻辑非 !
- 短路语法
(1 + 2) || (3 + 4)
(0) && (3 + 4)
- 自增自减运算符
- ++ –
- 如果出现在变量左侧 先自增\自减再参与表达式的运算 如果出现在变量右侧 表示先参与运算再自增\自减
- 比较运算符
- < > == >= <= != === !==
- == 表示相等 只比较值是否相等 会做数据类型的隐式转换
- === 表示全等 既比较值又比较数据类型
- 三元运算符
- expression ? value1 : value2
- 如果表达式为真 使用value1的值 否则使用value2的值
- 数学运算符 + - * / %
-
分支语句
- if语句
- switch语句
-
循环语句
- do while
- while
- for
-
数组
- 概念
- 定义
- 字面量
- new Array()
- 属性
- length
- 方法
- push
- pop
- shift
- unshift
- concat
- reverse
- sort
- slice
- splice
- join
- indexOf
- forEach
- map
- every
- some
- filter
- find
- findIndex
- copyWithin
-
对象
- 概念
- 定义
- 字面量
- new Object()
- 属性
- 方法
- 循环 for in
-
字符串
- 概念
- 定义
- 字面量
- 构造函数
- 属性
- length
- 方法
- concat
- slice
- substring
- substr
- split
- replace
- indexOf
- search
- match
- toUpperCase
- toLowerCase
- trim
-
函数
- 概念 函数就是用来装代码的容器 能够实现一些功能可以叫做工具
- 定义
- 函数声明
- 函数表达式
- 参数
- 形参
- 实参
- arguments
- 函数体内
- this
- arguemnts
- return
- 改变函数this指向的方式
- call
- apply
- 函数自执行
- 递归
-
作用域
- 主要是规定 变量的起作用的范围
- 只向上层作用域中寻找变量
- 只有函数可以开辟作用域
-
日期
- Date
- 传参方式
- 传递1个参数
- 传递2个参数
- 传递3个参数
- 传递4个参数
- 传递5个参数
- 传递6个参数
- 方法
- getFullYear
- getMonth
- getDate
- getDay
- getHours
- getMinutes
- getSeconds
- getMilliSeconds
- getTime
-
数学
- Math
- 方法
- random
- abs
- floor
- ceil
- round
- pow
- sqrt
- max
- min
-