ES6 D1

var

声明变量时 不在函数内,就是全局声明

在函数内部声明,是局部声明

var printNumTwo;
for (var i = 0; i < 3; i++) {
  if (i === 2) {
    printNumTwo = function() {
      return i;
    };
  }
}
console.log(printNumTwo());

//以上片段没有在函数内声明i,仍为全局变量,存储的函数将始终引用更新后的全局 i 变量的值

let

局部声明

关键字声明的变量可以重新赋值,但不能重新声明

const

声明的变量是只读的。 它们是一个常量值

分配给变量的对象(包括数组和函数)仍然是可变的。

只能防止变量标识符的重新分配。

//不能再对该变量进行赋值这一动作

分配给变量的对象(包括数组和函数)仍然是可变的

//即被声明的变量整体不变,但局部可变

Object.freeze()

任何更改对象的尝试都将被拒绝

匿名函数

一个函数作为参数传给另外一个函数的时候

不会在其他地方复用,所以我们不需要给它们命名。

const myFunc = function() {
  const myVar = "value";
  return myVar;
}

箭头函数

基本语法  参数 => 函数体(表达式

只有一个参数,则可以省略参数外面的括号。

const doubler = item => item * 2;

当箭头函数没有参数或者有多个参数,要用 () 括起来。

const myFunc = () => {
  const myVar = "value";
  return myVar;
}

当不需要函数体,只返回一个值的时候,箭头函数允许你省略 return 关键字和外面的大括号。

const myFunc = () => "value";

 数体有多行语句,用 {} 包裹起来,表示代码块

var f = (a,b) => {
 let result = a+b;
 return result;
}
f(6,2);  // 8

返回对象的时候,为了区分于代码块,要用 () 将对象包裹起来

var f = (id,name) => ({id: id, name: name});
f(6,2);  // {id: 6, name: 2}

设置函数的默认参数 

const greeting = (name = "Anonymous") => "Hello " + name;

console.log(greeting("John"));
console.log(greeting());

默认参数会在参数没有被指定(值为 undefined)的时候起作用

rest   ...参数名

一个变量代替多个参数 //多个压缩成一个

spread

展开数组以及  需要多个参数或元素的表达式

展开操作符只能够在函数的参数中或者数组中使用。

将数组里的所有内容分解成一个由逗号分隔的列表

解构赋值(赋值运算符的扩展 是一种思想)

const user = { name: 'John Doe', age: 34 };

const name = user.name;
const age = user.age;

//合并同类项 

const { name, age } = user;

赋予一个新的变量名 

const { name: userName, age: userAge } = user;

//如果是赋值新变量名  {原名:新名}

将两个赋值语句替换成等价的解构赋值。 lowToday 和 highToday 应该为 LOCAL_FORECAST 中 today.low 和 today.high 的值。

const LOCAL_FORECAST = {
  yesterday: { low: 61, high: 75 },
  today: { low: 64, high: 77 },
  tomorrow: { low: 68, high: 80 }
};

const {today:{low:lowToday, high:highToday } }= LOCAL_FORECAST;
//我的做法:先改名,再提取同类项
const source = [1,2,3,4,5,6,7,8,9,10];
function removeFirstTwo(list) {
  // 只修改这一行下面的代码
 [a,b , ...arr]=list ;
 let a=list[0];
 let b=list[1]; // 修改这一行
  // 只修改这一行上面的代码
  return arr;
}
let arr = removeFirstTwo(source);

${variable} 语法是一个占位符 

for( let i = 0;i < arr.length;i++ ){
 const failureItems = [];

failureItems.push(`'<li class="text-warning">${arr[i]}</li>'`) ;
  } 

 const failureItems = [];
  for (let i = 0; i < arr.length; i++) {
    failureItems.push(`<li class="text-warning">${arr[i]}</li>`);
  }

 对象中定义一个函数的时候

es5function 关键字

const person = {
  name: "Taylor",
  sayHello: function() {
    return `Hello! My name is ${this.name}.`;
  }
};

 es6简洁的函数声明:

const person = {
  name: "Taylor",
  sayHello() {
    return `Hello! My name is ${this.name}.`;
  }
};

class 语法定义构造函数

字母大写驼峰命名法 UpperCamelCase

是 ES6 class 命名的惯例,就像 SpaceShuttle

class Vegetable{
  constructor(name){
   this.name = name ;
    
  }
}
const carrot = new Vegetable('carrot');
console.log(carrot.name); // 应该显示 'carrot'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值