美文网首页
ES6基础姿势-关于const,let,var

ES6基础姿势-关于const,let,var

作者: MrAlexLee | 来源:发表于2019-05-27 00:48 被阅读0次

关于const ,let,var
用{ }包括起来的区域成为块级作用域。

var

1,存在变量提升,即支持变量声明预解析。举个栗子:

console.log(a);//undefined
var a = 2;
console.log(b);//Uncaught ReferenceError: Cannot access 'b' before initialization
let b = 3;

上面的代码中a变量会预解析,解析如下:

var a;
console.log(a);
a = 2;

可以看到a变量的声明提升到了最前面。
2,不支持块级作用域。举个栗子:

{
    var a = 2;
    let b = 3;
}
console.log(a);//2
console.log(b);//Uncaught ReferenceError: b is not defined

显而易见{}对var声明的变量是不起作用的。
3,允许重复声明。举个栗子:

var a = 1;
var a = 2;
console.log(a);//2
{
    let b = 1;
    let b = 2;
//Uncaught SyntaxError: Identifier 'b' has already been declared
}

块级作用域内使用let声明的变量声明多次会报错重复声明。而var则会覆盖。

let

1,不支持变量提升,即不支持变量声明预解析,只能先声明后使用;
2,支持块级作用域
3,不允许重复声明

const。这个常量声明

1,不支持变量提升,即不支持变量声明预解析,只能先声明后使用;
2,支持块级作用域
3,不允许重复声明
4,与let特性不一致的一点:必须初始化,且不允许修改
举个栗子:

const a ;
//Uncaught SyntaxError: Missing initializer in const declaration

可以去翻译一下:const声明丢失初始化。
再来一个栗子:

const a = 2;
a =3;
//Uncaught TypeError: Assignment to constant variable.

上面的代码中console都不用写,因为执行不到下面这一步就会报错。
以上就是对JS中声明变量和常量声明方式的区别。希望对大家有所帮助。

相关文章

  • es6总结一

    es6基础 let和const命令 let和const用于声明变量let跟var的区别 1、let定义过的变量不能...

  • ES6基础姿势-关于const,let,var

    关于const ,let,var用{ }包括起来的区域成为块级作用域。 var 1,存在变量提升,即支持变量声明预...

  • ES6入门基础

    ES6入门基础 一.let & const 1.基本用法 es6新增 let命令,用来申明变量,用法类似于var,...

  • ES6 学习笔记

    ES6 var let const 的使用 var let const 声明变量 全局作用域 和 块级作用域的区...

  • 总结一下前端常见javascript基础面试题:

    1.var ,let 和const的区别: let和const是es6新增的语法, let和var都可以定义变量,...

  • javascript碎片知识000

    const let var 3者的区别。 const 和 let 为es6新增的定义变量的关键字。 var存在...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • react 入门基础(一)之ES6

    ####ES6 let const var 三者的区别 ### 1. let const 不能重复声明变...

  • es6,es7,es8语法总结

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

  • ES 6 7 8 随笔 QAQ

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

网友评论

      本文标题:ES6基础姿势-关于const,let,var

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