博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
var let const
阅读量:6367 次
发布时间:2019-06-23

本文共 1601 字,大约阅读时间需要 5 分钟。

var 声明了一个变量,可选地将其初始化为一个值。

变量声明,无论发生在何处,都在执行任何代码之前进行处理。用var声明的变量的作用域是它当前的执行上下文,它可以是嵌套的函数,也可以是声明在任何函数外的变量。如果你重新声明一个 JavaScript 变量,它将不会丢失其值。

let 声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。

允许你声明一个作用域被限制在块级中的变量、语句或者表达式。与关键字不同的是,它声明的变量只能是全局或者整个函数块的。

function varTest() {  var x = 1;  if (true) {    var x = 2;  // 同样的变量!    console.log(x);  // 2  }  console.log(x);  // 2}function letTest() {  let x = 1;  if (true) {    let x = 2;  // 不同的变量    console.log(x);  // 2  }  console.log(x);  // 1}

  

const

此声明创建一个常量,其作用域可以是全局或本地声明的块。 与变量不同,全局常量不会变为窗口对象的属性。需要一个常数的初始化器;也就是说,您必须在声明的同一语句中指定它的值(这是有道理的,因为以后不能更改)。

// 注意: 常量在声明的时候可以使用大小写,但通常情况下全部用大写字母。 // 定义常量MY_FAV并赋值7const MY_FAV = 7;// 报错MY_FAV = 20;// 输出 7console.log("my favorite number is: " + MY_FAV);// 尝试重新声明会报错 const MY_FAV = 20;//  MY_FAV 保留给上面的常量,这个操作会失败var MY_FAV = 20; // 也会报错let MY_FAV = 20;// 注意块范围的性质很重要if (MY_FAV === 7) {     // 没问题,并且创建了一个块作用域变量 MY_FAV    // (works equally well with let to declare a block scoped non const variable)    let MY_FAV = 20;    // MY_FAV 现在为 20    console.log('my favorite number is ' + MY_FAV);    // 这被提升到全局上下文并引发错误    var MY_FAV = 20;}// MY_FAV 依旧为7console.log("my favorite number is " + MY_FAV);// 常量要求一个初始值const FOO; // SyntaxError: missing = in const declaration// 常量可以定义成对象const MY_OBJECT = {"key": "value"};// 重写对象和上面一样会失败MY_OBJECT = {"OTHER_KEY": "value"};// 对象属性并不在保护的范围内,下面这个声明会成功执行MY_OBJECT.key = "otherValue";// 也可以用来定义数组const MY_ARRAY = [];// It's possible to push items into the array// 可以向数组填充数据MY_ARRAY.push('A'); // ["A"]// 但是,将一个新数组赋给变量会引发错误MY_ARRAY = ['B']

  

转载于:https://www.cnblogs.com/bbqwwb/p/8405981.html

你可能感兴趣的文章
VCSA中配置时间和时区,实测至6.5适用
查看>>
高并发IM系统架构优化实践
查看>>
产品经理教你玩转阿里云负载均衡SLB系列(一):快速入门--什么是负载均衡
查看>>
有关linux--进程组、会话、守护进程详解
查看>>
我的友情链接
查看>>
monkeyrunner运行Python脚本来检查apk渠道和验证是否可以调用微信
查看>>
github获得SSH Key解决Permission denied (publickey)问题
查看>>
用java代码编写Oracle存储过程
查看>>
APACHE转发
查看>>
android-market-api
查看>>
解決 yum update錯誤:[Errno -1] Metadata file does not match checksum
查看>>
ASP.NET(C#)Excel导入Dataset的出现数据值丢失问题
查看>>
我的友情链接
查看>>
『Data Science』R语言学习笔记,获取数据
查看>>
rails中n秒页面自动跳转
查看>>
我的友情链接
查看>>
忘记root用户密码怎么办?
查看>>
esxi定时任务
查看>>
Scaffold-DbContext
查看>>
关于VMware Workstation主机列表问题求教
查看>>