ES6常用语法

1. let和const

let和var的区别

  • let不存在变量提示机制(变量不允许在声明之前使用)
  • let不允许重读声明
  • 在全局作用域中基于let声明的变量不是window的一个属性,和window没关系
  • typeof 未被声明的变量 =>不是undefined而是报错(暂时性死区)
  • let会形成块级作用域

let
let和var的域的探讨不同
var只有全局和局部(函数)
let只要遇到一个代码块就是一个域,比较能体现区别的就是for循环。let没有变量提升

for(var i=0,i<5,i++){
console.log(i);
}
console.log(i)
//得到的输出是1 2 3 4      5
//i没有被销毁

for(let i=0,i<5,i++){
console.log(i);
}
console.log(i);
//1 2 3 4 报错

//解决变量提升问题
console.log(a);
var a;
//输出是undefined 不会报错 变量提升但不严谨
//如果是let
conosole.log(a)let a;
//报错,a is not defined

const

一旦想声明const一定给初始值
const不可被改变,可以是简单值也可以是对象
const指向对象,内容可以被改变,只不过指针不能被改变,给其重新赋值不行
和let一样,是块级作用域

2. 解构赋值

数组的解构赋值

var a=1,b=2,c=3;
var [a,[b,c]]=[1,[2,3]];
var [a,,c]=[1,2,3]//可以挑着赋值a,c
var[a,…c]=[1,2,3]//1赋值给a,其他赋值给c
var[a,b,c='default',d='default']=[1,2,3]//设默认值
//a=1,b=2,c=3,d='default'

对象的解构赋值

var obj={
a:1,
b:2
}
let {a,b}=obj;//a=1,b=2
let {c,b}=obj;//c=undefined,b=2
let {a:A,b}=obj;//赋值后重命名

//如果已经定义了一个a
let a;
let{a,b}=obj;
//会报错,a已经定义过了不会再定义
let a;
({a,b}=obj);//不能不加小括号,因为{}会被当成代码块

let {a=1,b=2}={a:10}//默认值指定方式
//在真实项目中,服务器传来一些数据
let res={
status:200,
id=12,
data:[{name:'Bob'},{name:'Shuan Dan'}]
}
let {status,id,data}=res;
if(status==200)
{
}
//也可以用来解构方法
let{floor,pow}=Math;
let a=1.1;
console.log("floor(a):",floor(a));

其他的解构赋值

let {length}='yo.';
console.log(length);//3

let [a,b,c]="Yo.";//解构字符串
//传参时使用
var arr=[1,2];
function test([a,b]){
console.log(a);
console.log(b);
}
test(arr);
//为了解决传参顺序问题,用对象
var obj={a:1,b:2}
function test({a,b}){
console.log(a);
console.log(b);
}
test(obj);
//用默认值
var obj={b:2}
function test({a=10,b}){
console.log(a);
console.log(b);
}
test(obj);

3. 字符串的拓展

模板字符串

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量

let str=`
hello,
I am sorry to inform you that you falied.
`
console.log(str);

得到的结果是
在这里插入图片描述
断行可以实现,写html变量代码方便
如果想带变量

let name='wangyue';
let age='20';
let str=`
hello,${name}
Accroding to your passport, you are ${age} years old.
`;
console.log(str);

得到的结果
在这里插入图片描述
不需要加号,换行也可以实现,非常方便
大括号内部可以放入任意的 JavaScript 表达式,可以进行运算,以及引用对象属性。

4.字符串的新增方法

四个
includes,endsWith,startsWith,repeat

//之前查找字符串
console.log('Yo'.indexOf('Y')!==-1)
//新方法
console.log('Yo'.includes('Y'));
//返回的是布尔值
console.log('Yo'.startsWith('o'));//false
console.log('Yo'.endsWith('o'));//true
console.log('Yo'.repeat(3));//YoYoYo
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值