ECMAScript6扫盲笔记(一)

ECMA组织推出的ECMAScript是一个标准(协议),JS是协议的实现。   ECMAScript简称ECMA或ES。目前使用最多的是ES5.1,ES6正式推出是在2015年。就酱~。    ES6(ES2015)兼容性http://kangax.github.io/compat-table/es6/
ES6(ES2015) 支持 :IE10+、Chrome、FireFox、移动端、NodeJS。

 

1. ES6编译转换

为了使ES6可以支持低版本的浏览器,可以对ES6进行编译和转换:在线转换(用户每次打开页面时都需要转换一次,用户体验差)提前编译(也会耗费编译时间,因此,对于小白来说,不支持的东西就先不用了)。
提前编译ES6规则的js需要在html引入script和type,eg:

<script src="browser.js" charset="utf-8"></script>
<script type="text/babel">
    let a=12;
    let b=5;
    alert(a+b);
</script>

 

2. 变量

var声明变量的弊端

  1. 同一个变量名可以重复声明(var a=5;var a=13;)。
  2. 无法限制修改(没有常量)。
  3. 没有块级作用域(块级作用域,例如在for循环中,for(int i=0;i<3;i++),定义的循环变量i,只在for块中有效。)。

ES6新变量:

let:定义变量;同名变量不能重复声明;块级作用域;

const:定义常量;同名变量不能重复声明;块级作用域;

块级作用域的作用  eg:

<input type="button"  value="按钮1" />
<input type="button"  value="按钮2" />
<input type="button"  value="按钮3" />
<script type="text/javascript">
	/*window.onload=function(){
		var aBtn = document.getElementsByTagName('input');
		for(var i=0;i<aBtn.length;i++){
			(function(i){
				aBtn[i].onclick=function(){
					console.info("i=",i);
				};
			})(i);
		}
	}*/
	window.onload=function(){
		var aBtn = document.getElementsByTagName('input');
		for(let i=0;i<aBtn.length;i++){
			aBtn[i].onclick=function(){ console.info("i=",i); }
		}
	}
</script>

 

3. 函数

  (1). 箭头函数(只有一个参数,则可以省略();若只有一个return,则可以省略{}。只是一种简写而已)

        eg1:(function()可以被箭头()=>代替) 

<script>
	/*let show = function (){	alert('abc');	};*/
	let show = () => {  alert('abc');	};
	show();
</script>

        eg2:(省略了{}和return,由于两个参数,因此()不能省略。)

<script>
    let arr=[12, 5, 8, 99, 33, 14, 26];
    /*arr.sort(function (n1, n2){
      return n1-n2;
    });*/
    arr.sort((n1, n2)=>n1-n2);
    alert(arr);
</script>

        eg3:(有且只和有一个参数和一个return的情况)

<script>
    /*let show = function(a){
      retrun a*2;
    }*/
    let show=a=>a*2;
    alert(show(12));
</script>

  (2). 函数参数 

  1. 默认参数。在es6规则中,定义的函数,其参数可以直接用“等号”赋予值,当该函数未接收到参数时,仍有默认值。eg:
    <script>
        function show(a, b=5, c=12){
          console.log(a, b, c);
        }
        show(99, 19);
    </script>
  2. 接收不定个数的参数。es6规则可以使函数接收参数时,使用...YourNames接收多个参数。eg:
     
    <script>
        function show(a, b, ...args){//a,b参数均可以接收到值,其它参数全都收入args数组中
          alert(args);
        }
        show(12, 15, 8, 9, 20, 21);
    </script>
  3. 简化数组表示方式。在ES6中,...args的形式即可表示数组的所有元素。eg:

    

 

4. 解构赋值

  • 左右两边结构必须一样
  • 右边必须是个对象
  • 声明和赋值不能分开(必须在一句话里完成)

eg:

<script>
  let {a, b, c}={a: 12, c: 5, b: 6};   // 两边都是{},右侧是json对象。
  console.log(a, b, c);

  let [e,f,g]=[1,5,8];  // 两边都是[],右边是数组。
  console.log(e,f,g);
</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值