ES5和ES6区别浅析

ES5和ES6区别浅析前言 JavaScript 一种动态类型 弱类型 基于原型的客户端脚本语言 用来给 HTML 网页增加动态功能 具体概念不做过多的说明 这里说一下 JavaScript 的主要组成 组成一 ECMAScript 核心 ECMAScript 是 JS 的核心 它规定了语言的组成部分 语法 类型 语句 关键字 保留字 操作符 对象

前言

JavaScript一种动态类型、弱类型、基于原型的客户端脚本语言,用来给HTML网页增加动态功能,具体概念不做过多的说明。这里说一下JavaScript的主要组成:

【组成一】 ECMAScript

【组成二】 DOM

【组成三】 BOM

支持可以访问和操作浏览器窗口的浏览器对象模型,可以控制浏览器显示的页面以外的部分。


ES5

ES5是ECMAScript第五个版本,相对于之前的版本有很多的改进,而且作用更加简便。其增加特性如下:

  • strict模式

    严格模式,限制一些用法,’use strict’;

  • Array增加方法

增加了every、some 、forEach、filter 、indexOf、lastIndexOf、isArray、map、reduce、reduceRight方法

  • Objec增加方法

ES6

ECMAScript6在向下兼容的基础上提供大量新特性,ES6特性如下:

1.块级作用域 关键字let, 常量const

2.对象字面量的属性赋值简写(property value shorthand)

var obj = { // __proto__ __proto__: theProtoObj, // Shorthand forhandler: handler’ handler, // Method definitions toString() { // Super calls return "d " + super.toString(); }, // Computed (dynamic) property names [ 'prop_' + (() => 42)() ]: 42 };

3.字符串模板 Template strings

var name = "Bob", time = "today"; `Hello ${ 
    name}, how are you ${ 
    time}?`

4.Iterators(迭代器)+ for..of

for (var n of ['a','b','c']) { console.log(n); }

5.Modules

// lib/math.js export function sum(x, y) { 
      return x + y; } export var pi = 3.; // app.js import * as math from "lib/math"; alert("2π = " + math.sum(math.pi, math.pi)); // otherApp.js import {sum, pi} from "lib/math"; alert("2π = " + sum(pi, pi)); Module Loaders: // Dynamic loading – ‘System’ is default loader System.import('lib/math').then(function(m) { 
      alert("2π = " + m.sum(m.pi, m.pi)); }); // Directly manipulate module cache System.get('jquery'); System.set('jquery', Module({$: $})); // WARNING: not yet finalized

6.Proxies

使用代理(Proxy)监听对象的操作,然后可以做一些相应事情。

var target = {}; var handler = { get: function (receiver, name) { 
      return `Hello, ${name}!`; } }; var p = new Proxy(target, handler); p.world === 'Hello, world!';

7.Map + Set + WeakMap + WeakSet

四种集合类型,WeakMap、WeakSet作为属性键的对象如果没有别的变量在引用它们,则会被回收释放掉

// Sets var s = new Set(); s.add("hello").add("goodbye").add("hello"); s.size === 2; s.has("hello") === true; // Maps var m = new Map(); m.set("hello", 42); m.set(s, 34); m.get(s) == 34; //WeakMap var wm = new WeakMap(); wm.set(s, { extra: 42 }); wm.size === undefined // Weak Sets var ws = new WeakSet(); ws.add({ data: 42 });//Because the added object has no other references, it will not be held in the set

8.箭头函数 Arrow functions

render:h=>h(App) //函数等同于下面的函数 render:h=>{ return h(App); }

总结

ES6新特性不能一一列举,大家可以去JS官网详细了解,希望能给大家带来帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226079.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午7:53
下一篇 2026年3月17日 上午7:53


相关推荐

  • CDH6.1.0环境搭建 完成后 登录admin账户失败

    CDH6.1.0环境搭建 完成后 登录admin账户失败CDH环境搭建完成,启动cloudera-manager-server成功,下面是启动日志[root@node-1~]#sudosystemctlstartcloudera-scm-server[root@node-1~]#sudotail-f/var/log/cloudera-scm-server/cloudera-scm-server.log2019-02-14…

    2022年5月12日
    42
  • 颜色空间(RGB、YUV、YIQ、CMY)

    颜色空间(RGB、YUV、YIQ、CMY)人类获取信息的 70 80 来源于视觉 nbsp nbsp nbsp 多媒体计算机的图像处理和视频效应的过程 首先必须把连续的图像函数 f x y 进行空间和幅值上的离散化处理 然后再将离散化的数字信息还原为连续的图像 将空间坐标离散化与图像颜色离散化的两者结合叫做图像的数字化 离散化的结果称为数字图像 1 采样采样 Perceptionme 将空间连续坐标 x y 函

    2026年3月17日
    2
  • 新发的日常小技巧——Sublime插件安装教程(例:lua开发环境插件安装)

    新发的日常小技巧——Sublime插件安装教程(例:lua开发环境插件安装)文章目录一、前言二、关于PackageControl三、安装PackageControl1、办法1:通过命令行安装(需联网)2、办法2:直接拷贝插件包文件到InstalledPackages目录四、通过PackageControl安装插件(需联网)五、无网络环境下安装插件六、lua开发环境插件安装一、前言Sublime具有良好的扩展能力,具有非常多好用的扩展插件,本文我教大家如何给Sublime安装插件。二、关于PackageControl我们要给Sublime安装插件,就需要先安装Pac

    2022年6月24日
    41
  • oracle数据库建表语句大全_sql server建表语句

    oracle数据库建表语句大全_sql server建表语句Oracle数据库建表语句#1.建表语句createtableCUST_INFO(CUST_IDVARCHAR(36)notnull,CUST_TYPEVARCHAR(50),CUST_NAMEVARCHAR(200),ID_NO…

    2025年10月8日
    3
  • 超链接样式&图片样式

    超链接样式&图片样式超链接样式&图片样式超链接样式1、去除超链接下划线text-decoration:none2、定义超链接伪类a:link{CSS样式}a:visited{CSS样式}a:hover{CSS样式}a:actived{CSS样式}属性说明a:link定义a元素未访问时的样式a:visited定义a元素访问后的样式a:hover定义鼠标经过显示的样式a:active定义鼠标单击激活时的样式定义这四个伪类,必须按照“link、vi

    2022年7月19日
    16
  • 通过SOCKS代理渗透整个内网

    通过SOCKS代理渗透整个内网通过SOCKS代理渗透整个内网1.背景经过前期的渗透工作,我们现在已经成功找到了web站点的漏洞,并且获得了一个普通的webshell,现在准备用菜刀去连接它。注意:本次环境在本地搭建,假设现在一无所知,这样更加真实。2.对web服务器提权2.1获取漏洞信息获取到webshell后使用菜刀连接,查看权限是apache,系统是redhat6.5。上传linux.sh到…

    2022年6月17日
    290

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号