ES6基础

栏目: JavaScript · 发布时间: 6年前

内容简介:首先看看ES5中得变量声明方式以上代码等同于再来看看

一、块级作用域

1. var

首先看看ES5中得变量声明方式

if (true) {
    var a = 2
}
console.log(a) // 2

以上代码等同于

var a
if (true) {
    a = 2
}
console.log(a)

以上可知 :

  1. 在块内部定义变量 变量提升,到函数最顶部
  2. 通过var声明的变量,无论在何处声明,均为 全局作用域

2.let 和 const

再来看看 ES6 中的 letconst

let

if (true) {
    let b = 2
}
console.log(b) // b is not defined

此时在{} 外部访问b 将会报错,因为 let 的作用域仅为 { } 的内部,及 块级作用域

const

if (true) {
    const c = 2
}
console.log(c) // c is not defined

const的作用域与let作用域相同:只在声明所在的块级作用域内有效

让我们看看const 更多的特性:

const 表示常量:

const d = 2
d = 3 // Assignment to constant variable.

此时,当 d 为 基本数据类型 的时候,改变其值,将会报错!!!

但是它的常量仅仅表示的是地址常量 对象的成员可以改变值

看看下面的例子:

const people = {name: '张三', age: 23}
people.age = 25
console.log(people) // {name: "张三", age: 25}

看看此时 people 已经被改变了

why?

对象是复杂的数据类型 它的地址保存在 栈里面, 值保存在堆里面

cosnt仅仅是保证这个地址不改变,至于地址对应的数据,是可以进行改变的

基本类型值在内存中占据固定大小的空间 因此被保存在栈内存中。比如 const a = 1 ; 这时候其直接保存在栈里面

结合网上的内容,个人理解而得 欢迎指正


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Open Data Structures

Open Data Structures

Pat Morin / AU Press / 2013-6 / USD 29.66

Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues......一起来看看 《Open Data Structures》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具