1.js编写的位置
非布尔值的与或运算
对象的属性名和属性值
基本数据类型和引用数据类型
对象字面量
函数
立即执行函数
枚举对象中的属性
全局作用域
函数作用域
this
this情况总结:
构造函数
this
原型
垃圾回收
数组
数组字面量
数组的几个方法
silce
splice
concat
join
sort
call和apply
argument
Date
random
包装类
正则表达式
正则语法
邮件的正则
事件
文档的加载
dom查询
获取元素节点的子节点
childNodes
firstChild
修改value属性值
value能获取到文本框里面的内容,如果要修改就直接um.value=
dom的其他查询方式
dom的增删改查
创建元素节点对象:
创建文本节点对象:
添加子节点:
在指定的子节点前面插入新的子节点:
替换子节点:
删除子节点:
添加子节点简单方式:
添加子节点两种方式结合:
点击超链接取消跳转的操作:
confirm
使用dom操作css
获取元素的样式
获取元素样式通常做法:(将所以浏览器考虑在内)
其他样式的相关属性:
clientWidth,clientHeight
offsetWidth,offsetHeight
offsetParent:
scrollWidth,scrollHeight
scrollLeft,scrollTop
检查滚动条是否滚动到底:
事件对象:
clientX和clientY
pageX和pageY
事件的冒泡:
事件的委派
例如:
事件的绑定:
通过下面的方法同一个对象绑定的多个触发事件不会被覆盖
综合写法:
事件的传播:
鼠标的滚轮:
键盘事件:
获得当前按下的是哪个键盘:
判断两个按键同时被 按下:
BOM
Navigator:
但是IE11中已将微软和IE相关的标识都去除了,所以基本上不能通过UserAgent来识别一个浏览器是否是IE了
判断浏览器类型的总体写法:
History:
Location
assign:
reload:
replace:
定时器简介:
关闭定时器:
延时调用:
类的操作:
通过修改类,可以一行代码修改多个样式(样式被封装到类里面了)
给元素增加样式,可以通过类操作,来添加指定的属 性值
检测对象中有没有对应的class属性值:用正则表达式
删除一个元素中指定的class属性
切换一个类:
JSON:
将JSON字符串转换为JS中的对象
将JS中的对象转换成JSON字符串:
eval():
兼容问题:
JS高级
1.数据类型
2.判断数据类型
3.数据类型相关问题
this:
原型对象:
显式原型与隐式原型:
原型链:
补充知识:
函数的隐式原型对象都是function的显式原型对象
原型链的属性问题:
instance:
原型链结构图:
原型链总结:
函数的显式原型等于空的Object实例对象
实例的隐式原型等于构造函数的显式原型
函数的隐式原型对象都是function的显式原型对象
所有函数都是function的实例
变量提升和函数提升:
注意:必须是声明的形式
输出 undefined
闭包的理解:
闭包的作用:
闭包的生命周期:
闭包的应用:
ES6
1.let变量声明以及声明特性:
特性1:变量不能重复声明
特性2:块级作用域,只能在代码块里面有效
3.不存在变量提升
4..不影响作用域链
实例:如果定义 var i 那么i的作用域是全局的,i为lenth,所以这里需要用this
如果定义let i ,那么i的作用域是在代码块里,因此直接items[i].style.background即可
2.const声明常量以及特点:
3.ES6变量的解构赋值
4.ES6模板字符串--引入新的声明字符串方式(反引号)
5.简化对象写法:
6.箭头函数
特性1:
特性2:
特性3:
特性3:
箭头函数总结:
7.函数参数的默认值设置
8.rest参数
args是一个数组
9.扩展运算符:
应用:
10.symbol的介绍与简介
symbol内置属性:
11.迭代器
for of 里面保存的是键值 for in里面保存的是键名
12生成器
生成器可以使用yield
生成器函数的参数传递:
1.可以进行整体函数传参:
2. next方法也可以传参,参数可以作为上一个yield的返回结果
13.promise
当调用resolve时,p的状态为成功,就会调用p.then里面的第一个回调函数
当调用reject时,p的状态为失败,就会调用p.then里面的第二个回调函数
promise封装Ajax请求:
Promise对象的catch方法:
其实就是将then方法的第一个回调函数省略
promise的then方法:
Set
实例1:数组去重
实例2:求交集
实例3:并集
实例4:差集
Map
Class
Class静态成员:
用static标注的属性/方法 它属于类 而不属于实例对象
类的继承:
class中的get和set
数组扩展
对象方法扩展:
如果重名覆盖,不重名不覆盖
模块化:
模块化语法:
实例:
ES6模块暴露数据语法汇总:
统一暴露:
默认暴露:
ES6引入模块数据语法汇总:
方法一:
1.通用方式
2.解构赋值形式:
当引用不同的模块出现有重复名字的时候,可以使用别名来避免报错
3.简便形式,针对默认暴露
方式二: