资讯专栏INFORMATION COLUMN

关于const的声明

Profeel / 3249人阅读

摘要:声明变量常量常量,常量的值非复合型数据不可以改变报错已声明为一个常量,常量一旦声明只可读,不允许改变,去修改这个常量就会抛出错误。

const声明变量(常量):

1、常量,常量的值(非复合型数据)不可以改变

const temp = 10;
temp = 5;//报错: Assignment to constant variable.
//temp已声明为一个常量,常量一旦声明只可读,不允许改变,去修改这个常量就会抛出错误。

2、因const声明的常量不可改变,所以在声明时候就必须赋值,不能留到后面赋值

const foo;// SyntaxError: Missing initializer in const declaration
//只声明而不赋值就会报错

3、const的作用域:只在声明所在的块级作用域中生效

if(true){
    const temp = 11;//const声明了常量temp,temp的作用域就是在当前if语句的块作用域中
}
console.log(temp);//报错: temp is not defined    
//当前作用域拿不到if语句中的temp,所以当前作用域找不到temp而抛出错误

4、const声明的常量不能提升,所以形成“暂存死区”

console.log(num);//num is not defined
const num = 10;
//在当前作用域中,声明之前使用会报错,只能在声明的后面使用

5、const声明的常量同样不能声明同名的

const num = 10;
const num = 20;//报错:Identifier "num" has already been declared
//同一作用域下不能使用相同名字的常量,等同于let

6、const不同块作用域下可以声明同名的常量

if(true){
    const temp = 44;
}
const temp = 55;
//不同的作用域下可以使用同名的常量

7、const声明的常量,实际是指指向内存的址不变

const obj = {};
obj.name = 1;//可以操作复合型数据常量的结构
obj.age = 18;//对于对象类型的数据,可以改变obj常量的结构

const obj1 = {};
obj1 = {};//报错哦!不能再赋值给这个常量

const arr = [];
//可以操作arr的结构
arr[0] = 1;
arr[1] = 2;
//不能将arr指向新的数组或其他
arr = [1,2];//报错

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92030.html

相关文章

  • 译:用let 和 const 来指导JavaScript 变量提升

    摘要:最近在上看到一篇关于变量提升的文章,原文在此。对于刚入门的开发者时常难以理解变量方法提升的独特行为。接下来我们要谈论,,声明,那么先了解变量提升就显得更为重要了。在进入作用域和不能访问的这段时间,我们称为暂时性死区。 showImg(https://segmentfault.com/img/bV0Nsd?w=800&h=450); 最近在Medium上看到一篇关于变量提升的文章,原文在...

    sanyang 评论0 收藏0
  • ES2015系列--块级作用域

    摘要:在的闭包中,闭包函数能够访问到包庇函数中的变量,这些闭包函数能够访问到的变量也因此被称为自由变量。在之前最常见的两种作用域,全局作用局和函数作用域局部作用域。 关于文章讨论请访问:https://github.com/Jocs/jocs.... 当Brendan Eich在1995年设计JavaScript第一个版本的时候,考虑的不是很周到,以至于最初版本的JavaScript有很多不...

    darkbug 评论0 收藏0
  • 简单了解一下javascript中变量与常量语法以及不同之处

    摘要:首先说一下关于的几点语法要求不能以数字开头命名在中是不区分大小写的,但在这里需要区分大小写,大写的名称与小写的名称分别是区分开的不能用关键字进行变量命名给变量定义变量名称一般要具有语义化,见名知意一般采用驼峰或者下划线命名。 首先说一下关于JavaScript的几点语法要求: 不能以数字开头命名; 在html中是不区分大小写的,但在这里需要区分大小写,大写的名称与小写的名称分别是区分...

    Lucky_Boy 评论0 收藏0
  • 译: 函数提升与提升面试相关问题

    摘要:函数提升在里有两种方式创建函数,通过函数声明和函数表达式。函数声明用指定的参数来定义函数。提示不要在中进行函数声明。问题输出两个都是用函数声明的函数,将被提升到的局部作用域顶端。函数本身将作为函数声明在全局范围内提升。 作者关于提升的话题,总共有两篇。(后来又有一个讨论篇),再次搬过来。水平有限,如果翻译的不准确请包涵,并去看原文。下面开始: 这是我之前的关于提升的文章,标题为《用le...

    wuaiqiu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<