摘要:可以通过调用方法将创建一个新的类型的值,这个值独一无二,不与任何值相等。还可以使可扩展,在中,表达式被标准化为构造函数的一个方法,这意味着它是可扩展的。
前端发展的太快了,快到ES6,ES7出来之后,今年已经是ES8了,但是纵然前端发展很快,我们除了马不停蹄的学习新的技术之外,也要沉下心来,好好的潜心磨砺自己,本文是整理了自己学习ES6之后相关的知识要点,寄希望于书之于笔,一来自己可以更好地领悟,而来也可以留作日后翻阅查看。
ES6新增的知识点主要包括变量声明let以及const,新增类型symbol,模板字符串,语法糖实现类,用于异步调用的promise对象,模块化,箭头函数,rest参数以及参数默认值,Set和Map集合,for of循环和迭代器iterator以及Generator等等,可以看出,ES6较之于ES5还是有着很多的新增特性,接下来会分为几篇文章将其一一介绍。
let和const
在JavaScript中咱们以前主要用关键var来定义变量,ES6之后,新增了定义变量的两个关键字,分别是let和const
对于变量来说,在ES5中var定义的变量会提升到作用域中所有的函数与语句前面,而ES6中let定义的变量则不会,let声明的变量会在其相应的代码块中建立一个暂时性死区,直至变量被声明。
//var声明变量 console.log(x === undefined); // "true" var x = 3; //let声明变量 console.log(x === undefined); // Uncaught ReferenceError: x is not defined let x = 3;
从上面的代码可以看出来,使用let我们可以伪造一个代码块,终于不再局限于函数作用域中,而且对于代码也会更加的规范,使用let定义变量,提倡人们先定义再使用,不然会报错。
const主要作用于定义常量,而且一旦声明,初始必须赋值,并且变量值不能更改,否则会报错
const CALA; //Missing initializer in const declaration const CALA="calabash519" CALA="hello world"; //Assignment to constant variable.
symbol
ES6 以前,我们知道5种基本数据类型分别是Undefined,Null,Boolean,Number以及String,然后加上一种引用类型Object构成了JavaScript中所有的数据类型,但是ES6出来之后,新增了一种数据类型,名叫symbol,像它的名字表露的一样,意味着独一无二,意思是每个 Symbol类型都是独一无二的,不与其它 Symbol 重复。
可以通过调用 Symbol() 方法将创建一个新的 Symbol 类型的值,这个值独一无二,不与任何值相等。
var mySymbol=Symbol(); console.log(typeof mySymbol) //"symbol"
其他类型可以被强制转换成字符串,但是Symbol 却不能,千万不要这么做,不然会报错,提示TypeError。
可以使用Symbol来定义对象的属性,而且当Symbol作为属性名的时候,必须用[]来进行调用而不是点操作符。
var obj = {}; var mySymbol = Symbol(); obj[mySymbol] = "calabash519"; console.log(obj[mySymbol]); //calabash519 console.log(obj.mySymbol); //undefined
Symbol还可以使 instanceof 可扩展,在 ES6 中,object instanceof constructor 表达式被标准化为构造函数的一个方法:constructor[Symbol.hasInstance](object),这意味着它是可扩展的。
模板字符串
字符串是JavaScript中基本类型之一,应该算是除了对象之外是使用最为频繁的类型吧,字符串中包含了例如substr,replace,indexOf,slice等等诸多方法,ES6引入了模板字符串的特性,用反引号来表示,可以表示多行字符串以及做到文本插值(利用模板占位符)。
// 以前的多行字符串我们这么写: console.log("hello world 1 hello cala"); // "hello world // hello cala" //有了模板字符串之后 console.log(`hello world string text line 2`); // "hello world // hello cala"
可以用${}来表示模板占位符,可以将你已经定义好的变量传进括弧中,例如:
var name="cala"; var age=22; console.log(`hello,I"am ${name},my age is ${age}`) //hello,I"am cala,my age is 22
上述是个很简单的例子,展示了模板字符串和模板占位符的基本用法,对比与普通字符串,模板字符串可以更好地支持自动转义特殊的字符串,也可以在其内嵌套控制语句,使得代码的逻辑更加清晰。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/87273.html
摘要:的翻译文档由的维护很多人说,阮老师已经有一本关于的书了入门,觉得看看这本书就足够了。前端的异步解决方案之和异步编程模式在前端开发过程中,显得越来越重要。为了让编程更美好,我们就需要引入来降低异步编程的复杂性。 JavaScript Promise 迷你书(中文版) 超详细介绍promise的gitbook,看完再不会promise...... 本书的目的是以目前还在制定中的ECMASc...
摘要:提供了解构赋值的方式,这样子在赋值多个变量或者进行注释时可以方便很多,不同场景下也有很多新的应用,个人常使用的有数组的解构赋值,对象的解构赋值和函数参数的解构赋值,函数参数的解构赋值之前总结过,这里写下数组的和对象的简单总结吧函数参数的解构 ES6提供了解构赋值的方式,这样子在赋值多个变量或者进行注释时可以方便很多,不同场景下也有很多新的应用,个人常使用的有数组的解构赋值,对象的解构赋...
摘要:返回一个对象,遍历对象自身和继承的所有可枚举属性不含,与相同和在红宝书中就已经提到过属性,表示的是引用类型实例的一个内部指针,指向该实例的构造函数的原型对象。 半个月前就决定要将ES6的学习总结一遍,结果拖延症一犯,半个月就过去了,现在补起来,惭愧惭愧。 阮一峰的《ES6标准入门》这本书有300页左右,除了几个新的API和js语法的扩展,真正有价值的内容并不多。所谓存在即合理,每部分的...
摘要:特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 本以为自己收藏的站点多,可以很快搞定,没想到一入汇总深似海。还有很多不足&遗漏的地方,欢迎补充。有错误的地方,还请斧正... 托管: welcome to git,欢迎交流,感谢star 有好友反应和斧正,会及时更新,平时业务工作时也会不定期更...
摘要:对于,虽然之前也有过学习,但总的来说还是不够系统的,知识点非常的零碎。因此包括以为基础产生的语法糖在逐渐的趋近于强类型的语言。是创建,而不是的覆盖。因而称之为富一代。所以语法标准的更新将对良好编程习惯有着极大的利好。 对于ES6,虽然之前也有过学习,但总的来说还是不够系统的,知识点非常的零碎。现在结合之前遇到的问题把ES6中的知识点总结一下。最初接触ES6时,明白ES5中声明变量的方式...
阅读 1941·2021-08-11 11:13
阅读 994·2021-07-25 21:37
阅读 2546·2019-08-29 18:42
阅读 2491·2019-08-26 12:18
阅读 844·2019-08-26 11:29
阅读 1662·2019-08-23 17:17
阅读 2637·2019-08-23 15:55
阅读 2581·2019-08-23 14:34