[ES6] 22. Const

‘const‘ keyword is for creating a read only variable, something you can never change once created.

‘const‘ likes ‘let‘ keyword alos has block scope.

describe("using const", function(){

    it("will make a variable read-only", function(){

        const MAX_SIZE = 10;

        //MAX_SIZE = 12; //SyntaxError

        expect(MAX_SIZE).toBe(10);  //true
    });

    it("can shadow outer declaration", function(){

        const x = 12;
        var doWork = function(){

            let x = 10;
            return x;
        };

        var result = doWork();
        expect(result).toBe(10);  //true
        expect(x).toBe(12); //true
    });

    it("const also has block scope", function(){

        if(true){
            const x = 12;  //SyntaxError, x is not defined
        }

        var doWork = function(){

            let x = 10;
            return x;
        };

        var result = doWork();
        expect(result).toBe(10);  //true
        expect(x).toBe(12); //true
    });
});
时间: 2024-10-10 17:27:36

[ES6] 22. Const的相关文章

ES6 三 const

const const 声明一个只读的常量,一旦声明,不会被改变,所以const一旦声明,立刻初始化赋值 const的作用域同let一样,在块级作用域内 const 同let一样,不能变量提升,不能在块级作用域内声明之前调用,不可重复声明 对于复合类型的数据,是指向数据所在的地址,const只保证指向所在地址不变,但是不能保证数据不可变 如果想让对象冻结 const foo = Object.freeze({}); // 常规模式时,下面一行不起作用; // 严格模式时,该行会报错 foo.pr

ES6 let const关键字

在es6中,引入了let和const关键字: 1.letES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. (1)在块级作用域里有效(比如循环遍历内部就可以用let定义变量) <script type="text/javascript"> { let a = 10; var b = 1; } console.log(b); console.log(a); </script> 报错:Reference

ES6中 const 关键字

const声明一个只读的常量.一旦声明,常量的值就不能改变. 定义后可以使用但不能修改 但是,const 定义的对象可能与我们想象的不太一样 定义了对象b ,我们可以在b上添加修改属性,再看一个列子 现在又不让修改了 如果想让对象变成不可变数据,可以使用Object.freeze 方法 原文地址:https://www.cnblogs.com/zhangtao1990/p/8283330.html

Es6系列--const

const是用来定义常量,一旦声明,其值就不能改变 const声明的常量不得改变值.这意味着,const一旦声明常量,就必须立即初始化,不能留到最后赋值.  const的作用域与let相同:只在声明所在的块级作用域内有效 const变量也不会提升,同样也存在暂时性死区,只能在声明后使用. 与let一样,const也不可以重复声明变量. 对于复合类型的变量,变量名不指向数据,而是指向数据所在的地址.const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个对象声明为常量必须非

ES6中const的用法

const声明一个只读的常量.一旦声明,常量的值就不能改变.且const一旦声明变量,就必须立即初始化,不能留到以后赋值. const的作用域与let命令相同:只在声明所在的块级作用域内有效. const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用.也与let一样不可重复声明. const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动. const如果引用的是一个对象,只能保证引用对象的这个指针不变,但对象本身的数据结构是可以改变的.如: co

ES6 - let &amp; const

js是弱类型语言,语法很松散,这是一个缺点. 之前,在js中变量声明:var. 为了解决这个缺点,js中声明变量新增两个语法:let.const var 特点有三: 变量声明提升. 可重复定义同一个名字的变量不报错. 全局变量挂载到window let和const的特性: 没有变量声明提升 不能重复声明同一个变量,即使是var过的变量,甚至是行参也不行. 声明的变量不会挂载到window上 有块级作用域的特点 在大括号{}里边会形成临时死区 可解决闭包问题. [const特殊] var和let定

ES6之let和const

1.在ES5中我们定义一个变量是通过 var 关键字来定义的.如:var name = 'zjl'    var obj = {name:'zjl',age:'18'} 2.在ES6中新引进了两个定义变量的关键字 let 和 const. 3.ES6之 let: let 的用法和 var 很类似,但它存在自己的特性 主要有以下几点: let 所声明的变量,只在 let 命令所在的代码块内有效 { let a = 10; var b = 1; } console.log(a,b); 以上的打印会报

es5和es6实现lazyman

es6实现 1 class _LazyMan { 2 constructor(name) { 3 this.tasks = []; 4 this.sleep = this.sleep.bind(this); 5 this.eat = this.eat.bind(this); 6 this.tasks.push(((name) => { 7 return () => { 8 console.log('Hi! This is ' + name + '!'); 9 this.next(); 10 }

react入门系列之todolist代码优化(使用react 新特性,es6语法)

代码优化 1 /** 2 - 今天我们通过es6语法,以及react新特性来优化我们的todo-list 3 - 顺带解决上个版本的key报错问题 4 */ 使用es6的解构赋值优化代码 1 /** 2 - 当我们需要一个对象某个属性的时候,我们可以使用解构赋值,这样在后续的代码就不需要通过原对象不停调用属性去获取了 3 - const { index } = this.props -----> 这就是解构赋值,在后续同一作用域使用this.props.index的时候直接使用index就可以了