北妈每日一学:ES6语法入门 之开门见山


北妈每日一学

《北妈每日一学》

我决定从今天开始,发布新栏目:“北妈每日一学”,每天发布一个或者一系列的技术知识点来给大家,这样我们每天可以一起总结和学习,也算一个好的开始和坚持。
北妈每日一学用最短的篇幅 ,最好的排版,最简洁的例子和大家一起学习、总结、入坑。

由于头条文章比较宝贵,而且写的太短不行,天天总写技术又会很枯燥,而且时不时还要发一篇广告,所以利用次条文章每日 学一个知识点我觉得是最合适不过的聪明之举,而且我一直有这个想法,今天才决定付诸行动 - 因为拉到靠谱赞助商了。

这个栏目所有技术点,都是底部展示的机构协助提供,和我共同整理,供大家学习,觉得有帮助就支持下。



ES6 简介

ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。

也就是说,ES6就是ES2015。

虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6了。所以就算你现在不打算使用ES6,但为了看懂别人写的代码你也必须要懂ES6的语法了...

北妈一句白话就是:之前用的,你所熟悉的js语法是es5标准,现在是es6标准,恩就这么多。

ES6 常见语法

let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments
这些是ES6最常用的几个语法,基本上学会它们,我们就可以走遍天下都不怕啦!我会用最通俗易懂的语言和例子来讲解它们,保证一看就懂,一学就会。

但是ES6那么多那么多特性,我们需要全部都掌握吗?秉着二八原则,掌握好常用的,有用的这个可以让我们快速掌握。今天跟北妈先来学最基础的 也是最有特点的  let, const

1.变量声明 const 和 let


我们都是知道在ES6以前,var关键字声明变量。无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。这就是函数变量提升例如:

 function aa() {    
 if(bool) {      
      var test = 'hello man'   } else {      
       console.log(test)    }  }

以上的代码实际上是:

 function aa() {    var test // 变量提升    if(bool) {        test = 'hello man'    } else {        
 
 //此处访问test 值为undefined        console.log(test)    }    //此处访问test 值为undefined  }

所以不用关心bool是否为true or false。实际上,无论如何test都会被创建声明。

接下来ES6主角登场:
我们通常用let和const来声明,let表示变量、const表示常量。let和const都是块级作用域。怎么理解这个块级作用域?

  • 在一个函数内部

  • 在一个代码块内部

说白了 {}大括号内的代码块即为let 和 const的作用域。

看以下代码:

 function aa() {    
     if(bool) {      
      let test = 'hello man'    } else {        //test 在此处访问不到        console.log(test)    }  }

let的作用域是在它所在当前代码块,但不会被提升到当前函数的最顶部。

再来说说const。

   const name = 'lux'    name = 'joe' //再次赋值此时会报错

说一道面试题

   var funcs = []    
   for (var i = 0; i < 10; i++) {        funcs.push(function() { console.log(i) })    }    funcs.forEach(function(func) {        func()    })

这样的面试题是大家常见,很多同学一看就知道输出 10 十次
但是如果我们想依次输出0到9呢?两种解决方法。直接上代码。

   // ES5告诉我们可以利用闭包解决这个问题    var funcs = []    
   for (var i = 0; i < 10; i++) {        func.push((function(value) {            
           return function() {              
           
             console.log(value)            }        }(i)))    }    
   // es6    for (let i = 0; i < 10; i++) {        func.push(function() {          
    console.log(i)        })    }

达到相同的效果,es6简洁的解决方案是不是更让你心动!!!

好今天先到这里,北妈每日一学用最短的篇幅 ,最好的排版,最简洁的例子和大家一起学习、总结、入坑。



《感谢赞助者 - 必看》

以上所有技术点,都是以下机构协助提供,和我共同整理,供大家学习

他们有更多的资料和素材和时间整理这些,可以说比我还要专业,有需要资料的就识别二维码咨询他。


扫描或识别二维码,备注
 我想要资料

希望大家共同支持 和成长。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值