1、基础数据类型:
①Number --数字②String–字符串③Boolean–布尔④Undefined⑤null
2、引用数据类型:
①Objec–t对象②Array–数组③Function–函数
3、if后边的()中下面的数据会隐式转化为false:
0,-0,undefined,null," "(空串)
声明变量用let声明常量用const,IIFE(立即调用函数)中的this指向window
4、new的原理:
①在函数内部创建一个空对象
②内部中的this指向这个空对象
③返回这个空对象
.的优先级高于new
5、遍历:
①for循环:
for(let i=0,i<arr.length,i++){
}
②forEach
arr.forEach((item=>{
})
③for...in...针对对象
for(let key in arr){
}
④for of 遍历字符串
for(let v1 of arr){
}
6、call
call的作用:改变函数中的指向指向谁就call谁
例子:
say.call(obj)让say中的this指向obj并让say执行
apply除了传参需要数组其他的与call一样
7、检测数据的数据类型
object.prototype.tostring.call(数据)
tolowercase:将字符串中的大写字母转化为小写字母
bind:让fn中的this指向obj;返回一个改变this的函数
8、原型继承:
①继承父类的共有属性和私有属性作为子类的共有属性
②核心代码:son.prototype = new Father 需要手动修改 son.prototype constructor = son
代码:
function Father (){
this.a = 110;
}
Father.prototype.getA = function(){
console.log(this.a)
}
son.prototype = new Father;
son.prototype constructor = son;
let son = new son
9、call继承:
①继承父类的私有属性作为子类的私有属性
②Father.call(this)
代码:
function Father(){
this.a = 110;
}
Father.proyotype.getA = function(){
console.log(this.a)
}
function son(){
Father.call(this);
}
let son = new son;
10、组合继承:call继承+原型继承
父类的私有属性被继承两次,先访问私有属性
11、es6小结
1)say:function(){…} === say(){…}
2)箭头函数:let gn = function(){…} === let gn = ()=>{…}
函数简写成箭头函数:
①如果只有一个形参()可以不写
②如果只有一个普通语句{}可以不写
③如果只有一条返回语句{}和return都可以不写
④如果返回了一个对象,返回的对象需要用()包一下
3)arguments:函数内部的一个对象,只会出现在函数中
①用来收集实参
②伪数组:本质是对象
③实参比较多可以用arguments来接收
…args叫rest参数
拓展运算符:…
模板字符串:${name}
4)class类
constructor::new的时候会调用constructor函数
constructor添加的都是私有属性
constructor外添加的都是公有属性(函数)jump
static给father函数中添加私有属性
5)让son去继承father中的属性和方法
class son extends father
let son = new son();(不能直接用constructor)
创建私有属性要用super();
调用父的constructor+私有属性
6)endswith判断结尾是不是一xxx结尾
startswith(‘xxx’)字符串是否以xxx开头
includes判断是否包含;repeat重复;parseInt把小数转化为整数
7)ES6中将全局方法parseInt()和parseFloat()放到number类;在number类上,添加了一个api叫isInteger()来判断一个数是否为整数
(2**3)=2^3
箭头函数中的this需要找上一级
8)
function *generator(){
yeild “v1”
} //前边加星号表示生成器;yelid生成一个迭代器
generator();
迭代器可以迭代对象:value表示迭代出的值,done表示是否迭代完毕
下面的对象是可迭代的:可迭代对象内部自带迭代器
Array;Set;Map;
Object不是可迭代对象,特殊String也具备迭代器,可以用for of 进行迭代输出
9)模板字符串:https://www.cnblogs.com/xiaowie/p/11601599.html
10)set 和map
let mySet = new set
1、mySet.add()------添加元素
2、mySet.size()-------统计元素的个数
3、mySet.has()-------判断容器中是否有某个元素
4、mySet.delete()-------删除某个元素
5、mySet.clear()-------清除所有元素
weakSet: 和mySet用法相同,里边元素不允许重复,只存引用数据类型数据
map中可以是任意数据类型
11)navigator:获取浏览器信息