Es6
JS补充
- 面向对象
以对象功能来划分问题 不是步骤
二.类和对象
面向对象思维特点:1.抽取对象共有的属性 行为组织封装成一个类(模板) 2.对类进行实例化 获取类的对象
对象:具体的事物 js中对象是一组无序的相关属性和方法的集合 所有事物都是对象(数组 函数 字符串)属性(事物特征)+方法(行为功能)
类:class 抽取对象的公共部分 通过类实例化一个具体的对象
创建类 利用类创建对象new
类的继承:
Super关键字可以调用对象父类的构造函数 普通函数 super()
实例化子类输出一个方法 子类有,就输出子类方法;子类没有,就去查找父类是否有有的话,执行父类方法(就近原则)
子类继承父类利用super调用父级函数 super必须在子类this之前调用(写在子类this之前)
注:constructor里面的this指向的是创建的实例对象
里面的方法this指向调用者
三.闭包(函数)
有权访问另一个函数作用域中变量的函数(一个作用域可以访问另外一个函数内部的局部变量)
被访问的变量所在的函数为闭包函数
四.正则表达式
匹配字符串中字符组合的模式
检索替换符合某个模式的文本 过滤敏感词 从字符串获取想要的特定部分
- 创建正则表达式
- 利用RegExp对象创建: var star = RegExp(/xxx/)
- 利用字面量创建:var star = /xxx/ //里面不需要加引号
- 检测是否符合规范
表达式.test(测试文本)
var rg = /123/ rg.test(123) 符合是数字
测试文本只要包含正则表达式即返回true
- 特殊字符
边界符:^(匹配行首文本)$(行末)
Var rg =/^abc/(必须以abc开头) rg.test(abdc) 返回false
- 字符类
[ ]:一系列字符选择 只要匹配一个就可以
^[ abc]$:三选一 只有a / b/c 返回true
范围/^ [a-z]$/ 26个字母任何一个返回true
继续追加/^[a-zA-Z0-9_-]$/ 大小写字母 0-9 下划线 横杠
[^ ]:内部表示取反
- 量词符
*:0/more;+:one/more;?:0/1
{n}:n次; {n, }:>=n; {n,m}:n~m次 /^a*$/ /^a+$/ /^a?$/ /^a{n, }$/
/^[a-zA-Z0-9_-]{6,16}$/: 6-16次输入符合的
- 正则替换
replace(/xxxx|yyy|aa/g/i/gi,’****’) g:全局替换 i:忽略大小写 gi:两者都有
Es6
- Let关键字(声明变量)
- 只在所处的块级有效
在大括号内可以输出 在大括号外不能输出
b输出 a报错