【JavaScript】学习第十六天(ES5和ES6)

详解JavaScript中ES5和ES6的类、继承之间区别和联系 导读: 很多JavaScript的初学者(比如说我)在刚开始学习这门语言的时候,往往会对函数、对象、类、继承这些概念感到迷茫和疑惑,感觉他们彼此之间长得十分相似,这就导致很难分清他们什么时候该怎么用。特别是JavaScript中有了原型这个概念之后,就觉得更加混乱了。本篇文章我就从一个初学者的角度身份来去梳理一下这些概念和用法之间的区别与联系,力图能让同样是初学者的你很好的分清这些概念之间的用法。 ES5中类、对象和原型 ES5没有真正定义类的关键字,它通过函数首字母大写的方式来告诉别人这是一个类,.. 阅读详情

ES6语法

ES5和ES6

我们说的ES5和ES6其实就是在 js 语法的发展过程中的一个版本而已

ES5新增

一、数组的相关方法

1. 数组.forEach(function (item, index, arr) {})
2. 数组.map(function (item, index, arr) {})
3. 数组.filter(function (item, index, arr) {})
4. 数组.every(function (item, index, arr) {})
5. 数组.some(function (item, index, arr) {})

二、严格模式

1、使用"use strict"定义严格模式
2、严格模式可以定义在函数的最顶端或程序的最顶端
3、在严格模式下 在变量a 没有声明时 a = 10 ; 这样的赋值会报错,定义两个相同名称的函数参数也会报错
4、严格模式执行效率更高

call()、bind()、apply()改变this指向

先说一说this,每一个函数内部都有一个关键字是 this
函数内部的 this 只和函数的调用方式有关系,和函数的定义方式没有关系

1、全局定义的函数直接调用时,this=>window

function fn(){
  console.log(this);//window
}

fn();

2、对象内部的方法调用,this => 调用者(对象)

var obj = {
   name:"zhangsan",
   age:18,
   say:function(){
     consoloe.log(this);//方法内部值的是obj
   }
}

3、事件处理函数,this => 事件源

写法一:
odiv.onclick = function(){
   consoloe.log(this);//事件源odiv
}


写法二:
odiv.onclick = fn;
function fn(){
   consoloe.log(this);//事件源odiv
}

写法三:
<button onclick = "fn(this)">点我</button>

function fn(a){
   console.log(a);//a是实参this,指的是点击的button按钮
}

4、定时器内部的this指向winodw

setTimeOut(function(){
 consoloe.log(this);//事件源window
},10000)
setInterval(function(){
 consoloe.log(this);//事件源window
},10000)

5、自调用函数,this => window

(function(){
  consoloe.log(this);//window
})()

使用call()、bind()、apply()强行改变this指向

1、 call()

语法:

函数名.call(要改变的 this 指向,要给函数传递的参数1,要给函数传递的参数2, …)

注意:

会立即执行函数
第一个参数是你要改变的函数内部的 this 指向
第二个参数开始,依次是向函数传递参数
    function fn(x,y){
        console.log(x);
        console.log(y);
        console.log(this.age);
    }

    var obj = {
        age: '18'
    }

    fn(1,2); // 输出的结果是1 2 undefined 原因是fn函数是全局函数,全局函数的 this指向window

   
    需求:想将fn内部的this指向obj,这样的话,就可以使用this.age访问到18
     call:
      作用:改变this指向的
      语法:函数名.call(obj,参数1,参数2...)
      注意:1. 会调用函数
            2. fn中this指向改变成obj

      fn.call(obj,1,2);// 输出的结果是1 2 18

2、 apply()

语法:

函数名.apply(要改变的 this 指向,[要给函数传递的参数1, 要给函数传递的参数2, …])

注意:

会立即执行函数
第一个参数是你要改变的函数内部的 this 指向
第二个参数是一个 数组,数组里面的每一项依次是向函数传递的参数
    function fn(x,y){
        console.log(x);
        console.log(y);
        console.log(this.age);
    }
    var obj = {
        age: '18'
    }

    fn(1,2); // 输出的结果是1 2 undefined 原因是fn函数是全局函数,全局函数的 this指向window

   
    需求:想将fn内部的this指向obj,这样的话,就可以使用this.age访问到18
    apply:
    作用:改变this指向的
    语法:函数名.apply(obj,[参数1,参数2...])
    注意:1. 会调用函数
         2. fn中this指向改变成obj

    fn.apply(obj, [1, 2])

