ES6新语法

0.let const

局部变量,不允许重复声明.const只读常量,一旦声明就无法改变.


1. for…of

for … in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。for … of循环则完全修复了这些问题,它只循环集合本身的元素

var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x in a) {
    alert(x); // '0', '1', '2', 'name'
}
var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x of a) {
    alert(x); // 'A', 'B', 'C'
}

当然也可以直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数。以Array为例:

ar a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {
    // element: 指向当前元素的值
    // index: 指向当前索引
    // array: 指向Array对象本身
    alert(element);
});

2.新增字符串遍历的三个方法

es6新增includes:返回布尔值,表示是否找到字符串。startsWith:返回布尔值,表示字符串是否在源字符串的头部位置。endsWith:返回布尔值,表示参数字符串是否在源字符串尾部。


3.字符串操作新增repeat方法

返回一个新字符串,表示将源字符串重复多少次.'x'.repeat(3)和python里'x'*3同样作用,都返回字符串'xxx'


4.模板字符串

字符串操作里面最麻烦的莫过于拼接字符串,为解决这个问题ec6提供了模板字符串解决方案

var name='zhangyiqiu'
var str=`hello,${name}!`//hello,zhangyiqiu!
### 介绍ES6语法特性 ES6(ECMAScript 2015)引入了多种特性,极大地增强了JavaScript的表达能力和开发效率。以下是一些重要的语法特性及其示例。 #### 块级作用域变量声明 ES6引入了`let`和`const`关键字,用于定义块级作用域的变量和常量。与传统的`var`不同,`let`和`const`不会提升到其作用域的顶部,并且仅在其声明的代码块内有效。 ```javascript if (true) { let blockScopedVar = "I am block-scoped."; const constantVar = "I am constant."; } console.log(blockScopedVar); // 抛出错误: blockScopedVar is not defined ``` #### 箭头函数 箭头函数提供了一种更加简洁的函数书写方式,并且不绑定自己的`this`值,它继承自外围作用域。 ```javascript const add = (a, b) => a + b; console.log(add(2, 3)); // 输出5 ``` #### 模板字符串 模板字符串使用反引号(`)来包围字符串,并允许在字符串中嵌入表达式。 ```javascript const name = "Alice"; const greeting = `Hello, ${name}!`; console.log(greeting); // 输出"Hello, Alice!" ``` #### 默认参数值 函数参数可以具有默认值,这使得在调用函数时如果未提供参数,则使用默认值。 ```javascript function multiply(a, b = 1) { return a * b; } console.log(multiply(5)); // 输出5 ``` #### 解构赋值 解构赋值允许从数组或对象中提取数据并赋值给变量。 ```javascript const [first, second] = [1, 2]; console.log(first, second); // 输出1 2 const {name: personName, age: personAge} = {name: "Bob", age: 30}; console.log(personName, personAge); // 输出Bob 30 ``` #### 类(Class) ES6引入了类的概念,为基于类的面向对象编程提供了更清晰的语法。 ```javascript class Rectangle { constructor(height, width) { this.height = height; this.width = width; } } const square = new Rectangle(5, 5); console.log(square); // 输出Rectangle { height: 5, width: 5 } ``` #### 私有属性 通过在属性名前加上井号(#),可以在类中定义私有属性,这些属性只能在类的内部访问[^4]。 ```javascript class App { #color = "红色"; showColor() { console.log("这是~~~" + this.#color); } } const app = new App(); app.showColor(); // 输出"这是~~~红色" ``` #### 模块化 ES6模块化语法支持将代码分割成多个文件,每个文件作为一个模块,可以导出功能供其他模块导入使用。 ```javascript // math.js export function add(a, b) { return a + b; } // main.js import { add } from './math.js'; console.log(add(2, 3)); // 输出5 ``` #### Array.of() Array.of()方法创建一个数组,其参数直接成为数组元素。 ```javascript const newArr = Array.of('A','B','C'); console.log(newArr); // 输出["A", "B", "C"] ``` 以上是ES6的一些主要语法特性,它们不仅提高了代码的可读性和维护性,而且也使JavaScript能够更好地适应大型应用的开发需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值