首页 > 其他 > 详细

Es6笔记

时间:2019-01-31 01:16:04      阅读:226      评论:0      收藏:0      [点我收藏+]

Javascript中的弊端

变量Var:

1.可以重复声明

2.无法限制修改

3.没有块级作用域,作用域是函数

let/const

1.不能重复申明

2.let是变量,可以修改,const是常量,不能修改

 箭头函数:

  • 如果只有1个参数,()可以省
  • 如果只有1个return,{}可以省
function show(){}
等价于这种写法
let show=() =>{}

function (){}
等价于:
() =>{
}
ex:
window.onload=function(){
alert(‘abc‘);
}等价于
window.onload=()=>{
alert(‘abc‘);
}

一个简单的数组问题:

let arr=[12,3,5,1,7];
arr.sort(function(n1,n2){
    return n1-n2;
})
/*arr.sort();*/
arr.sort((n1,n2)=>{
    return n1-n2;
})
alert(arr);

参数问题

1参数拓展/展开

  • 收集剩余的参数:restParameter必须是最后一个参数

2.展开数组

展开后的效果,跟直接把数组的内容写在这儿一样

function show(a,b,...args){//三个... 后面的参数名可以随意取,参数名是一个数组
alert(a);
alert(b);
alert(args);
}
show(12,4,3,45,6,7)
数组展开:
let arr1=[1,2,3]
let arr2=[5,6,7]
let arr=[...arr1,...arr2];
alert(arr);
 

默认参数(后可以覆盖

解构赋值

  •  左右两边结构必须一样
  • 右边必须是个东西
  • 声明和赋值不能分开(必须在一句话里完成)

ex:

let [a,b,c]=[12,5,8]
let {a,b,c}={a:12,b:5,c:8}

数组:

map   映射 (一一对应)

[12,67,54]
[不及格,及格,不及格]
let arr=[23,3,5];
let result=arr.map(function(item){
return item*2;
})//
let result=arr.map(item=>item*2)
alert(result);
ex:
let score=[28,98,67,50];
let result=score.map(item=>item>=60?‘及格‘:‘不及格‘)
alert(score);
alert(result);

reduce 汇总  (一堆出来一个):

算个总数/平均数

let arr=[23,54,89];
let result=arr.reduce(function(tmp,item,index){
  return tmp+item;
})
alert(result);//计算总数
let arr=[23,54,89];
let result=arr.reduce(function(tmp,item,index){
  //return tmp+item;
  if(index!=arr.length-1){
      return tmp+item;
  }
  else{
      return (tmp+item)/arr.length;
  }
})
alert(result);//计算平均数

filter(过滤器)

通过boolean值决定是否保留
let arr=[3,54,99,7];
let result=arr.filter(item=>{
    if(item%2==0)
    return true;
    else
    return false;
})
alert(result);
化简:
let result=arr.filter(item=>item%2==0)
alert(result);
例子:
let arr=[{name:‘女士包‘,price:7890},
{name:‘男士鞋‘,price:8769},
{name:‘女士鞋‘,price:890},
{name:‘男士包‘,price:879},
]
let result=arr.filter(json=>json.price>1000)
console.log(result)

forEach(循环)迭代

字符串

  • 多了两个新方法

startsWith(以什么开头的,比如:startsWith(http://))/endsWith(以什么开头的,比如:endsWith(.jpg))

  • 字符串模版(主要用于字符串拼接)

直接把东西塞到字符串里面 $(东西),可以折行

let a=12;
let str=`a${a}bc`;//将12加入字符串中
alert(str);

面向对象

老版的面向对象:
function User(name,pass){
    this.name=name;
    this.pass=pass;
}
User.prototype.showName=function(){
    alert(this.name);
}
User.prototype.showPass=function(){
    alert(this.pass);
}
var u1=new User(‘yuan23‘,‘123456‘);
u1.showName();
u1.showPass();

新出的面向对象:1.class关键字,构造器和类分开了 2.class里面直接加方法

class User{
constructor(name,pass){
this.name=name;
this.pass=pass;
}
showName(){
alert(this.name);
}
showPass(){
alert(this.pass);
}
}
var u1=new User(‘yuan23‘,‘123456‘);
u1.showName();
u1.showPass();

继承:

 

                         

Es6笔记

原文:https://www.cnblogs.com/yuan233/p/10329062.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!