zoukankan      html  css  js  c++  java
  • let,const及解构赋值

    Ecmascript-6
    ES6 发布时间2015-6月,又称ECMAScript 2015

    http://kangax.github.io/compat-table/es6/

    作用域

    let const

    let 块级作用域

    • 在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死 区”(temporal dead zone,简称TDZ)
    • 不允许重复声明
    • let声明的变量不属于window的属性
    	console.info(c); let c;
    	
    	typeof c; let c;
    	
    	var tmp =123; if(true) { tmp = 456; let tmp; }
    	
    	var flag = true;
    	if(flag) {
    		let flag;
    	}
    	
    

    为什么引入块级作用域

    • 内层变量覆盖外层变量
    • 内层变量泄漏到全局变量

    const 常量

    • 常量值必须初始化声明
    • 一旦声明,常量的值就不会改变
    • 与let一致,存在暂时性死 区

    跨模块常量

    a.js

    	export const A = 1;
    	export constt B = 2;
    

    b.js

    	improt * as Constants from './a'
    	console.info(Constants.A); //1
    

    c.js

    	import {A, B} from './a'
    	console.info(A);
    

    解构赋值

    数组解构赋值

    语法

    var [v1,v2...vn] = array
    let [v1,v2...vn] = array
    const  [v1,v2...vn] = array
    
    var [a,b,c,d] = [1,2,3,4];
    console.info(a);
    

    对象解构赋值

    语法

    var {v1, v2,...vn } = { vn....v2..v1}
    
    

    字符串解构赋值

    语法

    const [a,bc,c] = 'hello-string';
    console.info(a,b,c);
    

    用途

    • 变换变量的值 [x, y] = [y, x]
    • 从函数返回多个值 return [1,2,3] return {foo:1, bar:2}
    • 函数入参默认值
    • 迭代map很方便 for( let [key,value] of map)
    • 模块加载-》 const { sourcemap } = require("source-map");
  • 相关阅读:
    hdu 1269 迷宫城堡(强联通分量,基础)
    hdu 2102 A计划(BFS,基础)
    python 变量命名规范
    rpm常用选项
    memcached
    session共享
    Nginx高级使用
    nginx 反向代理
    Nginx基本使用
    github 建立博客
  • 原文地址:https://www.cnblogs.com/pengsn/p/12848330.html
Copyright © 2011-2022 走看看