ES6 三 const

const

const 声明一个只读的常量,一旦声明,不会被改变,所以const一旦声明,立刻初始化赋值

const的作用域同let一样,在块级作用域内

const 同let一样,不能变量提升,不能在块级作用域内声明之前调用,不可重复声明

对于复合类型的数据,是指向数据所在的地址,const只保证指向所在地址不变,但是不能保证数据不可变

如果想让对象冻结

const foo = Object.freeze({});
// 常规模式时,下面一行不起作用; // 严格模式时,该行会报错 foo.prop = 123;

面代码中,常量 指向一个冻结的对象,所以添加新属性不起作用,严格模式时还会报错。 除了将对象本身冻结,对象的属性也应该冻结。下面是一个将对象彻底冻结的函数。

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

ES5 只有两种声明变量的方式, var function ES6添加了let const class import

全局对象的属性

全局对象是顶层对象,在浏览器中指的是window对象,var function在全局对象中,都是指向window,ES6中let const class在全局环境中,不属于全局对象的属性

时间: 2024-08-28 04:53:51

ES6 三 const的相关文章

ES6 ( 三 ) 字符串扩展

一.字符Unicode表示方法 ES6中可以使用以下6种方法表示字符 '\z' === 'z' // true '\172' === 'z' // true '\x7A' === 'z' // true '\u007A' === 'z' // true '\u{7A}' === 'z' // true 二.codePointAt() 该方法和charCodeAt() 作用一样    但是能处理4个字节表示的字符(Unicode码点大于0xFFFF的字符) 三.At() 和charAt()一样  

ES6 - let & const

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

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] 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(){ c

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三点扩展运算符

扩展运算符将一个数组转为用逗号分隔的参数序列 console.log(...[a, b, c]) // a b c

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); 以上的打印会报