美文网首页
es6阮一峰 let 和const

es6阮一峰 let 和const

作者: SmallTwo | 来源:发表于2017-10-22 22:20 被阅读41次
  1. babel可以进行代码的转换
  2. a 会报错 b不会 用let修饰的变量只在代码块内起作用
    用var修饰会将变量提前
{
    let a = 10;
    var b = 20;
}

console.log(a);
console.log(b);
function test2() {
    // 用let修饰只在代码块内所以结果会是报错的
    for(var  i=0;i<10;i++){

    }
    console.log(i);
}
test2();

结果是6如果用var修饰是10

function test3() {
    var a = [];
    for(let i =0;i<10;i++){
        a[i] = function(){
            console.log(i);
        }
    }
    a[6]();
}

test3();

不存在变量的提升

function test4() {
    console.log(b);
    var b = 10;
    console.log(a);
    let a= 10;
}
test4();

暂时性死区 变量在代码块内如果用let const修饰那么即使有全局的变量也不允许提前进行使用

function test5() {

    var a= 10;
    function test() {
        a = 20;
        console.log(a);
        let a = 1;
    }
    test();
}

不允许重复声明

function test6(arg) {
    let arg = 10;
}
test6()

const 修饰的是常量无法修改而且必需在定义的时候进行初始化

function test8() {
    const a = 10;
    a = 20;
    const b;
}

const 修改的仅仅是指针不能修改如果const修饰的变量指的是一个对象类型那么对象的属性等是可以进行修改的

function test9() {
    const a = {
        "username" : 'liuxiaoer',
        'age':20
    };

    a.username = 20;
}

如果想真的让指向的对象无法修改可以使用Object.freeze();

 const b = Object.freeze({'username':20});
    b.username = 10;
    console.log(b);

如果对象的属性也是一个对象

var constantize = (obj) => {
  Object.freeze(obj);
  Object.keys(obj).forEach( (key, i) => {
    if ( typeof obj[key] === 'object' ) {
      constantize( obj[key] );
    }
  });
};

全局对象属性 es6有6创建变量的方法 es5有var和function es6为了兼容规定全局变量被var 或funtion的是默认是global的属性其他的不是

function test11() {
   let a = 10;
    console.log(global.a);
}

阮一峰的博客 let 和const http://es6.ruanyifeng.com/#docs/let

相关文章

  • es6

    [TOC] 参考阮一峰的ECMAScript 6 入门参考深入浅出ES6 let和const let和const都...

  • 1、let和const命令

    阮一峰《ES6 标准入门》 笔记阮一峰 博客案例 在ES6中,我们通常实用 let 表示变量,const 表示常量...

  • ES6 let和const认识

    本文章总结自阮一峰老师ES6入门 let、const和var的使用和区别举个例子 var a = []; fo...

  • ES6学习笔记1- let 和 const

    阅读《ES6标准入门》(第三版) 阮一峰著 的笔记 Chapter2. let 和 const命令 目录结构 ...

  • es6阮一峰 let 和const

    babel可以进行代码的转换 a 会报错 b不会 用let修饰的变量只在代码块内起作用用var修饰会将变量提前 结...

  • let和const命令

    本文以及之后的文章都是参考阮一峰ES6入门,记录下作为笔记。 let 命令块级作用域const 命令顶层对象的属性...

  • (JS)

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

  • 一个彻底将对象冻结的函数

    代码来源:《ES 6 标准入门》(第2版) -- 阮一峰 著 ---- 第2章 let 和 const 命令

  • var 、let、const的区别

    总结于——阮一峰老师ECMAScript6入门 js变量声明的方式:var、let、constlet 和const...

  • 2.let 和 const 命令

    阮一峰ES6教程学习笔记原文地址 1. let和var let:ES6 新增命令用法类似于var,但是所声明的变量...

网友评论

      本文标题:es6阮一峰 let 和const

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