ES6新增API

1.Object.assign(a,b,c)

a、b均为对象,意思是把b对象的属性添加到a上面去。如果a中已经定义了某个属性,b也定义了的话就会覆盖a的,就是后面覆盖前面的,后面生命的有效。是 一种浅拷贝的方法。


 
image.png
2.Array.from

把一个不是数组的伪数组变为数组


 
image.png
3.Array.of()

没啥说的就是把你传的参数,变成一个数组,上面是es6 下面是es5


 
image.png
4.Array.prototype.fill()

填充,第一参数是要把数组填充的值,第二个是从哪开始,第三个是从哪结束
如果写在原型链上的可以直接拿来用

 
image.png
 
image.png
5.Array.prototype.find

上面是es6,下面是es5

 
image.png

find和filter的区别,find只招一个,filter是返回所有的


 
image.png
6.Array,prototype.findIndex

返回下标


 
image.png
7.最小精度
 
image.png
8.判断是否为整数

Number.isInteger()


 
image.png
9.判断是否为有限数字,PI是有限数组,正无穷不是有限数字
 
image.png
10.NaN 是一个数字

目前NaN由两个版本一个是window.isNaN 一个是Number.isNaN ,在window中使用NaN时,即使传了一个字符串也会返回true,因为他被隐式转换了,而Number.isNaN() 不会转换,传了字符串还是会返回false


 
image.png
11.Math.trunc

跟parseFloat差不多,但是parseFloat有bug,比如数很大的时候不能被正确转换,所以为了安全的转为整数要用Math.trunc


 


作者:zzyo96
链接:https://www.jianshu.com/p/872ab39e319a
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

转载于:https://www.cnblogs.com/blueball/p/10683360.html

### ES6 新增特性 ECMAScript 2015(简称 ES6)是 JavaScript 的一次重大更新,引入了许多新特性和语法改进,提升了语言的表现力和开发效率。以下是其中一些核心新增特性: #### 1. 类(Class) ES6 引入了 `class` 关键字,使得面向对象编程更加直观和规范。类支持继承、构造函数、方法定义等特性。 ```javascript class Person { constructor(name, age) { this.name = name; this.age = age; } say() { console.log(this.name + ":" + this.age); } } class Student extends Person { constructor(name, age, sex) { super(name, age); this.sex = sex; } } var student = new Student("tom", 18, "male"); student.name; // 'tom' student.sex; // 'male' student.say(); // 'tom:18' [^2] ``` #### 2. Symbol 数据类型 Symbol 是一种新的基本数据类型,用于创建唯一值,通常用作对象属性名以避免命名冲突。 ```javascript let sym1 = Symbol(); let sym2 = Symbol("description"); // 可选的描述字符串 [^1] ``` #### 3. 模块化(Module) ES6 原生支持模块化编程,通过 `import` 和 `export` 实现模块的导入和导出,增强了代码的可维护性和复用性。 ```javascript // math.js export function add(a, b) { return a + b; } // main.js import { add } from './math.js'; console.log(add(2, 3)); // 5 ``` #### 4. 箭头函数(Arrow Function) 箭头函数简化了函数表达式的写法,并且不绑定自己的 `this`,而是继承外层作用域的 `this`。 ```javascript const numbers = [1, 2, 3]; const squares = numbers.map(n => n * n); // [1, 4, 9] ``` #### 5. 默认参数(Default Parameters) 函数参数可以设置默认值,当未传入或值为 `undefined` 时使用默认值。 ```javascript function greet(name = "Guest") { console.log(`Hello, ${name}`); } greet(); // Hello, Guest greet("Alice"); // Hello, Alice ``` #### 6. 解构赋值(Destructuring Assignment) 解构允许从数组或对象中提取值并赋给变量,语法简洁明了。 ```javascript const person = { name: "Alice", age: 25 }; const { name, age } = person; console.log(name); // Alice console.log(age); // 25 ``` #### 7. 扩展运算符与剩余参数(Spread and Rest Operators) 扩展运算符(`...`)可用于展开数组或对象,而剩余参数则用于收集多余参数。 ```javascript const arr1 = [1, 2]; const arr2 = [...arr1, 3]; // [1, 2, 3] function sum(...args) { return args.reduce((acc, val) => acc + val, 0); } sum(1, 2, 3); // 6 ``` #### 8. Promise 对象 Promise 提供了一种更清晰的异步编程解决方案,替代传统的回调嵌套方式。 ```javascript fetch('https://api.example.com/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error)); ``` #### 9. Map 与 Set Map 是一种键值对集合,支持任意类型的键;Set 是一种只存储唯一值的集合。 ```javascript const map = new Map(); map.set('key', 'value'); console.log(map.get('key')); // value const set = new Set([1, 2, 2, 3]); console.log([...set]); // [1, 2, 3] ``` #### 10. 迭代器与生成器(Iterators and Generators) 迭代器提供了一种统一的遍历接口,生成器是一种返回迭代器的函数,使用 `function*` 定义。 ```javascript function* generator() { yield 1; yield 2; yield 3; } const gen = generator(); console.log(gen.next().value); // 1 console.log(gen.next().value); // 2 ``` #### 11. 数组的 `entries()`、`keys()`、`values()` 方法 这些方法分别返回索引、键、值的迭代器,适用于 `for...of` 循环。 ```javascript const arr = ['a', 'b', 'c']; for (const [index, value] of arr.entries()) { console.log(index, value); // 0 'a', 1 'b', 2 'c' [^3] } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值