美文网首页
ES6 几个语法。

ES6 几个语法。

作者: 名字很容易想 | 来源:发表于2019-01-09 16:44 被阅读0次

)])1.定义变量使用let 代替var

---作用域

{    let name = 'xiaoming'  }  console.log(name)    // null

{ let name = 'xiaoming'    console.log(name) }      // xiaoming

{let name = 'xiaoming'  name = 'xiaohong' console.log(name)}   //xiaohong

const name = 'xiaoming'    name = 'xiaohong' console.log(name)} //报错const 不可更改

---字符串

使用反引号直接写变量;可写多行字符串;告别+拼接字符串

let name = 'xiaoming'

console.log('hello '+name+' \n thank you')  // hello xiaoming tank you .

console.log(`hello ${name} 

                       thank you`)   // hello xiaoming tank you .

---函数扩展

参数默认值;箭头函数;展开运算符。

const double = (num) => num*2

console.log(double(3))    // 6

const add = (num1, num2) => num1 + num2

console.log(add(2, 5))     // 7

复杂一点的箭头函数

const add = (num1, num2) => {

             return num1 + num2 

        }

console.log(add(2, 5))     // 7

function (num1, num2) {

        let num2 = num2 || 1

} //参数默认值,num2 没有参数就为1.

let arr = [5, 6]

console.log(add (...arr))  // 11 展开运算符

console.log([1, 2, 3, ...arr]) // 1, 2, 3, 5, 6 数组合并

---对象扩展

object.keys  values entries  ; 对象方法简写,计算属性;

const key = 'job'

const obj = {

    num: 1,

    str: 'xiaoming',

     work: function(){

      },

}

obj[key] = 'fe'

console.log(obj)   // { num: 1 , str: 'xiaoming', work: f work() , job: 'fe'}

可以简写成:

const key = 'job'

const obj = {

    key,

    num: 1,

    str: 'xiaoming',

     work(){

      },

[key] : 'fe',

[key + ‘world'] : 'fe'

}

console.log(obj)   // { key: job, num: 1 , str: 'xiaoming', work: f work() , job: 'fe', jobwork: 'fe'}

---解构赋值

  函数也可以多返回值;数组解构;对象解构。

let arr = [1, 2]

let [num1, num2] = arr

console.log(num1, num2) // 1, 2 .

const obj = {type: 'IT ', name: 'xiaoming'}

const {type, name} = obj

---模块化

es6 中自带了模块化机制,告别seajs和require.js

Import, import{ } ; Export, Export default; 

示例1: 文件1 module1.js

export const name = 'xiaoming'

文件2 module2.js

import {name}  from './module1'

console.log(name)   //  xiaoming

示例2: 文件1 module1,js

export default function() {

      console.log('vue.js 不错')

}   

文件2 module2.js

import sayHi from './module1'     //文件1对外暴露的函数带defaulet 不需要 { }

sayHi()   // vue.js 不错.

---es6 常用代码片段

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

arr. forEach(v=>{

    console.log(v)

})  // 1  \n 2 \n 3 \n 4

console.log(arr.map(v=>v*2))    // [2, 4, 6, 8] 

console.log(arr.every(v=>v > 0))    //   true  检验数组里面是否大于0

console.log(arr.every(v=>v > 2))    //    false

console.log(arr.filter(v=>v <= 3))    // [1, 2, 3]  过滤大于3 的元素。

console.log(arr.filter(v=>v <= 3).map(v= v*3))  //[3, 6, 9] 可以链式调用。

---数组去重

let arr1 = [1, 2, 3, 4, 2, 3]

let arr2 = [4, 3, 6, 8]

console.lot(new Set(arr1)) // Set {1, 2, 3, 4}

console.lot([...new Set(arr1)])  // 加上[... xx] 符 变成数组 [1, 2, 3, 4]

//  arr1.concat(arr2) 并集arr1和arr2.

console.lot([...new Set([...arr1, ...arr2])])   // [1,2,3,4,6,8]  合并并且去重。

// 示例:淘宝首页用了多少种标签。 

new Set([...document.querySelectorAll('*')].map(v=>v.nodeName)).size

const obj1 = {

    name: 'xiaoming',

      age: '88'

}

const obj2 = {

    fullName: 'hong',

      sex: 'male'

}

Object.keys(obj1).forEach(v=>{     // v 为对象的key, 遍历对象。

   console.log(v, obj1[v])

})  //  name xiaoming    age  88

console.log({...obj1, job:'fe' , age: 38})  // { name : 'xiaoming', age:  38, job: 'fe'}

console.log({...obj1, ...obj2,  job:'fe' , age: 38})  // { name : 'xiaoming', age:  38, job: 'fe' , fullName: 'hong', sex: 'male'}

相关文章

网友评论

      本文标题:ES6 几个语法。

      本文链接:https://www.haomeiwen.com/subject/cwvjtftx.html