【ES6新特性】

ES6新特性:

在实际开发中,ES6已经非常普及了。掌握ES6的知识变成了一种必须。尽管我们在使用时仍然需要经过babel编译。
ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大。值得高兴的是,如果你熟悉ES5,学习ES6并不需要花费太多的时间就可以掌握,因为常用的基础语法并不多,花少量的时间,就可以开始我们的ES6之旅了。
这篇文章不会详细的告诉你ES6的每一个细节知识,只会根据我自己的开发经验,将我在实际开发中常常用到的知识点分享给大家,给大家学习ES6一个方向的指引。这是因为考虑到很多同学虽然知道ES6的重要性,但是不知道自己需要掌握那些ES6的知识,也不知道这些知识需要掌握到什么程度,这给新手朋友带来了许多困惑,因此这篇文章就算是一个划重点吧,掌握这些,就可以轻轻松松得进行进一步学习了。

一、let变量的声明以及声明特性

	//声明变量
	let a;
	let f,b,c;
	let e=100;
	
	//1、变量不能重复声明
	let star="repetition";
	let star="mistake"; //这样声明会报错
	
	//2、模块作用域、全局、函数、eval
	{
		let module = "模块";
	}
	console.log(module); //调用会报错
	
	//3、不存在变量提升
	console.log(ahead) //提前调用会报错
	let ahead = "提前";
	
	//4、不影响作用域链
	{
		let school="学校";
		function fu(){
			console.log(school);
		}
	}
	fu();

二、const声明常量以及特点

  • //声明常量
    const SHOOL= “学校”;
    //1、一定要赋初始值
    const A; //会报错
    //2、一般常量使用大写(规范)
    const a=100;
    //3、常量值不能修改
    SHOOL = “xuexiao”;
    //4、模块作用域
    {
    const AHEAD=“XUEXIAO”;
    }
    console.log(AHEAD);//调用会报错,模块作用域
    //5、对于数组和对象的元素修改,不算对常量的修改,不会报错
    const TEAM = [‘A’,‘B’,‘C’];
    TEAM.push(‘D’);//不会报错
    TEAM = 100; //会报错

三、结构赋值

  •  //1、结构赋值
     const five=['一','二','三','四'];
     let [noe,two,three,four] = five;
     console.log(noe,two,three,four);
     //2、对象结构
     const construction = {
     	name:'学校',
     	age:'18',
     	effect:function(){
     		console.log("老师教书育人");
     	}
     }
     let {name,age,effect}=construction;
     console.log(name,age,effect);
    

四、模板字符串

  •  //1、字符串声明
     let str =`字符串声明`;
     console.log(str,typeof str);
     //2、直接出现换行符
     let mirror = `
     <ul>
     <li>学校</li>
     <li>老师</li>
     </ul>
     	`;
     //3、变量的拼接
     let speak = `先生`;
     let out = `陆${speak}`;
     console.log(out);
    

五、箭头函数

  •  //1、声明一个箭头函数
     let fu=(a,b)=>{
     	return a*b;
     }
     //2、调用函数
     let ride=fu(3,4);
     console.log(ride);
     //3、this是静态的,this指向函数声明所在作用域下的this
     function name1(){
     	console.log(this.name);
     }
     let name2=()=>{
     	console.log(this.name);
     }
     window.name='读书';
     const school={
     	name:"ATAT"
     }
     //直接调用
     // name1();
     // name2();
     //call方法调用
     name1.call(school);
     name2.call(school); //体现this是静态的,this指向函数声明所在作用域下的this
     //4、不能作为构造函数实例化对象
     let person=(name,age)=>{
     	this.name=name;
     	this.age=age;
     }
     let me=person(先生,18);
     console.log(me); //调用失败,箭头函数不能实例化对象
     //5、不能使用arguments变量
     let fu2 = () =>{
     	console.log(arguments);
     }
     fu2(1,2,3)
     //6、箭头函数缩写
     //-省略小括号,当形参有且只有一个的时候
     let add = n =>{
     	return n*n;
     }
     console.log(add(8));
     //-省略话括号,当代体只有一条语句的时候,此时return必须省略,语句的执行结果就是函数返回值
     let pow=(n)=> n+n;
     console.log(pow(4))
    

六、rest参数使用

  •  //ES6引入rest参数,用于获取函数的实参,用来代替arguments
     //1、ES5获取实参的方式
     function date(){
     	console.log(arguments);
     }
     date('老师','学生','书本');
     //2、rest参数必须放到参数最后
     function dte(...arg){
     	console.log(arg);
     }
     dte(12,2,31,2,1,32,1,2)
    

七、扩展运算法的介绍

  •  //1、扩展运算符能将[数组]装换为逗号分隔的[参数序列]
     const eat=['中午','吃饭','米饭','青菜'];
     function rice(){
     	console.log(arguments);
     }
     rice(...eat);
     //2、数组的合并
     const cup = ['杯子','水'];
     const spoon = ['勺子','筷子'];
     const merge=[...cup,...spoon];
     console.log(merge);
     //3、数组克隆
     const copy = ['C','O','P','Y'];
     const copy1 = [...copy];
     console.log(copy,copy1);
    

八、Symbol的介绍

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值