前端JS进阶四(ES6-其他常用语法)

let/sonst

  • let:定以后可以修改的变量
  • const:定以后不能再修改的常量
//JS
  var i = 10;
  i = 100;
//ES6
  let i = 10;
  i = 100;  //true
  const j =20;
  j = 200;  //flase

多行字符串/模板变量

//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>`;    //使用反引号
  console.log(html);

解构赋值

//JS
  var obj = {a:200,b:300}
  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     //取a,c两个属性
  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);

块级作用域

//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

函数默认参数

//JS
  function(a,b){
    if(b = null){
      b = 0
    }
  }

//ES6
  function(a, b=0){   //如果b为空,默认b等于0

  }

箭头函数

//JS
  var arr = [1, 2, 3]
  arr.map(function(item){
    return item+1
  })

//ES6
  const arr = [1, 2, 3]
  arr.map(item => item+1)   //函数只有一个参数,函数里只有一行
  arr.map((item, index) => {   //函数有多个参数,函数里有多行
    console.log(index)
    return item + 1
  })
  • 箭头函数解决了JS中this是window全局变量的问题
  • 箭头函数作为普通函数的一个补充,将this指向了函数体之外最近一层的this,而不是向普通JS一样将this指向window变量。
  function fn(){
    console.log('real',this)     //{a:100}
    var arr = [1,2,3]
    //普通JS
    arr.map(function (item){
      console.log('js',this)     //window
      return item + 1
    })
    //箭头函数
    arr.map(item => {
      console.log('es6',this)     //{a:100}
      return item + 1
    })
  }
  fn.call({a:100})     //将{a:100}设置为this
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一章:块级作用域绑定 块级声明 1.var声明及变量提升机制:在函数作用域或者全局作用域中通过关键字var声明的...
    BeADre_wang阅读 974评论 0 0
  • ES6语法跟babel: 一、首先我们来解释一下什么是ES? ES的全称是ECMAScript。1996 11 ,...
    Mooya_阅读 1,153评论 0 0
  • [TOC] 参考阮一峰的ECMAScript 6 入门参考深入浅出ES6 let和const let和const都...
    郭子web阅读 1,904评论 0 1
  • 廿岁抛家江浙地,年光又向清明。百年三代共飘零。跋山思远祖,归燕动人情。 照眼青庐今尚在,耳边不复叮咛。回廊独绕黯销...
    木木与召召阅读 473评论 0 2
  • 昨夜海南省颂读学会颂读沙龙现场携手伏羲娃演一曲《陋室铭》,用吟诵展示诗歌,给大家耳目一新的感觉。 巨东老师说的对...
    一宝感言阅读 516评论 0 2

友情链接更多精彩内容