es其他常用功能

es6除了模块化,class,promise,还有一些其他的常用功能。
1、let/const
let是定义一个变量,但是这个变量可以重新赋值,const是定义一个常量,这个常量不能重新赋值
let i = 10; i = 100; // 正确
const j = 20; j = 200; // 报错

 

2、多行字符串/模板变量
// JS
var name = 'zhangsan', age = 20, html = '';
html = '<div>'
html += ' <p>' + name + '</p>';
html += ' <p>' + age + '</p>';
html +='</div>'



// es6
const name = 'zhangsan', age = 20;
const html = `
  <div>
    <p>${name}</p>
    <p>${age}</p>
  </div>
`;

一个特点是反引号,一个${}引入变量,代码易读

 

3、解构赋值
// JS
var obj = {a:100, b:200}
var a = obj.a;
var b = obj.b;


var arr = ['xxx', 'yyy', 'zzz'];
var x = arr[0];


//ES6
const obj = {a:10, b:20, c:30};
const {a, c} = obj;
console.log(a);
console.log(c);


const arr = ['xxx', 'yyy', 'zzz'];
const [x, y, z] = arr;
console.log(x);
console.log(y);
console.log(z);



4、块级作用域
js没有块级作用域,会埋下坑
// JS
var obj = {a:100, b:200}
for (var item in obj){
  console.log(item);
}
console.log(item) // b


// ES6
const obj = {a:100, b:200}
for(let item in obj){
  console.log(item);
}
console.log(item);// undefined

 

5、函数默认参数
//JS
function fn(a,b){
  if (b == null) {
    b = 0;
  }
}

//ES6
function fn(a, b=0){
 
}

 




6、箭头函数
//JS
var arr = [1, 2, 3, 4, 5];
arr.map(function(item){
  return item + 1;
})


//ES6
const arr = [1, 2, 3, 4, 5];
arr.map(item => item +1);



function fn(){
  console.log('real', this); // {a:100}
  var arr = [1, 2, 3];
  arr.map(() => {
    console.log(this); // {a:100}
  })
  arr.map(function(){
    console.log(this)
  })
}
fn.call({a: 100})

 

 

转载于:https://www.cnblogs.com/wzndkj/p/10961880.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值