阮一峰 es6速查api es6.ruanyifeng.com/#docs/numbe…
一、let :声明变量
1. let声明的变量只在代码块内有效。
2. 不可以重复声明同一个变量
3. 不存在变量提升
复制代码
二、const : 常量 (写的时候大写)
1. const声明的变量只在代码块内有效。
2. 不可以重复声明同一个变量
3. 不存在变量提升
复制代码
【面试题】let 和 var 区别
1. var声明变量可能不具有作用域,let声明变量有作用域
2. var可以声明同一个变量(覆盖),let不可以
3. var有变量提升,let没用
复制代码
一、数组的解构赋值
let [a,b,c=400] = [10,20,30]
如果没有配置则是undefined, 右侧的优先级比默认值大
复制代码
二、对象的解构赋值
let {a,b} = {a:123,b:456};
复制代码
一、字符串的解构赋值
let [a,b,c] = 'hello';
复制代码
二、函数参数
function fun([a,b]){
return a+b;
}
console.log( fun([10,20]) );
复制代码
一、模版字符串
` ${ 变量 }`
复制代码
二、字符串 新增方法
includes() ===> 和indexOf区别不大
includes() 返回值是布尔类型 true | false
indexOf() -1 || 下标
startsWith()
返回布尔值
表示参数字符串是否在原字符串的头部。
endsWith()
返回布尔值
表示参数字符串是否在原字符串的尾部。
复制代码
一、repeat
重复几次: str1.repeat(3)
复制代码
二、padStart(),padEnd()
补全: str.padStart(2,'0') ==> 返回的字符串一共2位,不够补0
使用场景可以给new Date 时分秒... 01 02 ...09
复制代码
三、trimStart(),trimEnd()
trim() ==》 去除前后空格
trimStart() ==》 去除前空格
trimEnd() ==》 去除后空格
复制代码
一、箭头函数
1.1 let fun = (形参1,形参2...)=>{
函数体
}
fun(实参1,实参2,实参3...);
1.2 如果是一个参数:
let fun = v=>{
函数体
}
fun(实参);
1.3 如果不加{},默认有return
let fun = v=>v
fun(实参);
例如:arr.filter( item=> item > 2 )
复制代码
二、箭头函数和普通函数的区别 (重点) 【面试题】
1. 箭头函数是不能new的
2. 箭头函数内部没有arguments对象
3. 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象
***一般来说箭头函数的this都基本指向于window对象
复制代码
一、函数参数的默认值
let fun1 = ( 参数={} )=>{}
let fun2 = function( 参数={} ){}
复制代码
二、…操作符
如果不是一个组合,可以合并
如果是一个组合,可以拆分
合并数组:
let arr1 = ['a','b','c'];
let arr2 = [1,2,3,];
console.log( arr1.concat( arr2 ) );
console.log( [...arr1 , ...arr2] );
复制代码
一、Array.from()
Array.from方法用于将两类对象转为真正的数组
复制代码
二、Array.of()
方法用于将一组值,转换为数组。
复制代码
三、find() 和 findIndex()
find() 查找(找到第一个)=》找到返回该成员,没有找到返回undefined
findIndex() 查找(找到第一个)=》找到返回下标,没有找到返回-1
复制代码
四、includes() ==> 类似于indexOf
找到返回true,没有找到返回false
复制代码
五、flat()
扁平化数组
参数为:表示想要拉平的层数,默认为1
复制代码
一、简单写法===>函数|方法
let obj = {
run(){
}
}
复制代码
二、简单写法===>函数|方法
let str = 'foo';
let obj3 = {
str //==> str:str
}
复制代码
三、for…of语法可以遍历对象|数组
for(let k of Object.keys(obj1) ){
console.log( k );
}
for(let v of Object.values(obj1) ){
console.log( v );
}
for(let [key,val] of Object.entries(obj1) ){
console.log( key,val );
}
复制代码
对象新增方法
一、Object.is() 判断是否相等
主要是解决ES5之前的: ==、===的问题
复制代码
二、Object.assign() [重要]==> 面试题
方法用于对象的合并
***Object.assign()方法实行的是浅拷贝,而不是深拷贝
复制代码
一、面向对象:三大特性
1、封装
隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。
2、继承
提高代码复用性;继承是多态的前提。
3、多态
父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序扩展性
复制代码
二、class基本格式
class 类名称{
constructor(){
this.属性名 = 值
}
方法1(){
}
方法2(){
}
}
复制代码
三、类继承
class 子类 extends 父类{
constructor(){
super();
this.属性名 = 值
}
方法1(){
}
方法2(){
}
}
复制代码
一、Symbol是一个独一无二的
二、Symbol是新的原始数据类型Symbol
三、Symbol的取值
四、new Set()
没有重复的值===》去重
复制代码
有几种方式去重:
1、ES6的new Set()
2、filter
3、判断逻辑的形式(N种)
复制代码
一、引入:import
***默认会找.js 、.json
1.1 引入文件全部内容
import './script'
1.2 按需引入
import {a,b,c,fun} from './a'
1.3 自定义名称引入
import xxx from './a'
复制代码
二、抛出:export
2.1 export let a = 10;
2.2 let fun = ()={}
export {fun}
2.3 let a = 10;
let b = 20;
export {a,b}
2.4 let a = 10;
let b = 20;
export default {
a,b
}
复制代码
Promise 是异步编程的一种解决方案
功能:写异步的代码,让你"同步的执行"出来
好处:让代码更好的维护或者易读
复制代码
同步:只有前一个任务执行完毕,才能继续执行下一个任务。
异步:不进入主线程,进入任务队列,只有任务队列通知主线程,某个异步任务可以执行,该任务才会进入主线程。
===========
面试题 : Promise有哪几种状态
Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。
复制代码
async 函数
一般是async和await配合起来用
***注意:如果单独使用await会报错,await需要在async中有
一、fetch
window对象下就有fetch ===> 返回的是promise对象
fetch(url,{
method:'get|post',
params:{} ==> 给后端传递的参数
}).then(data=>{
后端给前端返回的数据
data.json() : 把数据转换成对象的形式|格式
})
复制代码
二、fetch-mock
如果目前没有接口,前端自己模拟数据
2.1 下载fetch-mock
npm install fetch-mock -S
2.2 引入模块
import fetchMock from 'fetch-mock';
2.3 基本格式
fetchMock.mock(url,函数)
复制代码
一、领导
1.1 创建仓库
1.2 创建分支
1.3 初始化项目 ===> 搭建目录结构
复制代码
二、开发者
2.1 克隆代码到本地
下载仓库中指定分支的代码
git clone -b <分支名称> <分支地址>
2.2 配置本地的user.name && user.email
2.3 本地切换到远程分支
git checkout -b <分支名称>
复制代码