3、bind()
语法:

var newFn = 函数名.bind(要改变的 this 指向,要给函数传递的参数1,要给函数传递的参数2, …); newFn(传递参数)

返回值:

返回一个已经改变了 this 指向的函数

    function fn(x,y){
        console.log(x);
        console.log(y);
        console.log(this.age);
    }
    var obj = {
        age: '18'
    }

    fn(1,2); // 输出的结果是1 2 undefined 原因是fn函数是全局函数,全局函数的 this指向window

    bind():
    作用:改变this指向的
    语法:函数名.bind(obj,参数1,参数2...)
    注意
         1. 函数返回一个已经改变了this指向的函数
         2. fn中this指向改变成obj

    var newfn = fn.bind(obj, 1, 2)
    newfn();

ES6新增的内容

1、let和const关键字
 let用来声明变量,它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,类似于C,C++,JAVA局部变量的概念。

let/const和var的区别:

1. 预解析:var会进行预解析,let/const不会
2. 变量重名:var定义变量可以重名,let/const不允许在同一个作用域下,定义重名变量
3. 块级作用域:var没有块级作用域,let/const有
1. 预解析:var会进行预解析,let/const不会
var命令会发生"变量提升"现象,也就是预解析,即变量可以在声明之前使用,值为undefined。
这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。
// var 的情况
console.log(foo);// 输出undefined
var foo = 2;

// let 的情况
console.log(bar);// 报错   ReferenceError
let bar = 2;
也就意味着被let声明的变量,必须先定义在使用。

2. 变量重名:var定义变量可以重名,let/const不允许在同一个作用域下,定义重名变量
var a = 123;
var a = 123; //可以实现

let b = 123;
let b = 123; //Identifier 'a'has already been declared
3.块级作用域:var没有块级作用域,let/const有
{
   var a = 10;
   let b = 123;
}
console.log(a);
console.log(b)
上面代码在代码块之中,
分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量无法被打印,
var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。

再如:
for(let i=0; i<10; i++){
   document.write(i);
}
document.write(i);
//x 看不到
上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。

let和const的区别:

1.声明时赋值
2.值的修改

什么使const命令呢?实际上它也是一种声明常量的方式。
const命令用来声明常量,一旦声明,其值就不能改变。也就是只读变量。
const a=10;
a=100; //Assignment to constant variable.报错

基本用法:
a.声明常量
const PI = 3.1415;
console.log(PI) // 3.1415
PI = 3;         // TypeError: Assignment to constant variable.
b.常量必须初始化
const foo;      //报错Missing initializer in const declaration
c.块级作用域
{
    const foo = 123;
}
console.log(foo);上述代码依然报错,和let的效果是一样的。
d.声明不提升(const修饰的变量必须先定义后使用)
if (true) {
    console.log(MAX);// ReferenceError
    const MAX = 5;
}
e.const修饰的变量不可重复定义
简单来说,let和const的功能基本类似,只是let用来修饰变量,const用来修饰常量。
无论是let还是const,这并不算新的语法,其实这些内容甚至是其他高级语言"玩剩下的",
这种改动只是将JS脚本语言更加标准化了,可见js的语法也更加的后台化。

2、字符串新增

字符串新增方法:

1. str.includes(元素):    在字符串中判断是否包含某个元素,返回的是布尔值
2. str.startsWith(字符串)    判断字符串是否以某个字符串开始,返回布尔值
3. str.endsWith(字符串)    判断字符串是否以某个字符串开始,返回布尔值
4. str.repeat(n) :      让字符串重复n次

3、箭头函数

3.1 ES6 语法中定义函数的一种方式

3.2 函数定义的方式:

3.2.1 :声明式 function fn() {}
3.2.2 :赋值式 var fn = function () {}
3.2.3 :箭头函数(赋值式的一种简化写法) var fn = () => {}

3.3 箭头函数的特点:

3.3.1 :当你的形参只有一个的时候, 可以不写小括号

   
    var fn = function(){
        console.log(1);
    }
    fn();
    简写成:
    var fn = ()=>{
        console.log(1);
    }
    fn();

