ES6笔记(一)

ES6特性详解

1.ES6是JavaScript规范,之所以不叫JavaScript,一是因为商标问题,java是SUN公司的商标,只有Netscape才能使用JavaScript这个名字,且JavaScript已经被Netscape公司注册为商标。二是想体现这门语言的制定者是ECMA,而不是Netscape.

2.ES6原意是指JavaScript5.1以后的下一代版本,泛指ES2015、ES2016、ES2017等等。

3.ES5变量提升,全局作用域、函数作用域,ES6暂时性死区,块级作用域

4.do表达式

let x = do {
  let t = f();
  t * t + 1;
}; x为整个块级作用域的返回值

5.顶层对象和global对象

6.解构赋值

7.字符串:中文,charPointAt(0,2,for...of), fromCodePoint, at, normailize(NFC,NFD), includes, startsWith, endsWith, repeat, padStart, padEnd, 模板字符串,标签模板,String.raw(),模板字符串的限制(转义字符)

8.正则的扩展:RegExp构造函数的参数(第二个有效),u修饰符(支持中文),y修饰符(同g,不同之处:后一次匹配从上一次匹配成功的下一个字符开始,属性:lastIndex,index,source,flags,sticky,RegExp.escape()(字符串转义),s修饰符(dotAll),后行断言,Unicode属性类。

9.数值的扩展:二进制(0b,0B),八进制(0o,0O),Number.isFinite(),Number.isNaN()(只能判断number类型),Number.parseInt(),Number.parseFloat(),Number.isInteger(),Number.EPSILON(极小数,用于浮点数计算精确度),Number.MAX_SAFE_INTEGER,N umber.MIN_SAFE_INTEGER, Number.isSafeInteger(), Math.trunc()(返回整数部分),Math.sign()(判断一个数是正数、负数还是0,返回值:+1,-1,+0,-0,NAN),Math.cbrt()(计算一个数的立方根),Math.clz32()(返回一个数的32位无符号整数形式有多少个前导0),Math.imul()(返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32位的带符号整数),Math.fround()(返回一个数的单精度浮点数形式),Math.hypot()(返回所有参数的平方和的平方根),Math.expm1()(返回ex - 1,即Math.exp(x) - 1),Math.log1p()(返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN),Math.log10()(返回以10为底的x的对数。如果x小于0,则返回NaN),Math.log2()(返回以2为底的x的对数。如果x小于0,则返回NaN),

  • Math.sinh(x) 返回x的双曲正弦(hyperbolic sine)
  • Math.cosh(x) 返回x的双曲余弦(hyperbolic cosine)
  • Math.tanh(x) 返回x的双曲正切(hyperbolic tangent)
  • Math.asinh(x) 返回x的反双曲正弦(inverse hyperbolic sine)
  • Math.acosh(x) 返回x的反双曲余弦(inverse hyperbolic cosine)
  • Math.atanh(x) 返回x的反双曲正切(inverse hyperbolic tangent)

10.数组的扩展:Array.from(arr, ()=>{})(转化类数组和可遍历的对象为真正的数组),Array.of()(用于将一组值,转换为数组。如果没有参数,就返回一个空数组。这个方法的主要目的,是弥补数组构造函数Array()的不足。因为参数个数的不同,会导致Array()的行为有差异。),数组实例的copyWithin(),数组实例的find()和findIndex()(这两个方法都可以接受第二个参数,用来绑定回调函数的this对象。另外,这两个方法都可以发现NaN,弥补了数组的IndexOf方法的不足。),数组实例的fill(),数组实例的entries(),keys()和values(),数组实例的includes()(该方法属于ES7,但Babel转码器已经支持。),数组的空位

ES5对空位的处理,已经很不一致了,大多数情况下会忽略空位。

  • forEach(), filter(), every()some()都会跳过空位。
  • map()会跳过空位,但会保留这个值
  • join()toString()会将空位视为undefined,而undefinednull会被处理成空字符串。

ES6则是明确将空位转为undefined

数组的常用方法见  https://www.cnblogs.com/obel/p/7016414.html

转载于:https://www.cnblogs.com/byayn/p/10840955.html

回答: 在引用\[1\]中,代码展示了如何使用JavaScript来给每个class为"item"的div元素添加点击事件,并在点击后改变其背景颜色为粉色。使用let关键字声明变量i,可以确保在每个作用域内都有个独立的i变量,避免了使用var时可能出现的作用域问题。而const关键字用于声明常量,常量的值不能被修改。在引用\[2\]中,提到了ES6中var、const和let的区别,包括变量提升、块作用域、声明的值、类型和变量是否可改变等方面。在引用\[3\]中,指出了ES6规定所有Class的原型方法都是不可枚举的。关于ES6的更多内容,你可以参考相关的学习资料来深入了解。 #### 引用[.reference_title] - *1* *3* [es6笔记](https://blog.youkuaiyun.com/weixin_42235173/article/details/115300118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ES6笔记](https://blog.youkuaiyun.com/weixin_48352984/article/details/125684884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值