javascript工作中常用的es6语法(1)

1.let(变量) 与 const(常量)

在es6中我们通常用let来定义变量和const来定义常量 ,它们都是块级作用域 ,在同一个代码块中不允许重复声明

很多小伙伴搞不明白let和var的区别:

var定义变量存在变量提升,没有块级作用域,容易造成变量污染

console.log(a) //undefined

var a = 10


for(var b = 0;b < 10; b++){

}

console.log(b)// 输出10 大括号外面还是可以输出

let定义变量就不同了,它不存在变量提升问题,只有定义之后才能使用此变量(不存在变量提升一但 let a =10 没有定义前输出都会报错) ,而且它有{ }作用域(在大括号外面输出 ib也会报错is not defined)

console.log(a) //ReferenceError: a is not defined

let a = 10


for(let b = 0;b < 10; b++){

}

console.log(b)//ReferenceError: b is not defined

const 主要特性:

不存在变量提升问题,只有定义之后才能使用

此变量const 定义的常量,无法被重新赋值

当定义常量的时候,必须定义且初始化,否则报语法错误

const 定义的常量,也有 块级作用域

const 定义变量为对象,可修改对象里的值

console.log(c)//ReferenceError: a is not defined

const a = 10

a = 20 //无法赋值a

const b = {
    a:1
}

b.a = 2

console.log(b.a)// 输出2,const定义变量为对象,可修改对象里的值

2.模板字符串

let name = "小明"

let msg = `${name}会唱歌`

console.log(msg) //小明会唱歌

3.变量的解构赋值

const person = {
    name:'小明',
    skill:'唱歌',
    age:18
}

const { name, skill, age } = person

console.log(name, skill, age) // 小明,唱歌,18

const personList = ['小明','小红','小亮']

const [ xiaoming, xiaohong, xiaoliang ] =  personList

console.log(xiaoming, xiaohong, xiaoliang) // '小明','小红','小亮'


4.箭头函数

在es6中 ,提供了函数的简洁写法 ,我们称之为箭头函数 ,箭头函数,本质上就是一个匿名函数 ,箭头函数的特性: 箭头函数内部的 this, 永远和 箭头函数外部的 this 保持一致 ,例如this:

//基本用法,定一个function
let a = ()=>{
    //代码区域
}

//指向问题,this指向
let b = {
    say:()=>{
        console.log(this)
    }
}

b.say()// this => window

5.对象扩展

属性简写:允许对象中直接写变量 ,这时属性名为变量名 ,属性值为变量值

let name = '小明'

let age = 18

let person = {
    name,//不需要name:name
    age, //不需要age:age
    skill(){//不需要skill:function(){}
        console.log('唱歌')
    }
}

6.(Spread Operator)展开运算符(...)

最常用的方法有三个

将字符串转成数组

合并数组

浅克隆

//字符串转成数组
let str = 'abcd'

const list = [...str]

console.log(list)//[a,b,c,d]


//合并数组

const a = [1,2,3]

const b = [4,5,6]

const c = [...a,...b]

//浅克隆 适用对象或者数组

let d = [...a]

let obj = {
    a:1,
    b:2,
    c:3 
}

let obj2 = { ...obj }

console.log(d)// [1,2,3]

console.log(obj2)//{ a:1,b:2, c:3 }

6.includes大致有两用法

includes查找数组书否包含值

查找字符串是否包含 "xiaoming"字符串

let arr = [1,2,3,4,5]

arr.includes(1) // true

arr.includes(10) // false

let str = "Hello world, welcome to the xiaoming"; 

let n = str.includes("xiaoming")//true

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值