3.3.2: 当你的函数体只有一行代码时, 可以省略大括号不写(如果这一行代码有return,return可以不写)

   
    var fn = function(a,b){
       console.log(a+b)
    }
    fn();
    简写成:
    var fn = (a,b)=>console.log(1); 
    fn();


    var fn = function(a,b){
      return a+b;
    }
    
    简写成:
    var fn = (a,b)=>a+b;

3.3.3 箭头函数内没有 arguments

3.3.4 箭头函数内没有 this(简单理解就是:this指代的是该箭头函数的上下文)

odiv.onclick = ()=>{
   console.log(this)
}

4、解构赋值

4.1 解构赋值 快速从对象或者数组中获取一些数据,分为解构数组和解构对象

解构数组 语法: var [ 变量1, 变量2, 变量3, ... ] = 数组
解构对象 语法: var { 键名1, 键名2, 键名3, ... } = 对象
解构对象的时候起一个别名

var arr = [12,4,3,23,45,32,4];

var [a,b,c,d,e,f,g] =[12,4,3,23,45,32,4] 
console.log(a,b,c,d,e,f,g);


var obj = {name:'张三',age:18,sex:"男"}
var {name,age,sex} = obj;
console.log(name,age,sex);

解构赋值的用途:
用途一:解构赋值可以让一个函数返回多个值使用 []
function fun(){
    return [1,2,3];
}
//let a = fun();let [x,y,z] = fun();
//console.log(a);
console.log(x,y,z);


案例:
返回1~100能被3整除的数之和,以及这样的数有多少个。
function is3(){
    let sum = 0;
    let count = 0;
    for(let i=1; i<=100; i++){
        if(i%3==0){
            sum += i;
          count++;
        }
    }
    return [sum,count];
}
let [sum,count] = is3();
console.log(sum,count);

用途二:
解构赋值可以实现两个数的交换
let a=10,b=20;
[a,b] = [b,a];
console.log(a,b);

5、默认参数

5.1 概念:
给函数的形参设置一个默认值, 当你没有传递实参的时候, 默认参数会生效

语法:

function fn(a = 10, b = 20) { }  参数a的默认值是10
// 将函数的形参位置设置一个默认参数,该默认参数在没有传递实参时生效

function fn(a=10,b=20){
    console.log(a,b);
}
 
fn();

6、扩展运算符

6.1 概念:
展开合并运算符,主要是操作 数组 和 对象 的运算符号(…)
**作用:**展开、合并
**展开:**可以展开对象或者展开数组

var arr = [21, 34, 54, 2, 5]
console.log(arr);//(5) [21, 34, 54, 2, 5]
console.log(...arr);//把数组的元素一个一个的展开开来

// 合并
function fun(...arr){
    console.log(arr);//将传递的形参合并成一个数组
}

fun(1,2,3,4,5)

7、Set和map集合

Set:数据结构,类似于数组,但是它的值不会重复(自动去重)

Set的属性和方法

属性: size获取元素的长度

方法: add(ele) 向Set中添加元素

delete(ele) :删除
has(ele) :是否包含某个元素,返回布尔值
clear() :清空set集合

Set集合特点自动去重实现数组去重 :
let arr =[2,3,4,2,3,4,2,3,4];
let set = new Set(arr);
let arr = Array.from(set);//Number("123");
console.log(arr);

map也是一种数据结构,类似于对象

属性: size获取元素的长度

方法:

设置键值对 set(key,value)
获取       get(key)
删除       delete(key)
清空       clear()
包含       has(key)    返回布尔值
<script>
    // map的遍历:
    let map = new Map();
    map.set("1", "校长"); 
    map.set("2", "小明"); 
    map.set("3", "老王");//map.delete("3");map.clear();
    console.log(map.has("0"));
    console.log(map.get("2"));
    console.log(map);
    for (let t of map) {
        console.log(t[0] + t[1]); //0代表Key 1代表value
    }
map的遍历:
for(let t of map){
    console.log(t[0] + t[1]); //0代表Key 1代表value
}
</script>

7、for…of循环,

  for..of和for..in的小小总结:
    for..in:ES5提出  for..ofES6
    数组:for.in循环可以遍历数组,遍历的是下标(字符串类型),for.of可以遍历数组,遍历的是值
    对象:for..in循环遍历对象,for..of不可以遍历对象
    map集合:for..of可以遍历map集合,for..in不能遍历map集合
