初始ES6

初识ES6

一. 块级作用域、变量let、常量const
  1. 由一对 { } 界定的语句叫做块语句,这在其他编程语言中叫做复合语句。
一般理解的块:
   块:由{}包括住
   if(){}:是一个块
   for(){}:是一个块
这些也可理解成块:
   一个函数:函数作用域
   <script>标签:全局作用域
  1. JS中用var声明的变量是没有块级作用域的,只有函数作用域和全局作用域。
var x = 1;
{
  var x = 2;
}
console.log(x);

//会输出2,因为块中的var语句与块前面的var语句作用域相同
//在C或Java中,这段代码会输出 1
//这代码证明了var没有块作用域
  1. 相比之下,使用 let 和 const 声明的变量是有块级作用域的。
let x = 1;
{
  let x = 2;
}
console.log(x); 

// 输出 1
// x被限制在块级作用域中
// 这里将let换成const结果也一样
  1. const的概念
  • 必须在声明的同一语句中指定它的值
  • const声明创建一个值的只读引用,也就是说只能通过const定义的变量来读这个值,不能修改这个值,但是如果这个值本身发生了变化,那么const定义的变量所对应的值也就跟着变化,比如当引动内容是对象的情况下。
  • 一个常量不能和它所在作用域内的其他变量或函数拥有相同的名称。
// 下面错误,常量要求有一个初始值
const FOO;

// 下面正确,常量可以定义成对象
const MY_OBJECT = {"key": "value"};
// 下面错误,改变常量会失败
MY_OBJECT = {"OTHER_KEY": "value"};
// 对象属性并不在保护的范围内,下面会成功执行(对象本身发生变化)
MY_OBJECT.key = "otherValue";

// 定义一个常量
const MY_FAV = 20;
// 不能同名,会出错
var MY_FAV = 20; 
// 也会报错
let MY_FAV = 20;
二. 箭头函数

基础语法

//一般语法:
(参数1, 参数2,, 参数N) => { 函数声明 }

//相当于:(参数1, 参数2, …, 参数N) =>{ return 表达式; }
(参数1, 参数2,, 参数N) => 表达式(单一)

// 当只有一个参数时,圆括号是可选的:
(单一参数) => {函数声明}
单一参数 => {函数声明}

// 没有参数的函数应该写成一对圆括号
() => {函数声明}

高级语法:

(*注: 字面量一般指[1, 2, 3] 或者{name: “mdn”} 这种简洁的构造方式)

*//加括号的函数体返回对象字面表达式:
参数=> ({foo: bar})

//支持剩余参数和默认参数
(参数1, 参数2, ...rest) => {函数声明}
(参数1 = 默认值1,参数2,, 参数N = 默认值N) => {函数声明}

//同样支持参数列表解构
let f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f();  // 6

重点注意:
this 对象的指向是可变的,但是在箭头函数中,它是固定的。箭头函数体内的 this 对象,就是定义时所在的对象,而不是使用时所在的对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值