JavaScript ES6部分特性

时间:2026-06-05 15:41:37 来源:幸福记忆 作者:远方 阅读:111

一、ECMAScript与javascript关系

ECMAScript是一种规格,javascript是对规格的一种实现。

ES5  2011
ES6  2015

二、let与const

let定义的变量不具有提升功能。
const关键是用于定义常量。

三、解构

//案例一:es6  数组解构
let [a,b,c] = [1,5,9];
alert(a);

//案例二:统一归类
let [group,...users]=['开发组', '张三', '李四', '王五']

//默认值
let [a,b='def'] = ['name',undefined];
alert(b);   //def

//对象解构
var { foo, bar } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
bar // "bbb"

//函数参数解构
function sum([a,b]) {
return a+b;
}
sum([2,4]);

四、字符串扩展

1、at()

es5中,charAt()方法查找字符时,字符的范围\u0000~\uffff。 一旦
超出范围后,就会出错。在es6中可以使用at()。

2、includes(), startsWith(), endsWith()

includes()  #包含
startsWith()    #匹配开始
endsWith()  #匹配结束

3、repeat()

字符串重复
'a'.repeat(3);  #字符a重复3次

4、padStart(),padEnd()

字符串补全, es7
//快递单,手机号
let phone = '5427';
alert(phone.padStart(8, '*'));  //****5427

5、模板字符串

在js的多行字符串中,引入变量。es5中需要拼接实现。
模板字符串可以使用反引号将多行字符串引起来,内部直接
使用${变量名} 拼接字符。
let [title, grf] = ['文章标题', '文章段落'];
let template = `<div>
 <h1>${title}</h1>
 <p>${grf}</p>
</div>`;

说明:
   ${} 表示引用符

五、class

class Person {
//构造器
constructor(name, age) {
 this._name = name;
 this._age = age;
}

getName() {
 return this._name;
}

printInfo() {
 document.write(`姓名:${this._name}; 年龄:${this._age}`);
}
}

let p1 = new Person('张三', 25);
p1.printInfo();

六、module

js:
export function test() {
alert("hello world");
}
let userName = '张三';
export default userName
说明:
   - export 表示导出,在一个js文件中允许出现多个
   - default 表示默认导出,一个js文件中只允许出现一个,一旦用
       default修饰后,后面的名称没有意义,在导入时,可以设置别名。


html:
<script type="module">
   import name,{test} from 'js路径'
   test();
</script>
说明:
   - import...from 表示从哪个js module中导入
   - {}中表示要导入的具体模块(没有被default修饰的)
   - name相当于默认的别名

七、箭头函数

function(){}    //old

(参数列表)=>{函数体}   //new