ES6语法

模板字符串

语法

`string text`

`string text line 1
 string text line 2`

`string text ${expression} string text`

tag `string text ${expression} string text`

描述

模板字符串使用反引号 (` `) 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符。占位符中的表达式和周围的文本会一起传递给一个默认函数,该函数负责将所有的部分连接起来,如果一个模板字符串由表达式开头,则该字符串被称为带标签的模板字符串,该表达式通常是一个函数,它会在模板字符串处理后被调用,在输出最终结果前,你都可以通过该函数来对模板字符串进行操作处理。在模版字符串内使用反引号(`)时,需要在它前面加转义符(\)。

\ === “" // --> true

多行字符串

例如:

普通字符串
console.log('string text line 1\n' +
'string text line 2');
// "string text line 1
// string text line 2"
模板字符串
console.log(`string text line 1
string text line 2`);
// "string text line 1
// string text line 2"

插入表达式

例如:

普通表达式
var a = 5;
var b = 10;
console.log('Fifteen is ' + (a + b) + ' and\nnot ' + (2 * a + b) + '.');
// "Fifteen is 15 and
// not 20."
模板字符串表达式
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b} and
not ${2 * a + b}.`);
// "Fifteen is 15 and
// not 20."

示例

'use strict';
var a = 1;
console.log(a); //1
console.log(`a=${a}`); //a=1
console.log('a=${a}'); // a=${a}

三元表达式

语法

test ? expression1 : expression2

参数

  • test: 任何 Boolean 表达式;
  • expression1 : 如果 test 的值为 true ,则返回表达式,可能是逗号表达式;
  • expression2: 如果 test 的值为 false ,则返回表达式,可以使用逗号表达式链接多个表达式.

备注

?: 运算符可以用作 if…else.. 语句的快捷方式,例如:

var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");

如果使用 if…else…的话:

var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
   greeting += " evening.";
else
   greeting += " day.";

示例

var/let/const

概括

  • 使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值;
  • 使用 let 声明的变量,其作用域为该语句所在的代码块中,不存在变量提升;
  • 使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象.

示例

for(var i=0;i<=2;i++){
    var a = i;
}
console.log(a); //2

for(var i=0;i<=2;i++){
    let a = i;
}
console.log(a); //undefined

for(var i=0;i<=2;i++){
    const a = i;
}
console.log(a); //undefined

const a = 1;
a = 2 ;
console.log(a); //Assignment to constant variable. 

const a = {b:1};
a.b = 2;
console.log(a.b); // 2 

箭头函数 =>

定义

(parameters) => { statements }

如果没有参数:

() => { statements }

如果只有一个参数,可以省略括号:

parameters => { statements }

如果返回值只有一个表达式,还可以省略花括号:

parameters => expression

等价于:

function (parameters){
return expression;
}

findIndex()

findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
例如有数组:

let arr = [
            {id:1,value:2},
            {id:2,value:3},
            .......
        ]

想要删除 id=8的元素,可以用:
arr.splice(arr.findIndex(item => item.id === 8), 1)

thank u !