es6新增内容—1

let关键字声明变量

let与var 都是用于声明变量但之间存在差异

let的特性:

1、let 不能重复声明   而var  可以重复声明

2、let 不会挂载在window下   var 挂载在window下 属于window下的属性

3、let是块级作用域  他不会影响到全局作用域下的变量

4、let声明的变量不能进行变量提升   

const关键字声明变量

特性:

const除拥有let的特性外还有其他的特性

1、声明和赋值必须一次性完成

2、不允许改变内存空间地址

3、常量值不能被修改

字符串模板

用来定义多行字符串  用( `  `  )表示

es6中字符串的API

codepointAt()     返回一个字符的码点

        // 定义一个字符串
        var  arr='hello world';
        // 利用codePointAt()获取指定字符的码值
        console.log(arr.codePointAt('h')); //104

includes()  判断匹配的字符串中是否存在指定的字符

 var  arr='hello world';
 // 利用includes() 判断匹配的字符串中是否存在指定的字符
 console.log(arr.includes('h')); //true

startsWidth()  判断是否包含参数字符串的头部

endsWidth()  判断是否包含参数字符串的尾部

      var  arr='hello world';
        console.log(arr.startsWith('h'));



        console.log(arr.endsWith('d'));

repeat() 返回一个新的字符串 将原有的字符串以指定的次数进行重复

console.log(arr.repeat(2));

Starting.raw  两种用法

1、String.raw`参数`

2、Starting.raw({raw:变量}1,2,3,4)

含义:使字符串的任何转义字符和反斜杠失效 返回模板字符串的元素字符串

padStart:返回新的字符串,表示用参数字符串从头部补全原字符串。

padEnd:返回新的字符串,表示用参数字符串从头部补全原字符串。

接受两个参数,第一个参数是生成字符串的长度,第二个是用来补全的字符串。没有指定第二个参数,默认用空格

'aa'.padStart(5,'bc')    // 'bcbaa'
'aa'.endStart(5,'bc')    // 'aabcb'


如果指定的长度大于或者等于原字符串的长度,则返回原字符串。

'xxx'.padStart(2, 'ab')    // 'xxx'


如果原字符串加上补全字符串长度大于指定长度,则截去超出位数的补全字符串

'abc'.padStart(10, '0123456789')    // '0123456abc'

replaceAll() 一次性替换所有匹配的字符串

     var  arr='hello world';
        console.log(arr.replaceAll('ll','--'))   // he--o world

字符串标记 

标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是它的参数。
但是,如果模板字符串里面有变量,就不是简单的调用了,而是会将模板字符串先处理成多个参数,再调用函数。

let a = 5;
let b = 10;
 
tag`Hello ${ a + b } world ${ a * b }`;
// 等同于
tag(['Hello ', ' world ', ''], 15, 50);

解构赋值

1 - 理解:
从对象或数组中提取数据, 并赋值给变量(多个)

2 - 对象的解构赋值
let {n, a} = {n:'tom', a:12}

3 - 数组的解构赋值
let [a,b] = [1, 'atguigu'];

4 - 用途
给多个形参赋值

es6中按照一定的模式从数组额对象中提取值对变量进行赋值 ,这被称为解构  

数组的解构赋值


        var  [x,y]  = [1,2];
        console.log(x,y) //x:1  y:2

对象的解构赋值

  var {a,b} = {a:1,b:2};

  console.log(a,b) // a:1 b:2

 函数的解构赋值
   

 // 3 - 函数的解构赋值:对函数的第一个参数进行解构赋值
    // 这里还是先定义一个对象:
    const person = {
      name: 'jack',
      age: 18,
      sex: '男'
    };
    function fn(obj) { //在这里传入一个obj对象进去
      console.log(obj);  //所以这里就会打印出来person  {name: "jack",age:18,sex:"男"}
    }
    fn(person); //在这里调用了一个fn函数,传入一个person对象

    // 但是我们想要打印的是里面的name,age,sex
    // 所以我们就这样写:
    function fn(obj) {
      const { name, age, sex } = obj;  //将这个对象进行解构赋值
      console.log(name, age, sex);  //jack 18 男
    }

    // 我们还可以直接写成下面这样:更简洁些:
    // 就达到了我们的最终目的---对函数的第一个参数进行解构赋值
    // { name, age, sex }  仅仅是一个参数,用大括号包着。
    function fn({ name, age, sex }) {
      console.log(name, age, sex);  //jack 18 男
    }
    fn(person);

解构赋值允许指定默认值

var [a=true] =[]

赋值的顺序值如果有设定的值时取设定的值  没有在找自己的默认字  如果都没有着显示为undefined

扩展运算符

扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。扩展运算符与正常的函数参数可以结合使用,后面也可以放置表达式,但如果后面是一个空数组,则不产生任何效果。

let arr = [];
arr.push(...[1,2,3,4,5]);
console.log(arr); //[1,2,3,4,5]
console.log(1, ...[2, 3, 4], 5) //1 2 3 4 5
console.log(...(1 > 0 ? ['a'] : [])); //a
console.log([...[], 1]); //[1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值