es6学习(持续更新)

刚开始学习es6。本文档主要对es6的基础语法进行归纳

首先,切记要”use strict”声明

1.let声明:

  • 不允许重复声明
let a=1;
let a=2; //报错
  • 没有预解析
console.log(b);//报错,而用var声明变量为undefined
    let b=2;
  • 块级作用域
for(let i =0;i<9;i++){
    }
    console.log(i);//报错,用var声明的i为9

2.const:常量
常量的值是不可以被修改的,但如果常量内保存的是一个对象,对象内的值是可以被改变的

 const a=2;
    a=3
    console.log(a);//报错
const a ={ b:12};
    a.b = 4
    console.log(a.b);//4

3.解构赋值:按照一定的模式,取出数组或者变量中的值,对变量进行赋值,常用于数值交换

    var arr = [1,[2,3]]
    var [a,[b,c]] = arr
    console.log(a);//1
    console.log(b);//2
    console.log(c);//3
    var x=1;
    var y=2
    var [x,y]=[y,x]
    console.log(x, y);//1,2

4.模板字符串:解决字符串拼接困难的问题

var name ="kk";
var age = 16
var str = "你的名字是:"+name+",年龄:"+"age";
console.log(str);//你的名字是:kk,年龄:16
var str1 = `你的名字是:${name},年龄:${age}`;
console.log(str1);//你的名字是:kk,年龄:16

5.新增字符串方法:

  • includes(x,y):字符串从第y位起是否含有x字符串,返回布尔值
  • startsWith(x):x字符串是否在字符串起始位置,返回布尔值
  • endWith(x):x字符串是否在字符串结束位置,返回布尔值

6.数组的扩展:

  • Array.from():将字符串、类数组转换成数组
var aDiv = document.getElementsByTagName("div");
//原来js中把类数组转化为数组的方法
var ele = [].slice.call(aDiv);
console.log(typeof ele)

//e6的方法:
var eles = Array.from(aDiv);
console.log(typeof eles);
  • Array.of(参数):把参数转化成数组。
var arr=Array.of(11,22,33)
console.log(arr)  //[11,22,33]
  • find(参数1,参数2):找出数组中第一个符合条件的数。参数1为回调函数,参数2是改变数组this的指向。如果没有找到则返回undefined
var array =[1,5,7,1,7,6];
var ary = array.find(function(value,index){
    return value>4
})
console.log(ary)//5
  • findIndex():与find()相似,只是其返回的是索引位置而不是值
  • fill(参数1,参数2,参数3):填充数组。参数1位填充的内容。参数2为填充的起始位置。参数3为填充的终止位置。
var array =[1,5,7,1,7,6];   
var Ary = array.fill(0,3,6);
console.log(Ary);//[1,5,7,0,0,0,]
  • for-of:与for-in方法类似,循环得到值
var arr = [4,5,6,7,8];
for(var value of arr){
    console.log(value);//4,5,6,7,8
}

for(var keys of arr.keys()){
    console.log(keys);//0,1,2,3,4
}

7.数值的扩展

  • Math.trunc():将小数点数值的小数点后面值干掉
  • Math.sign():判断数值是整数,负数或者是0
  • Math.hypot(参数1,参数2):根据勾股定理得到值
let num = 1.54;
console.log(Math.trunc(num));//1
console.log(Math.sign(-54))//-1
console.log(Math.sign(54))//1
console.log(Math.sign(0))//0
console.log(Math.hypot(3,4))//5

8.函数的扩展:

  • 函数形参的默认值设置
function fn(a,b=2){
    return a+b;
}
console.log(fn(1));//3
console.log(fn(1,4))//5

注意点:定义默认值的参数必须是尾参数

  • 获取函数的多余参数
function test(a,b,...arg){
    console.log(arg);//[3,4,5,6,7,8,9]
}
test(1,2,3,4,5,6,7,8,9);
  • 扩展运算符(spread)是三个点(…)。它好比上面例子的arg参数的逆运算,将一个数组转为用逗号分隔的参数序列。该运算符主要用于函数调用。
var arr = [4,5,6,7,8,9]
console.log(...arr);//4 5 6 7 8 9
var str = 'hello world';
console.log([str]);//hello world
  • 箭头函数:(参数) => 表达式;

注意点:
1、函数体内的this对象,绑定定义时所在的对象,而不是使用时所在的对象。
2、不可以当作构造函数,不可以使用new命令,否则会抛出一个错误。
3、该函数体内不存在arguments

var obj = {
    f: (a,b) => alert(11)
}
obj.f(5,4);//alert(11)
f(5-4);//报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值