ES6基本概念,对比JS使用和区别

 

变量定义

let变量和var变量的区别


 
  作用域
      js定义变量为var,var定义的变量,代码块里外都能用
      es6定义变量为let,let定义的变量,只能在当前代码块里面使用
  特点
      var可多次定义同一变量
      let只能定义一次变量,不能在定义同一个变量

const常量

     const定义变量时,需要赋值,复制之后就是一个常量,不能再改变了
     如果用conse定义对象时,对象不能重新赋值,但对象的属性可以重新定义或赋值
 
 const person = { age : 20}
 
 const persoon.age = 30  可
 
 const person = {age:30} 不可

 


  

数据类型,数值结构

//传统写法
let a=1,b=2,c=3
console.log(a, b, c)

//es6写法
let [x,y,z] = [10,20,30]
console.log(x, y, z)

 

//定义对象
let user = {"name":"lucy","age":20}

//传统从对象里面获取值
let name1 = user.name
let age1 = user.age
console.log(name1+"=="+age1)

//es6获取对象值,定义的变量必须和对象的键一致
let {name,age} = user
console.log(name+"**"+age)

 

模板字符串

自动换行
let str1 = `hello,
  es6 demo up!`


其里面可使用表达式获取变量值
let name = "Mike"
let age = 20
let str2 = `hello,${name},age is ${age+1}`


调用方法
function f1() {
  return "hello f1"
}
let str3 = `demo, ${f1()}`

 

方法简写,省略:function

 

//传统方式定义的方法
const person1 = {
    sayHi:function(){
        console.log("Hi")
    }
}


//调用
person1.sayHi()


//es6
const person2 = {
    sayHi(){
        console.log("Hi")
    }
}

  

三个点,对象拓展运算符

 

对象复制
let person1 = {"name":"lucy","age":20}
let person2 = {...person1}


对象合并
let name = {name:'mary'}
let age = {age:30}
let person3 = {...name,...age}

 

箭头函数

 

//1.传统方式创建方法
//参数 => 函数体
var f1 = function(m) {
  return m
}


//使用箭头函数改造
var f2 = m => m


//2.复杂一点方法
var f3 = function(a, b) {
  return a+b
}


//使用箭头函数
var f4 = (a,b) => a+b


//xxx.onclick=function(a=10,b=20){ }  可以为函数设置默认值,没传参数就用默认值

xxx.onclick=function(){ }
var xxx={fn:function(){} }
xxx.forEach(function(){})
setTimeout(function(){})
var xxx=function(){}
格式:把普通函数的function去掉,再在小括号后面加上j箭头符号(=>//箭头函数
xxx.onclick=()=>{ }
var xxx={fn:()=>{} }
xxx.forEach(()=>{})
setTimeout(()=>{})
var xxx=()=>{}

 

ES6类语法

 

//E6的类
class  Person{
    constructor(name,age){
        this.name=name
        this.age=age
    }   
    //方法
     sayHi(){ console.log("你好,世界!") }
    
    //静态属性和方法,加一个 static
    static a=100
    static to(){ console.log("大家好") }
    
 }


//创建对象
var p1=new Person("小明",20)
 //执行方法
  p1.sayHi()


//执行静态属性和方法
Person.a
Person.to()


 

 

 

 

posted @ 2022-03-09 14:10  八月正凉  阅读(501)  评论(0编辑  收藏  举报