美文网首页
JavaScript----ES6常变量和关键字

JavaScript----ES6常变量和关键字

作者: AuglyXu | 来源:发表于2018-11-15 15:53 被阅读0次

let

  • ES5以前用var定义变量
  • ES6开始用let定义变量
  • 区别
  • let重复定义变量不会覆盖,会报错
let a = 1;
let a = 2;//报错
  • let定义的变量不会预解析
console.log(a);//报错
let a = 1;
  • let定义的变量只在当前代码块中有效,在代码块外界使用会报错
for(let i = 0;i < 5;i++){
    console.log(1);
}
console.log(i);//报错
  • let定义的变量有暂时性死区(绑定在当前代码块,不受外界影响), 在声明前使用定义的变量会报错
var tmp = 123;

if (true) {
  tmp = 'abc'; // 报错
  let tmp;
}
  • 一些隐蔽的死区
function (x = y,y = 1){
  ..................
}
let x = x;
  • let在全局作用域定义的变量不会成为全局属性
var a = 1;
// 如果在 Node 的 REPL 环境,可以写成 global.a
// 或者采用通用方法,写成 this.a
window.a // 1

let b = 1;
window.b // undefined

块级作用域

  • ES5和ES6的区别
    • 以下为阮一峰的案例
function f() { console.log('I am outside!'); }

(function () {
  if (false) {
    // 重复声明一次函数f
    function f() { console.log('I am inside!'); }
  }

  f();
}());
  • ES5语法的实际执行后的代码
function f() { console.log('I am outside!'); }

(function () {
function f() { console.log('I am inside!'); }
  if (false) {
  }

  f(); //I am inside!
}());
  • ES6的实际执行代码
function f() { console.log('I am outside!'); }

(function () {  
  var f = undefined
  if (false) {
    // 重复声明一次函数f
    f = function() { console.log('I am inside!'); }
  }

  f();//报错
}());
  • 注意点:
    • ES6的函数声明和var关键字有点像, 会将名称提升到全局作用域或者函数作用域的头部
    • 为了解决这种差异, 我们尽量用函数表达式的方式来定义一个函数
    • ES6 的块级作用域允许声明函数的规则,只在使用大括号的情况下成立,如果没有使用大括号,就会报错。

const

  • const定义一个常量, 一旦定义了就不能被更改
  • 注意点和let一样
    • 注意点补充: const定义的变量其实是一个指针,指向存储数据的地址,指针的指向不能改变,但是指向变量的内部的数据可以改变
const arr = [1, 3];
// arr = [2, 4]; // 改变指向
arr[0] = 666; // 指向内存中保存的数据可以改变
arr.push(777);
console.log(arr);//[666, 3, 777]

相关文章

  • JavaScript----ES6常变量和关键字

    let ES5以前用var定义变量 ES6开始用let定义变量 区别 let重复定义变量不会覆盖,会报错 let定...

  • JS--var,let 和 const

    let 和 const 这两个关键字在 JavaScript 中提供了块作用域(Block Scope)变量(和常...

  • Swift-基础(常量,变量)

    常量、变量 声明变量和常量 常量和变量必须在使用前声明。 您使用let关键字声明常量,使用var关键字声明变量。 ...

  • swift 基础语法(常量、变量、数值、布尔型、元组)

    常量和变量 声明常量和变量 常量和变量必须在使用之前声明使用let关键字声明常量使用var关键字声明变量 可以在一...

  • 巩固-swift 5.0+基础知识(零)

    声明常量和变量 常量和变量必须在使用前被声明,使用关键字 let 来声明常量,使用关键字 var 来声明变量。 类...

  • 2.Swift基本数据类型

    变量和常量 使用关键字 let 来声明常量 使用关键字 var 来声明变量01.png 声明常量和变量 可以在一行...

  • Swift 基本数据类型

    变量和常量 声明常量和变量 使用关键字 let 来声明常量 使用关键字 var 来声明变量 可以在一行中声明多个变...

  • 菜鸡学Swift2.0 - 1.常量和变量声明

    常量和变量 声明 1:常量 声明关键字 let 2:变量 声明关键字 var 3:可选用显式声明 var 变量名:...

  • Java中的this关键字

    学习笔记:thisthis关键字修饰的变量指代成员变量 1、this关键字this关键字修饰的变量指代成员变量 方...

  • Kotlin第二章小结

    fun关键字用来声明函数。val关键字和var关键字分别用来声明只读变量和可变变量。 字符串模板帮助避免繁琐的字符...

网友评论

      本文标题:JavaScript----ES6常变量和关键字

      本文链接:https://www.haomeiwen.com/subject/qmhyfqtx.html