ES6 笔记 (一)
【摘要】 ES6学习笔记 let 和 constlet: 声明的变量只有在let命令下的代码块有效,也叫块级作用域const: 声明的变量是只读的,一旦声明常量的值就不能改变,但是如果用const来声明数组或者对象,则数组,对象下的值可以改变,原因是const指向的变量的地址没有发生改变 let 和 var的区别let是在代码块内有效,var是全局范围有效let只能声明一次,var可以多次声明;le...
ES6学习笔记
let 和 const
let: 声明的变量只有在let命令下的代码块有效,也叫块级作用域
const: 声明的变量是只读的,一旦声明常量的值就不能改变,
但是如果用const来声明数组或者对象,则数组,对象下的值可以改变,原因是const指向的变量的地址没有发生改变
let 和 var的区别
let
是在代码块内有效,var
是全局范围有效let
只能声明一次,var
可以多次声明;let
不存在变量提升,但有作用域链
解构赋值
从数组和对象中提取值,对变量进行赋值,称为解构赋值
- 基本的数组对数组赋值
let [a,b,c] = [1,2,3];//a=1,b=2,c=3
- 采用剩余运算符
let [a,...b] = [1,2,3];//a=1,b=[2,3]
剩余运算符表示用b来接收之后的所有值,所以返回数组
- 字符串解构
let [a,b,c,d,e] = 'hello';//hello
将字符串拆分成一个个字符来赋值,将字符串转化为对象
- 对象解构赋值
let {foo, bar} = { foo: 'aaa',bar: 'bbb'};
console.log(foo);//aaa
console.log(bar);//bbb
- 变量名和属性名不一致
let { baz : foo} = {baz : 'ddd'}
console.log(foo);//ddd
console。log(baz);undefind
baz
是模式,foo
才是值,在解构的时候,内部会先寻找同名的属性,赋值给他,所以这里是foo
接收到了ddd
解构赋值应用
交换变量
var a = 1;
var b = 2;
[a,b] = [b,a];
接收返回值
function fn() {
return [1,2,3];
}
var [a,b,c] = fn();
获取json对象中的数据
var data = {
name : 'ljc',
age : 20
}
var {name,age} = data;
console.log(name + age);//ljc20
部分赋值
var ljc=[1,2,3];
var [,x,]=ljc;
console.log(x);//2
var obj = {x : 1,y : 2, z : 3};
var {y : a} = obj;
console.log(a);//2
模板字符串
- 引入方式为【``】
console.log(`hello world`);
- 使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。
let str = `<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>`;
- 变量拼接
模板字符串中嵌入变量,需要将变量名写在
${}
之中
let lovest = 'ljc';
let out = `${lovest}最帅`;
console.log(out);//ljc最帅
- 模板字符串调用函数
function fn () {
console.log('我是ljc');
}
let out = `${fn()}`;//我是ljc
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)