ES6优缺点

看了一篇ES6语法示例,觉得还可以

here

ES6是新一版的标准,对语言有扩展,添加了新的属性与方法。这一标准虽然现在还要用babel来做浏览器支持(将ES6编译成ES5才能被浏览器支持),但是未来浏览器会逐渐对其有原生的支持。到时候JS语法会发生更新,我们可以使用更简单的方式编写代码,使得编程更容易。

语法糖:糖衣语法,并不改变语言的功能,只是使编程更简单。比如C语言里用a[i]表示*(a+i)

ES6就是用了较多语法糖,这也就意味着,ES6的一些新特性并不是真的“新”,只是试图简化语法而已。

下面是ES6的一些新特性/优点:

1、类的封装

复制代码
class Project {
  constructor(name) { //构造方法
    this.name = name;
  }
 
  start() { //成员方法,可以不用function声明
    return "Project " + this.name + " starting";
  }
}
 
var project = new Project("Journal");
project.start(); // "Project Journal starting"
复制代码

这个类中定义的所有方法都被加入这个类的原型prototype中

2、继承

现有的JS语法中,继承是通过prototype实现的

ES6中:

复制代码
class WebProject extends Project {
  constructor(name, technologies) {
    super(name);
    this.technologies = technologies;
  }
 
  info() {
    return this.name + " uses " + arrayToString(this.technology);
  }
}
 
function arrayToString(param) {
  // ... some implementation
}
 
var webJournal = new WebProject("FrontEnd Journal", "javascript");
webJournal.start(); // "FrontEnd Journal starting"
webJournal.info(); // "FrontEnd Journal uses javascript"
复制代码

3、模块化module

在js中,为了实现模块化编程,可以使用插件工具seajs等,seajs符合CMD规范,CMD规范是在commonJS(服务端模块化规范)基础上的

ES6中:

复制代码
// point.js
module "point" {
 export class Point {
 constructor (x, y) {
  public x = x;
  public y = y;
 }
 }
}
  
// myapp.js
//声明引用的模块
module point from "/point.js";
//这里可以看出,尽管声明了引用的模块,还是可以通过指定需要的部分进行导入
import Point from "point";
  
var origin = new Point(0, 0);
console.log(origin);
复制代码

4、let和const

for (let i=0;i<2;i++)console.log(i);//输出: 0,1
console.log(i);//输出:undefined,严格模式下会报错

 

用let声明的变量只在代码块中可见

var是 函数作用域,而let是 块级作用域

 

const是创建常量,一旦被创建,值就不可改变

 

还有一些其他特性

一篇很好的ES6介绍

 

很多人说ES6很好用,都会觉得“早这样该多好”

它的缺点就是 浏览器还没有完全支持

posted @   tuna-  阅读(2994)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示