es6学习(一)---声明及解构

作者: AkiraSun | 来源:发表于2017-07-29 16:20 被阅读20次

声明方式

  • let局部声明
var a=2;
{ 
 let a=3;
}
console.log(a);//2
{
   let a=3;
}
console.log(a);//报错

上面两个例子说明了let是局部变量声明,let声明只在区块内起作用,外部是不可以调用的。

for(let i=0;i<10;i++){
console.log('循环体中:'+i);
}
console.log('循环体外:'+i);//undefined

let用在循环体中可以防止外部i被污染

  • const声明常量
    有些变量是希望声明后在业务层就不再发生变化了,简单来说就是从声明开始,这个变量始终不变,就需要用const进行声明。

变量的解构赋值

从数组和对象中提取值,对变量进行赋值,这被称为解构

  • 数组的解构赋值
let [a,b,c]=[1,2,3];//a=1,b=2,c=3

可以简单的理解为等号左边和等号右边的形式要统一,如果不统一解构将失败

解构设置的默认值

let [foo = true] =[];
console.log(foo); //控制台打印出true
  • 对象的解构赋值
let {foo,bar} = {foo:'hello',bar:'world};
console.log(foo+bar); //控制台打印出了“helloworld”

如果在解构之前就定义了变量,这时候你再解构会出现问题。下面是错误的代码,编译会报错。
要解决报错,使程序正常,我们这时候只要在解构的语句外边加一个圆括号就可以了。

let foo;
({foo} ={foo:'hello'});
console.log(foo); //控制台输出hello

扩展运算符

  • 对象扩展运算符(…)
function hello(...arg){
    console.log(arg[0]);
    console.log(arg[1]);
    console.log(arg[2]);
    console.log(arg[3]);
 
}
hello(1,2,3);//依次输出1,2,3,undefined

扩展运算符的用处:
我们先用一个例子说明,我们声明两个数组arr1和arr2,然后我们把arr1赋值给arr2,然后我们改变arr2的值,你会发现arr1的值也改变了,因为我们这是对内存堆栈的引用,而不是真正的赋值。


2
3
4
5
let arr1=['www','akira','com'];
let arr2=arr1;
console.log(arr2);
arr2.push('lulu');
console.log(arr1);
//["www", "akira", "com"]
//["www", "akira", "com", "lulu"]

这是我们不想看到的,可以利用对象扩展运算符简单的解决这个问题,现在我们对代码进行改造。

let arr1=['www','akira','com'];
let arr2=[...arr1];
console.log(arr2);
arr2.push('lulu');
console.log(arr2);
console.log(arr1);
//["www", "akira", "com", "lulu"]
//["www", "akira", "com"]

相关文章

  • es6学习(一)---声明及解构

    声明方式 let局部声明 上面两个例子说明了let是局部变量声明,let声明只在区块内起作用,外部是不可以调用的。...

  • ES6语法

    ES6解构赋值: 栗子: ES6对象声明: ES6模块语法: 导入导出对应 export default rout...

  • ES6小结

    ES6 javascript 最新版 下面列出常用的一些 声明变量 声明常量 声明对象 箭头函数 小例子 解构 数...

  • ES6变量的解构赋值

    一、数组的解构赋值 es5一次声明多个变量。 es6一次声明多个变量。 es6这种写法属于“模式匹配”,只要等号两...

  • ES6

    ES6: ES6 新语法 1.变量 解构赋值 (解构赋值对应的python里的序列解包) 解构赋值方式一: 解构赋...

  • ES6之解构赋值

    关键词:解构赋值 我们之前声明变量怎么声明? 这样如果声明太多变量会很麻烦,es6给我们提供了一种清新脱俗的方法:...

  • Kotlin 解构声明 详解

    引言 解构声明是将一个对象 解构成 N 个变量,一个解构声明同时创建多个变量 如何使用解构声明 直接将对象解构为N...

  • Kotlin的解构声明

    将一个对象解构成多个变量 一、解构声明 解构声明会被编译成如下代码 使用解构声明时,对象需要提供 componen...

  • 记录:es6新增数组去重的方法:Set()

    ...es6的解构

  • Kotlin 解构声明和元组

    一. 解构声明简介 解构声明,可以将一个对象解构成多个变量,像下面这样 一个解构声明同时创建多个变量,并且可以单独...

网友评论

    本文标题:es6学习(一)---声明及解构

    本文链接:https://www.haomeiwen.com/subject/urtflxtx.html