优秀的编程知识分享平台

网站首页 > 技术文章 正文

这些ES6的特性,你知道吗?(这些es6的特性,你知道吗)

nanyue 2024-07-20 23:48:19 技术文章 10 ℃

相信用了这么多年的ES5、很多码民估计已经发现了很多让人头疼的问题、比如块级作用域、以及让人菊花一紧的 this属性等等....... ES6的横空出世、是很多码民的一大福利,深的咱不谈、直接来看几个项目中很常见、且非常方便的几个特性、学会了基本可以解决很多问题。

取值

比如

conso data  = {
a:1,
 b:2,
 c:3
}

一般取值是这样的:

const a = data.a   const b = data.b  const c = data.c

这多捞哇,难道不知道ES6的解构吗?一行就能解决的问题、搞个好几行

ES6解构

const {a,b,c}  = data

还可以为变量名和对象属性名不同的属性创建别名、比如:

const {a:a1} = data
console.log(a1)  //1

这里还是有需要注意的地方、比如说这个对象的属性在没有值的、又没有默认值的时候容易为null 或者undefined、这种情况下就会报错了、这是时候我们给它一个默认值就好了

const {a,b,c,d,e} = data || {};

数组合并

数组合并、一般都是push、或者concat、这种方式的合并都是没有去重的、es6的扩展运算符不仅可以合并、还可以快速的去重

数组
const a ={1,2,3,4}
const b = {5,6,7,8}
const c = [...new Set([...a,...b])]  //12345678

对象
const obj1 = {a:1}
const obj2 = {b:1}
const objc = {...obj1,...obj2}  //{a:1,b:1}

if中的条件判断

多个条件的情况、有可能出现这样

if(type ==1||type==2||type==3){
.........
}

如果判断的条件多的话、代码就会很长甚至换行、可读性非常的差

ES6

const type = [1,2,3,4]

if(type.includes(type)){
  ....
}

可选链式操作符

一般的写法

const name = obj && obj.name;

ES6的写法

const name = obj?.name;

非空验证

一般的写法

if(value !== null && value !== undefined && value !== ''){
    //...
}

ES6中新出的空值合并运算符

if(value??'' !== ''){
  //...
}

箭头函数

一般的写法(注意普通的写法this的指向和箭头函数的this)

function example(){
  //....
}

ES6的写法(箭头函数里的 this 指向定义位置的 this

const fn = () => {
  console.log('菜鸟小陈');
}

判断字符串是否以某字符串开头或结尾,返回布尔值

let str = 'boobming';
str.startsWith('boob');
// true
str.endsWith('ming');
// true

Tags:

最近发表
标签列表