ES6(函数新增特性)

ES6(函数新增特性)

1.函数参数默认值

没有 y 时,默认就是world

有 y 时,输出值即可

(错误)

(C有默认值,正确)

默认值后面不能再有没有默认值的变量

 2.作用域

y 取其前面的 x ;而不是 x = test;

 

 

x 不在 y 的前面

 3.test 参数

将输入参数(离散值)转化成数组

 4.扩展运算符

 将数组转化成离散值

 

5.箭头函数

arrow为函数名,第一个 = 后为参数, =>后为返回值,

 

 第一个参数可为空。

 6.尾调用

(条件:函数的最后一句话是不是函数;用来提升性能,推荐在不断嵌套的情况下使用)

### 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、付费专栏及课程。

余额充值