ES6基础小知识

变量/常量声明

变量let不存在变量提升,不影响作用域)
常量const不可以修改,数组与对象可以(常量指向的是对象指针)

变量解构赋值

// 数组
let [a,b,c] = arr;
// 对象
let {a = 0, b = 0} = obj;
// 已声明变量
({x} = obj)
// 字符串
const [ a, b ] = 'xzp';
let { length:len } = 'xzp';
// 函数参数解构赋值
function add([x,y]){ return x + y }// 传入数组
function move({x=0,y=0} = {}){ return [x,y]}// 传入对象

字符串扩展

1.字符串的遍历器接口 for of
2.模板字符串 let str = `xzp${}`;
3.新增方法:includes->查找字符串,布尔值
  startsWith/endsWith->以。开头/结尾,布尔值
  repeat(number)->字符串重复,正整数
  padStart/padEnd(number,str)->头部/尾部填充str,直到length=number
  trimStart()和trimEnd()->去掉头部/尾部空格
  replaceAll()->替换全部

Number扩展

Number.isNaN(),Number.parseInt(),Number.parseFloat()
Number.isFinite()是否有限,Number.isInteger()是否为整数
Number.isSafeInteger是否为可准确表示的整数-2^25到2^25之间

函数扩展

1.箭头函数
    this指针是静态的,且无法修改,指向外层第一个函数的this
    不能作为构造函数
    不能使用arguments变量
2.函数形参可以赋默认值
3.rest参数,获取函数剩余的参数

数组扩展

新增find、findIndex、fill、includes
// find 满足条件返回value,终止循环,未找到,则value=undefined
let value = arr.find((value, index, arrx)=>{
    return true/false
});
// findIndex 满足条件返回index,未找到,则返回-1
let flag = arr.findIndex((value,index,arrx)=>{
  return true/false
})
// 填充数组,value:填充内容,起始位置start,end:结束位置
arr.fill(value, start, end)
// includes(value, index)方法,value查找值,index开始查找位置
let flag = arr.includes(value, index)
// 存在value返回true

对象扩展

新增方法Object.keys(); Object.values();Object.assign();
Object.is()

扩展运算符…

对象与数组
  let a = {...obj};
  let a = {...arr};

生成器函数(可以解决回调地狱)

function * sayHay(){
    // todo
    yield '第一段next';
    // todo
    yield '第二段next';
}
let iterator = sayHay();
iterator.next();// 第一段
iterator.next();// 第二段
iterator.next();// undefined
function getId(){ 
    setTimeout(()=>{ let data ='19970920'; iterator.next(data) // 传给下一个yield},1000)
}
function getName(id){ 
    setTimeout(()=>{ let data ='xzp';},1000)
}
function * gen(){
    let id = yield getId(); // id = 19970920
    yield getName(id);
}

ES6集合set

let s = new set();
s.size 元素个数 s.add('add') 新增元素 s.delete('删除元素') 删除元素
s.clear 清空集合 集合类似于数组
去重 let arr = [1,2,2,3,4,5,4,5];
let result = [...new Set(arr)];
交集 let arr2 = [5,6,4];
let result = [...new Set(arr)].filter(item=> new Set(arr2).has(item));
并集 let result = [...new Set([...arr, ...arr2])];

ES6 map

let m = new Map();
新增元素 m.set('name','lxz')

Promise对象

let p = new Promise((resolve, reject)=>{})
p.then(value=>{// resolve执行函数
},reson=>{// reject执行函数
}).catch(error=>{// 异常穿透
})

class的基本语法、继承

ES6继承:class 子类名 extends 父类名
class Xzp extends Person{
    constructor(props){
        super(props)
    }
}
1.原型链继承
function Xzp(){ this.love = "yyy" }
Xzp.prototype = new Person()
/* 子类实例,无法向父类构造函数传参、单一继承、所有实例共享父类实例属性 */
2.借用构造函数继承
function Xzp(name){
    Person.call(this, name)
    this.love = "yyy" 
}
let xzp = new Xzp()
/* 无法实现构造函数复用,子类实例存在父类构造函数的副本 */
3.组合继承
4.原型式继承
5.寄生式继承
6.寄生组合式继承
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React是一种用于构建用户界面的JavaScript库,它提供了一种声明式且高效的方式来创建用户交互的UI组件。而ES6是一种JavaScript的最新标准,它引入了许多新的语法特性和功能,使开发者在编写代码时更加高效和简洁。 对于React的入门基础,首先需要了解React的核心概念,包括组件、状态和属性。组件是React的基本构建块,用于构造用户界面,而状态和属性用于控制和传递数据。在React中,可以使用JSX语法编写组件,并通过组件的状态和属性来控制组件的渲染和交互。 在学习React的基础后,可以进行项目实战来巩固所学知识。提供一份仿京东电商网站的项目实战,可以帮助初学者将理论知识转化为实际开发能力。 仿京东电商网站项目可以包括以下内容: 1. 搭建项目框架:使用Create React App等工具创建一个React项目的基础框架。 2. 页面布局和组件划分:根据京东网站的页面结构,设计并划分各个组件的功能和布局。 3. 数据获取和展示:使用Ajax或Axios等技术从后端API获取数据,并将数据展示在页面上。 4. 状态管理:利用React的状态管理机制,处理用户的交互操作和数据更新。 5. 路由设置:使用React Router等工具实现不同页面之间的路由控制和导航。 6. 用户交互:实现用户的注册、登录、购物车、下单等功能,并实时更新页面展示。 7. 响应式设计:确保网站在不同设备和屏幕上的适配和响应性。 8. 优化和性能:使用代码分割、懒加载、缓存等技术提升网站的性能和用户体验。 通过完成仿京东电商网站的项目实战,可以对React和ES6的应用有更深入的理解和掌握。同时,项目实战也提供了一个实践的平台,能够帮助开发者提升自己的实际开发能力,更好地应对实际项目开发的需求和挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值