ES6语法

1.var let const区别

  let有作用域限制,只限于当前代码块,没有作用域的提升

  let不能声明相同的变量

  const:主要声明常量

2.解构赋值

//数组解构赋值
let [name,age,sex] = ['张三',18,'男'];
//对象解构赋值
let {name,age,sex} = {name:'李四',age:20,sex:'女'};

3.数据集合SET

  特点:类似数组,没有重复的元素(唯一的)

    开发中用于去除重复数据

    Key和Value都是相等的

  创建集合:

 let set = new Set(['张三',18,'男']);

 一个属性和4个方法:

  set.size 大小

  set.add()//添加

  set.delete()//删除  --返回true 或 false

  set.has() //查看是否有 --返回true 或 false

  set.clear()//清楚所有  无返回值

  set.keys() //拿所有键

  set.values()//拿所有值 

 

4.数据集合--map

  特点:类似于对象

  创建

const map = new Map([
['name','张三'],
['age',18],
['sex','男'],
]);
//遍历
map.forEach(function(index,value){
console.log(index+'=='+value);
})
5.新增数据类型:symbol 是独一无二的
6.Class类,通过类产生对象
7.新增函数
 console.log('Hello word'.includes('word',index)); //判断字符串中是否包含指定字符串(包含返回true) ,index可写可不写 开始位置
      console.log(url.startsWith('admin')); //以指定字符串开头
  
  console.log(url.endsWith('admin')); //以指定字符串结束
  //魔板字符串
  let s =`
    <div>
      <span>${obj.uname}</span>
      <span>${obj.age}</span>
      </div>

    `;
    console.log(s);
  8.函数
  
  function foo(a ,...param){
    console.log(a,param);
  }
  foo(1,2,3); //值 1 [2,3]
  9.循环
  
  let arr = [11,22,33,44];
  arr.forEach((item,index)=>{
  console.log(item,index);
  })
ES5
function Person(name,age){
this.name = name;
this.age = age;
}
Person.prototype = {
constructor:Person,
print(){
console.log('姓名:'+this.name+'年龄:'+this.age);
}
}

let person = new Person('张三',29);
console.log(person);
ES6:
class Person{
constructor(name,age){
this.name = name;
this.age = age;
     }
print(){
console.log('姓名:'+this.name+'年龄:'+this.age);
}
}
let person = new Person('张三',29);
console.log(person);

 

 5.数组的新用法 forEach  some filter

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<ul ref="hlist">
<li style="height: 10px">1</li>
<li style="height: 20px">2</li>
<li style="height: 30px">3</li>
<li style="height: 40px">4</li>
<li style="height: 50px">5</li>
</ul>
<button @click="getHeight()">点击获取</button>
<button @click="yzSome()">验证Some</button>
<input type="text" v-model="search" >
<table>
<tr v-for="(s ,index) in filters(search)" :key = "index">
<td>{{s.name}}</td>
<td>{{s.sex}}</td>
<td>{{s.age}}</td>
<td>{{s.mobile}}</td>
</tr>
</table>
</div>
</body>
</html>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
someArr:['张三','李四','王五'],
students:[
{name:'张三',sex:'男',age:20,mobile:'13922228888'},
{name:'李四',sex:'女',age:30,mobile:'139111133333'},
{name:'王五',sex:'男',age:50,mobile:'1394444455555'},
{name:'赵六',sex:'女',age:60,mobile:'1396666677777'},
],
search:'',
},
methods:{
getHeight(){
let heiarr = [];
let alllis = this.$refs.hlist.getElementsByTagName('li');
console.log(alllis);
//slice--切割数组 call--借调
Array.prototype.slice.call(alllis).forEach(li =>{
heiarr.push(li.clientHeight);
})
console.log(heiarr);
},
yzSome(){
let result = this.someArr.some((str)=>{
return str === '张三1';
})
console.log(result);
},
filters(search){
return this.students.filter((stu)=>{
if(stu.name.includes(search)){
return stu;
}
})
},
}

})
</script>

  

posted @ 2019-01-04 16:59  FinnYY  阅读(256)  评论(0编辑  收藏  举报