ES6_01_变量和常量的使用

火山方舟向量数据库大模型

picture.image

1

let 变量的使用

  
letvar  的区别  
  
    var : 变量在没有var之前声明之前就可以使用,不过值是 undefind  
  
       let : 变量必须声明之后才可以使用,并且作用域范围在 代码块范围内有效  
  
    // var 的情况  
console.log(foo); // 输出undefined  
var foo = 2;  
  
// let 的情况  
console.log(bar); // 报错ReferenceError  
let bar = 2;  
  
ES6 规定暂时性死区和letconst语句不出现变量提升,主要是为了减少运行时错误,防止在变量声明前就使用这个变量,从而导致意料之外的行为。  

2

暂时性死区

  
定义: 在一个代码块范围内,使用let命令声明变量之前,该变量都是不可用的。  
  
  
eg:  
var tmp = 123;  
  
if (true) {  
  tmp = 'abc'; // ReferenceError  
  let tmp;  
}  
  
  
  
# ES6 规定暂时性死区和let、const语句不出现变量提升,主要是为了减少运行时错误,防止在变量声明前就使用这个变量,从而导致意料之外的行为。  

3

const常量使用

  
定义: const声明一个只读的常量。一旦声明,常量的值就不能改变。  
  
const PI = 3.1415;  
PI // 3.1415  
  
PI = 3;  
// 报错  
  
  
#注意:   
    1. 一旦定义const 常量 必须初始化赋值  
    2.const的作用域与let命令相同:只在声明所在的块级作用域内有效。  
    3.const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。  
    4. const 变量为 复合类型时,变量指向的内存地址,保存的只是一个指向实际数据的指针,可以为符合类型添加属性或者方法,但是不可以改变指针地址引用  
  
  
    const foo = {};  
  
// 为 foo 添加一个属性,可以成功  
foo.prop = 123;  
foo.prop // 123  
  
// 将 foo 指向另一个对象,就会报错  
foo = {}; // TypeError: "foo" is read-only  
  
  
const a = [];  
a.push('Hello'); // 可执行  
a.length = 0;    // 可执行  
a = ['Dave'];    // 报错  

4

声明变量的6中方法

  
ES5var    function  
  
ES6let  const    class  import  

5

顶层对象属性

  
1.在浏览器环境顶层对象属性指的是window对象,  
2.Node 指的是global对象。  
3.ES5 之中,顶层对象的属性与全局变量是等价的。  
  
window.a = 1;  
a // 1  
  
a = 2;  
window.a // 2  
  
  
  
  
#注意  
4.ES6中,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。  
var a = 1;  
// 如果在 Node 的 REPL 环境,可以写成 global.a  
// 或者采用通用方法,写成 this.a  
window.a // 1  
  
let b = 1;  
window.b // undefined  
  
5. ES6 这样的设计解决了在编译时就可以找到错误  

原创不易,如果觉得不错的话,点个赞哟

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生环境下的日志采集存储分析实践
云原生场景下,日志数据的规模和种类剧增,日志采集、加工、分析的多样性也大大增加。面对这些挑战,火山引擎基于超大规模下的 Kubernetes 日志实践孵化出了一套完整的日志采集、加工、查询、分析、消费的平台。本次主要分享了火山引擎云原生日志平台的相关实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论