JS进阶学习之ES5-ES6 ES5补充拓展 20200429 ECMA介绍 ECMA (欧洲计算机制造商协会) 这个组织的目标是评估、开发和认可计算机标准 ECMA 发布 262 号标准文件(ECMA-262),规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript ECMAScript5简介 ECMAScript5, 就是ECMAScript的第五代标准, 也加ES5, 或者叫ESMAScrip... 阅读详情

相关推荐

JS用ES6和ES5分别实现:8字节长整数和字节数组的互转

JavaScript作为Web开发的通用语言,在物联网边缘计算、Node.js服务端等场景的应用日益广泛。但由于其动态类型和数值精度的特殊性,处理二进制数据时面临独特挑战: 精度局限:JS的Number类型采用IEEE 754双精度浮点格式,仅能安全表示±253±253范围内的整数,超出范围将丢失精度 字节序控制:现代CPU架构多采用小端序,而网络协议通常要求大端序,需要显式控制字节排列 类型差异:Java/C#等语言的byte类型为有符号数(-128 至127),而JS的Type

在技术的广袤天地里,本博客如精准罗盘。剖析前沿科技,深掘代码奥秘,以精炼笔触,带您穿越复杂技术迷宫,速达知识彼岸。 2240

ES6语法

dsaES5和ES6: 我们说的ES5和ES6其实就是在 js 语法的发展过程中的一个版本而已 ES5新增: 一、数组的相关方法: 1. 数组.forEach(function (item, index, arr) {}) 2. 数组.map(function (item, index, arr) {}) 3. 数组.filter(function (item, index, arr) {}) 4. 数组.every(function (item, index, arr...

APPTX4869的博客 894

TPL5010硬件看门狗电路

在做一些采集频率很低的产品的时候,会考虑电池供电,比如表、电气表等,为了控制功耗,往往会在设备不需要工作的时候让它进入低功耗模式。为了设备的稳定性,避免死机后无法恢复,必须配置看门狗,一般的看门狗芯片,喂狗间隔时间是几秒钟。这样在喂狗和低功耗之间就产生了一个矛盾,频繁的喂狗就需要频繁的醒过来,这样功耗就很难做到很低。这颗看门狗芯片,特别适合上面的应用。2小时的间隔意味着主控芯片每2小时醒过来喂狗一次即可,而在2.5V供电的情况下,功耗仅仅35nA,几乎可以忽略不计。

zxm8513优快云博客 3308

JavaScript基础练习题(三)

一、单选题(共30题,每题2分) 得分:2.0分 1. 以下关于Javascript中事件的描述中,不正确的是 A click——鼠标单击事件 B focus——获取焦点事件 C mouseover——鼠标指针移动到事件源对象上时触发的事件 D change——选择字段时触发的事件 正确答案: D 解析: change事件为input内容发生改变时触发的事件。 根据input的type属性值不同,...

qqatt的博客 2万+

【实验】Linux下完全卸载oracle单实例(亲身体验完整版)

停止oracle数据库服务 停止监听 卸载数据库实例 因为自己懒得再弄dbca图形化界面啥的,直接采用dbca静默删除数据库实例,命令如下 dbca -silent -deleteDatabase -sourcedb orclhq -sid orcl -sysDBAUserName orcl -sysDBAPassword zte [oracle@slave ~]$ dbca -silent ...

萝卜吃鱼914的博客 1945

封神台靶场,为了小芳,冲之——cookie注入

第二个靶场 打开网站 找一下注入点 一般在新闻这种里面点开看看 先判断是否存在注入 有waf 尝试了很多方法绕过都没成功,/and/,aandnd,AnD等一系列都没绕过去,乌鸡鲅鱼 删掉id=169 发现 然后判断cookie注入 在搜索框输入 Javascript:alert(document.cookie=”id=”+escape(‘169’)); 然后弹窗了(其中 “id=” 取决URL中的id= escape中的数值也是URL中id=的值)返回刚刚的页面,把ID删除后一样能正常显示。说明服务器能

Wubuqing的博客 653

JavaScript练习题四

一、单选题(共30题,每题2分) 1.什么属性用于获取 HTML 文件的根节点 A documentElement B rootElement C documentNode D documentRoot 正确答案: A 解析: html文件的根节点为html,获取方式为document.documentElement 2.关于正则表达式声明6位数字的邮编,以下代码正确的是 A var reg = /\d6/; B var reg = \d{6}\;.

BUG_Jia 3736

2024年上市公司ESG评级全解析:六大权威数据源横向对比与应用指南

本文深度解析2024年国内主流ESG评级数据源,包括华证、商道融绿、Wind、富时罗素和彭博,横向对比其覆盖范围、评分逻辑与应用侧重点。文章提供实战指南,帮助投资者与企业根据投资决策、风险管理和学术研究等不同场景,精准选择并有效应用ESG数据,实现从概念到实用分析工具的转变。

weixin_29229055的博客 312

ES5/6

一,ES5/6 1、四大特性:Object.defineProperties(obj,{"属性名":{"value":值,"writable":true,"enumerable":true,"configurable":true},...}) 2、三个级别:防扩展:防添加 Object.preventExtensions(obj); 密封:防添加、删除 Object.seal(obj); 冻结:防添加、删除、修改 Object.freeze(obj);...

iAlleni的博客 244

DexProtector内存校验绕过与DEX提取实战

DEX文件是Android应用的核心执行单元,其动态加载与运行时保护机制直接关系到App安全强度。DexProtector作为主流商业加固方案,摒弃传统文件级防护,转而依托ART虚拟机下的匿名内存映射段(anonymous mmap)构建多维校验体系——涵盖字节码完整性校验、内存页属性检测及运行时环境感知。其技术价值在于将防护锚点从静态APK迁移至动态内存态,大幅提升逆向门槛。典型应用场景包括金融类App的防篡改加固、游戏客户端的反外挂保护,以及政企应用的合规性安全增强。本文聚焦DexProtector v

weixin_30315435的博客 714

一层一责,一聚合一包:DDD分层架构下的微服务代码模型、三重边界与服务数据协作

领域模型画得再清楚,落不进代码也是空谈。本文以一个可运行的客户中心微服务为线索,先对比整洁架构、六边形架构与DDD分层架构,指出三者共同守护的那条隔离核心业务的红线;再把DDD分层落成四个一级目录、以聚合为单位分包、一个聚合一个仓储的代码模型,拆解实体、聚合根、值对象、领域事件、领域服务与仓储的设计要点;随后厘清逻辑、物理、代码三重边界,并用检查器实测:干净代码零越界,拆出积分聚合时领域代码无需改动;注入九处越界后,必须先重构才能拆分。最后梳理服务调用三场景与PO、DO、DTO、VO的协作。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 177万+

的setinterval函数_ES6 极简教程 <6> 函数扩展

1. 函数参数默认值用法如下{ function test(x, y = 'world') { console.log('默认值', x, y); } test('hello'); // hello world test('hello', 'TH'); // hello TH } 2. rest 参数在不确定参数个数的时候,把输入的参...

weixin_32868705的博客 818

UG NX二次开发(C++)-库缺少需要的入口点的原因与解决方案

在UG NX二次开发过程中,有时会遇到形形色色的bug,比如有个读者其采用UG NX二次开发(C++)时,遇到“库缺少需要的入口点”这个问题,看了一下他发给我的源代码,感觉有必要讲一下UG NX二次开发(C++)遇到此类问题的可能情况与解决方法。自然,这是博主的经验之谈,有不足之处还请在评论区讨论。

GimiGimmy 2201

谈谈ES5和ES6的区别

ES6 主要是为了解决 ES5 的先天不足,目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。ES6 是继 ES5 之后的一次改进,相对于 ES5 更加简洁,提高了开发效率

青春木鱼的博客 8961

【数据集】中国各类水文专业常用数据集合集

对中国各类水文专业常用数据集进行整理并总结

WW、forever的博客 9303

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ES5 vs ES6:JavaScript 演进之路

ES5 vs ES6:JavaScript 演进之路

qq_20236937的博客 1803

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【JS笔记】JavaScript语法快速上手— ES5和ES6(五)

【JS笔记】JavaScript语法 快速上手— ES5和ES6(五)

leo的博客 991

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

带你认识Javascript、ES5和ES6的介绍和区别

** es5老版本 ** var 声明语句声明一个变量,并可选地将其初始化为一个值。 var a=100; alert(a); ** es6新版本 ** let 语句声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。 let b=12; alert(b); ...

weixin_53000915的博客 2817

JS中ES5和ES6中set和get方法

描述: JS中ES5和ES6中set和get方法   ES5 情况一:对象已经创建,需要给上面添加setget方法 /* * 如果使用defineProperty定义setget,默认configurable: false,enumerable: false * * * */ var o...

进击的葱 1万+

ES6与JavaScript之间的关系

js与node.js JS是由ES(ECMAScript)、DOM(浏览器文档对象)、BOM(浏览器对象模型)组成。 其中Node.Js就只有ES,目前浏览器比较流行的版本就是ES6(ES2015),老浏览器的版本基本上都是ES5。所以alert和document不能在Node运行(因为Node没有dom和bom)。 ECMAScript 6简介 ECMAScript 6.0(以下简称ES6)是J...

qq_43542074的博客 5601

ES6与JavaScript学习总结

菜鸟的ES6与JavaScript学习总结说明一、概述(1)什么是ES6(2)ES6和JavaScript的关系二、语法(1)变量(2)箭头函数(3)解构赋值(4)数组操作(5)字符串操作(6)面向对象 说明 更新时间:2020/7/14 17:32,更新了整体内容 记录JavaScript与ES6的关系以及ES6的语法,本文会持续更新,不断地扩充 本文仅为记录学习轨迹,如有侵权,联系删除 一、概述 首先需要搞清楚如下几个问题 (1)什么是ES6 ES全称ECMAScript,ES6是它的第六个版本(以下简

最强菜鸟 7700

从脚本到工程化:ES5 与 ES6 重塑 JavaScript 的十年

JavaScript经历了从ES5到ES6的重大变革:ES5(2009)为JS建立了基本规范,引入严格模式、数组方法、JSON支持等基础功能,使其从松散脚本迈向工程化雏形;而ES6(2015)则带来let/const、模块化、箭头函数等现代化特性,彻底解决了作用域、异步编程等核心问题。两个版本共同塑造了现代JavaScript——ES5奠定基础规范,ES6提供工程化能力,使JS从简单的网页脚本进化为支持大型应用开发的成熟语言。如今ES6已成为前端开发标配,但其核心思想仍建立在ES5的基础之上。

qq_43548436的博客 1171

Javascript的es5和es6

es5和es6的关键字使用,包括继承方式不同的优点和缺点

2202_75802608的博客 2238

JavaScript ES5 vs ES6 核心特性对比

ES6(ECMAScript 2015)引入了大量现代化语法和新特性,使 JavaScript 更加简洁、易读、易维护。以下是 ES5 与 ES6 的核心特性详细对比。特性ES5ES6变量声明var(函数作用域)letconst(块级作用域)函数function声明箭头函数、默认参数、剩余参数字符串拼接、转义模板字符串、插值、多行对象完整写法属性简写、方法简写、计算属性数组mapfilterreducefindincludesArray.from、扩展运算符异步回调函数Promise(后续)

csdn_silent的博客 1350

JavaScript_ES5和ES6

文章目录ES5和ES6JSON 方法JSON的两个方法JSON.parseJSON.stringifythis 关键字强行改变 this 指向的方法callapplybindES6新增的内容let 和 const 关键字箭头函数箭头函数的特殊性函数传递参数的时候的默认值解构赋值解构对象解构数组注意模版字符串展开运算符 ES5和ES6 我们所说的 ES5 和 ES6 其实就是在 js 语法的发展过程中的一个版本而已 ECMAScript 就是 js 的语法 以前的版本没有某些功能 在 ES5 这个版本的时

一只正在狂飙的肥兔 1703

JavaScript、ES5和ES6的介绍和区别

JavaScript简介 JavaScript一种动态类型、弱类型、基于原型的客户端脚本语言,用来给HTML网页增加动态功能。 JavaScript由三部分组成: ECMAScript(核心)+DOM(文档对象模型)+BOM(浏览器对象模型) ECMAScript作为核心,规定了语言的组成部分:语法、类型、语句、关键字、保留字、操作...

vivi_Tong的博客 1205
上一篇: 【JavaScript】学习第十五天(正则表达式)
下一篇: 【JavaScript】第十八天(面向对象)
W菜菜
博客等级 码龄5年 5粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值