前端规范ES_5_6_7,详细笔记

es7 语法学习 #创建索引 PUT /employee { "settings": { "number_of_shards": 1, "number_of_replicas": 1 } } #分布式节点建设(更新replicas状态) PUT /employee/_settings { "settings": { "number_of_replicas": 1 } } ... 阅读详情

ES5

严格模式

  • 对JavaScript语法的要求更为严格,消除JavaScript语法的一些不合理,不规范的语法
  • 全局或函数第一条语句使用 ‘use strict’; 标注
  • 严格模式规定:
    • 必须使用var关键字声明变量
    • 禁止自定义函数中this关键字指向windows
    • 创建eval作用域
    • 对象名不能重复

json对象扩展

  • json.stringify(obj/arr); 将JavaScript对象或数组转换为json对象或数组
  • json.parse(json); json对象或数组转换为js对象或数组

Object扩展

  • Object.create()

ES6

let & const关键字

  • let
    • 和var相同,用于声明变量,逐渐会取代var
    • 在块作用域内有效
    • 变量名不能重复
    • 不进行预处理,不存在提升
  • const
    • 用于定义常量
    • 值一经定义,便无法修改,用来保存在程序运行过程中其值不会改变的量
    • 其它特点与let相同

解构赋值

  • 定义
    • 用来解构对象或数组,将里面的数据提取出来
    • 然后赋值给多个变量
  • 解构对象
    • let {name,age}={name:‘xiaom’,age:14};
    • name的值为’xiaom’ ,age的值为14
    • 需要注意,这是我们最常用的一种解构形式,但是解构对象时,变量名必须和对象中函数名一致,才能取到值,否则会对应不上
    • 当然,如果你只需要age就可以写
      • obj={name:‘xiaom’,age:14};
      • let {age}=obj;这样就只取出了age的值赋值给变量age
  • 解构数组
    • let[a,b]=[‘xiaom’,14];
    • a的值为数组下标为0的元素’xiaom’ ,b的值为数组下标为1的元素14
    • 数组通过下标索引取值,与变量名无关,可用逗号占位
    • 例如:let[,a]=[‘xiaom’,14];
    • a的值为下标为1的元素14,而下标为0的元素被逗号滤过了

模板字符串

  • 作用:
    • 简化字符串拼接
  • 使用方法
    • 用两个“ ` ”符号将模板字符扩起来,注意这个符号不是单引号,而是tab键上面的键
      在这里插入图片描述
    • 可变字符串用${XXX}的形式括起来
  • 举例:
    • let {name,age}={name:“小明”,age:14}
    • let str= `我的名字叫${name},我今年 ${age}岁了 ``
    • 输出结果为:我的名字叫小明,我今年14岁了

对象的简写

  • 作用:
    • 简化定义对象的代码
    • 同名的属性可以进行简化,例如(没有简化时):
      • let name=“小芳”;
      • obj={ name:name}; //这里就将name变量值赋值给了obj对象的name属性
    • ES6中简化后可以这样写
      • obj={name}; //同样将name变量的值赋值给了obj对象的name属性
    • 定义函数可以简化省略function关键字,例如(没有简化时):
      • let={
        name,
        getName: function(){
        return this.name;
        }
        }
    • 简化后:
      • let={
        name,
        getName(){//去掉了:function关键字
        return this.name;
        }
        }

箭头函数(lambda表达式)

  • 作用:
    • 定义函数的极简形式,和写表达式一样简洁轻松
    • 用=>作为定义符
    • 直接执行方法体,将结果返回,所以称为表达式
  • 用法
    • 没有参数时:
      • let sum = () => alert(“我是没有参数的lambda表达式”);
      • sum(); //调用
    • 有参数时:
      • let sum = (x,y) => x+y; //直接返回x+y的结果赋值给sum变量
      • sum(1,2);
    • 一个参数时的简写形式:
      • let sum = x => return x; //一个参数时可以省略
      • sum(1); //传参调用
  • 函数体解析
    • 1、不写{}括住函数体
      • 会直接将结果返回,不用且不能写return语句
      • let sum = (x,y) => x+y; //直接返回x+y的结果赋值给sum变量,自动return回结果,无需再写,写了就报错
      • sum(1,2);
    • 2、写{} 括住函数体
      • let sum = (x,y) => { s=x+y; return s;}
      • 或者let sum = (x,y) => { return x+y;}//结果必须return,不会自动生成return语句
      • console.log(sum(1,3));
    • lambda表达式的this关键字
      • 没有自己的this,不是调用时候决定的,而是在定义的时候,自身所处对象就是它的this
      • 例如,我们的lambda表达式定义在obj对象内部,那么,this就指向obj对象
      • 如果外层没有对象,那么,我们知道JavaScript直接对象时window,所以this指向window
      • 通俗的将,箭头函数就看自己外层有没有函数,如果有,那么它的this就是外层函数的this
      • 如果没有,this就指向window

不定长参数,点表达式

  • 类似java的不定长参数,用…作为符号,存储函数调用时传来的形参,或者执行数组一系列运算
  • 作用:
    • 解决形参个数不固定的问题
    • 简洁,明了
    • 将形参保存到特定数组中
    • 方便实现数组复杂运算
  • 举例:
  • 数组插入运算
    • let arr1=[2,3];
    • let arr2=[1,…arr1,4,5,6];
    • arr2的值为1,2,3,4,5,6

形参默认值

  • 当一个函数用户没有传入任何参数时,给这些参数赋一个默认值
  • 举例:
    • function sum(x=1,y=2){return x+y;}//若没有传参,此时会采用默认的1和2
    • sum();//没有传入任何参数

Promise对象(了解即可)

  • 作用:
    • 此对象代表未来某个将要发生的事件,比如异步通信操作
    • 此对象可以将异步操作以同步操作的方式表达,避免一直嵌套回调函数
    • Promise是构造函数,用来生成对象
  • 使用方法:
    • 1、利用Promise构造函数创建promise对象
      • 此构造函数的参数是一个lambda表达式,lambda表达式有两个参数,这两个参数也是两个函数
        • resolve :此参数表示成功状态fullfilled
        • reject:表示为失败状态rejected
    • 2、调用promist的then()函数,
      • 此函数有两个参数,都是lambda表达式,一个表示异步成功调用的函数,一个表示异步失败调用的函数
    • promise的3个状态
      • pending:初始化状态
      • fullfilled: 成功状态
      • rejected:失败状态
    • 举例:在这里插入图片描述在这里插入图片描述

Symbol(了解即可)

  • 作用:
    • 在ES5中,对象的属性名都是字符串,,容易重名,污染环境
    • ES6中添加了一种数据类型Symbol,和String,Number,Boolean,null,undefined,对象,是相同的基本数据类型
  • 特点:
    • 每个Symbol都是唯一的,解决命名冲突问题
    • 不能与其他类型数据进行运算,和字符串拼串也是不允许的
    • for in,for of遍历时,不会遍历symbol属性
    • 可以用const关键字定义常量
  • 使用在这里插入图片描述

for of遍历语句

  • 可以变量任何实现iterator接口的对象
  • 可以遍历数组、字符串、arguments、set容器、map容器,但不能遍历普通对象,因为对象没有实现iterator接口
  • 三点运算符和解构表达式默认调用iterator接口实现 在这里插入图片描述

Generator函数(了解即可)

  • 作用:
    • ES6提供的解决异步编程的方案之一
    • 是一个状态机,封装了不同状态的数据
    • 用来生成遍历器对象
    • 可以暂停,就像java中的线程暂停一样,yield暂停,next方法启动,每次返回都是yield的表达式结果
  • 特点
    • function与函数名之间有一个星号
    • 内部用yield表达式来定义不同状态
    • 返回值是指针对象,例如iterator,而不执行函数内部逻辑
    • 调用next方法后,函数内部逻辑开始执行,遇到yield表达式暂停
    • 再次调用next后,会继续执行函数,直到再遇见yield暂停,然后又需要next启动,依次类推直到函数结束
    • 如果next中设置参数,那么上一次yield的返回值就会赋值给这个参数。
  • 测试在这里插入图片描述在这里插入图片描述

async函数(真正解决了异步回调问题)

  • 作用:

    • 可以和同步一样处理异步
    • 使用Generator实现
  • 语法:

      async function foo(){
      	await 异步操作;
      	await 异步操作;
      	...
      }
    
  • 特点

    • 无需像Generator一样调用next
    • 遇到await会等待,当前异步执行成功,会自动向下执行
    • 返回的总是promise对象,可以使用then方法进行下一步操作

针对字符串扩展的方法

  • str1.include(str2); //判断str1是否包含str2字符串,返回布尔值
  • str1.startsWith(str2);//判断str1是否以str2开头,返回布尔值
  • str1.endsWith(str2);//判断str1是否以str2结尾,返回布尔值
  • str1.repeat(count);//将str1重复指定次数,并返回拼接后的字符串

针对数值扩展的方法

  • 二进制用0b开头,八进制用0o开头表示
  • Number.isFinite(i): 判断 i 是否是有限大的数
  • Number.isNaN(i): 判断 i 是否是NaN
  • Number.isInteger(i):判断 i 是否是整数
  • Number.parseInt(str):将字符串转换为对应的数值,并返回一个数值型
  • Math.trunc(i):直接去除小数部分,返回整数

针对数组扩展的方法

  • Array.from(arr): 将伪数组或可遍历对象转换为真数组(…Value和arguments就是伪数组)
  • Array.of(a,b,c);将传入的一堆值,转换成一个数组
  • find(function(value,index,arr){return 条件}):找出第一个满足条件返回true的元素
  • findIndex(function(value,index,arr){return 条件}):找出第一个满足条件返回true的元素下标

针对对象扩展的方法

  • Object.is(v1,v2): 判断两个数据是否完全相等
  • Object.assign(obj1,obj2,obj3…):将obj2,obj3,…,这些对象的属性,复制给obj1

set & map容器

  • Set容器:元素不可重复,无序集合
    • new Set([1,2,34,5]):使用构造函数创建一个set集合,具有1,2,34,5这几个元素
    • Set(array):将数组转换为set集合
    • add(value):添加一个数据到set集合
    • delete(value):从集合中删除指定数据
    • has(value):判断指定值是否存在
    • clear():清除集合
    • size:集合长度
  • Map容器:键值对形式存储数据,键key不可重复,无序
    • new Map([[“name”,“张三”],[14,“age”],[“sex”,‘男’]]):使用构造函数创建一个Map集合,包含3个键值对,二维数组,里面每一个数组都是一个键值对
    • Map(array):将数组转换为Map集合
    • set(key,value):添加一个值(key:value),要以键值对形式添加
    • get(key):根据key获取指定值
    • delete(key):删除指定键和其对应值
    • has(key):判断指定key是否存在
    • clear():清除Map集合
    • size:Map集合大小

ES7

  • 指数运算符 * * 例如let a=5**,那么a的值为25
  • Array.prototype.include(value):判断数组中是否包含指定value
前端最新面试题(ES6模块篇) 前端最新面试题 ES6模块 阅读详情

相关推荐

MobaXterm远程连接频繁掉线?3个SSH保活设置让你告别断连烦恼

本文针对MobaXterm远程连接频繁掉线问题,提供了3个SSH保活设置方案。从基础的SSH心跳机制到进阶的会话超时调整,再到TCP层保活与代理优化,全方位解决断连烦恼。特别适合需要稳定远程连接的开发者和运维人员,有效提升工作效率。

weixin_29250573的博客 486

es7新增语法详解

es7新增语法详解。

weixin_42705100的博客 799

攻克JESD204B多ADC同步:从时钟对齐到数据对齐的实战解析

本文深入解析了JESD204B多ADC同步的系统性挑战与实战解决方案。从确保设备时钟同源、精确捕获SYSREF信号,到管理接收端弹性缓冲区与释放点,文章提供了从时钟对齐到数据对齐的完整调试路径与排查清单,是攻克高速数据采集系统中多片ADC同步难题的实用指南。

weixin_29231725的博客 197

ES7、ES8、ES9、ES10、ES11、ES12新增语法

ES7(ECMAScript 2016)引入了一些新的特性和语法。

weixin_47194802的博客 1107

CPLD新手必看:安路EF2系列配置与烧录的避坑指南(含完整流程)

本文为CPLD新手提供了安路EF2系列芯片从硬件设计到软件烧录的完整避坑指南。重点解析了电源系统、时钟复位、JTAG接口等关键电路设计要点,并详细介绍了使用TD软件进行工程创建、代码编写、引脚分配及程序烧录的全流程,帮助开发者快速上手并规避常见问题。

weixin_29217235的博客 352

VQGAN实战:从文本到高清图像的保姆级生成教程(含PyTorch代码)

本文详细介绍了VQGAN(Vector Quantized Generative Adversarial Network)在文本到高清图像生成中的应用,提供了从环境配置到模型加载、文本编码及图像生成的完整PyTorch代码教程。通过实战案例和高级调优技巧,帮助开发者快速掌握VQGAN的核心技术,实现百万像素级的高清图像生成。

u8v9w0x1y的博客 649

vue前端交互模式-es7的​语法结构?async/await​

第一个schema为协议,比如http,https,ftp等,第二个,host为域名或者ip地址,第三个port为端口,http默认为80端口,是可以省略的,第四个path为路径,比如/index,第五个query为查询参数,比如name=dada&age=12,第六个fragment为锚点,哈希Hash,是用于定位页面的某个位置。客户端与服务器的通信模式,前后端交互,调用接口的方法,第一种,原生的ajax,第二种,基于jquery的ajax,第三种,基于fetch,第四种,基于axios。

油墨香^-^的博客 529

华科软院研究生第一学期的事项(奖学金、学业、考试等)

奖助 研究生补助 每月500,全年共6000元 每个月月底学院会打到银行卡里 碰上开学、过年会延后发放 17年10月底发了9、10两个月的钱 18年3月底发了2、3月的钱 学业奖学金 17届全日制每人都有 按照考研最后综合成绩排名 前16 10000 前80 8000 其他 4000 大概11月底发 注意:第一年如果有挂科的话,第二年就不能参加学业奖学金评...

sjdeak的博客 3706

10分钟学会ES7+ES8

10分钟学会ES7+ES8撰文为何身为一个前端开发者,ECMAScript(以下简称ES)早已广泛应用在我们的工作当中。了解ECMA机构流程的人应该知道,标准委员会会在每...

大转转FE 2916

1.Fay-UE5数字人工程导入(UE数字人系统教程)

ue5数字人系列教程(含源文件工程)

1万+

HTML音乐爱心3D旋转相册完整源码

HTML音乐爱心3D旋转相册完整源码

LilyCoder的博客 1380

探索JavaScript的ES5、ES6、ES7新特性

本文将介绍JavaScript的ES5、ES6、ES7三个版本的新特性。了解这些新特性,可以帮助开发者更好地理解JavaScript的发展历程,提高代码质量和开发效率。本文介绍了JavaScript的ES5、ES6、ES7三个版本的新特性。掌握这些新特性,可以帮助开发者更好地理解JavaScript的发展历程,提高代码质量和开发效率。

你若盛开,清风自来 1793

在 SAP ECC 中定义 ledger 时遇到 “Define exactly one leading ledger“(消息号 FAGL_LEDGER_CUST012)的错误

摘要:SAP系统要求必须且只能定义一个主导分类账(Leading Ledger)。当出现错误消息FAGL_LEDGER_CUST012时,需通过事务码FINSC_LEDGER或SPRO路径检查分类账配置,确保仅有一个分类账被标记为"LeadingLedger",其余设为"Non-leadingLedger"。主导分类账是SAP默认用于标准报表的核心分类账,修改配置需谨慎以免影响已有数据。若问题未解决,建议检查未完成配置或查阅SAP Notes获取解决方案。

金牌架构师 802

JavaScript前端经典面试题之ES6面试题汇总es6

JavaScript前端经典面试题之ES6面试题汇总es6

南北极之间 7317

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

前端模块化学习:CommonJS规范、AMD规范、CMD规范、ES6规范

前端模块化学习:CommonJS规范、AMD规范、CMD规范、ES6规范

weixin_39651356的博客 1599

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[前端]深入理解W3C标准与ES规范

本文介绍了前端开发的两大核心标准:W3C标准和ES规范。W3C标准主要包含HTML(定义网页结构)和CSS(控制样式表现),以及相关Web API;ES规范则是JavaScript的语言标准,定义了语法和核心功能。文章详细解析了两者的具体内容和发展历程,并通过代码示例展示它们如何协同工作:HTML搭建页面结构,CSS控制样式,JavaScript实现交互逻辑。最后强调两者共同构成前端开发基础,开发者需要同时掌握才能在Web舞台上"表演"。

欢迎来到我的博客 1151

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

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

qq_43548436的博客 1171

ES6前端学习笔记

标准委员会最终决定,标准在每年6月正式发布并作为当年的正式版本,接下来的时间里就在此版本的基础上进行改动,直到下一年6月草案就自然变成新一年的版本,这样一来就无需以前的版本号,只要用年份标记即可。:粘连修饰符,确保匹配必须从剩余的第一个位置开始全局匹配(与。定义:对一类具有共同特征的事物的抽象(构造函数语法糖)互不兼容,目前解决方案是将两者分开,采用各自的加载方案。,才用了一年,按照这样的定义下去,那不是很快就。(返回的正则表达式会忽略原正则表达式的修饰符),所有在类中定义的属性方法都会被实例继承。

实力派,无需多言! 1137

ES6经典面试题

一、问:ES6是什么,为什么要学习它,不学习ES6会怎么样? 答: ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用的开发。学习ES6是成为专业前端正规军的必经之路。不学习ES6也可以写代码打鬼子,但是最多只能当个游击队长。 二、问:ES5、ES6和ES2015有什么区别? 答: ES20...

猿飞梦的博客 5738

从 ES5 到 ES14:深入解析 JavaScript 的演进与特性

本文概述了 JavaScript 从 ES5 到 ES14 的主要特性演进。ES5 引入了严格模式和新的数组方法,提升了代码的安全性和可读性;ES6 带来了 let、const、箭头函数和模块系统等核心特性,标志着 JavaScript 的现代化;ES7 到 ES9 增加了幂运算符、includes 和对象展开运算符;ES10 和 ES11 引入了数组 flat、可选链和空值合并操作符。这些版本的改进,帮助开发者编写更简洁、高效和健壮的代码。

qq_40791475的博客 1825

es6新特性_前端关于ES6的面试题汇总含答案

ES6全称是ECMAScript6,它可以帮助JavaScript语言成为企业级开发语言,编写大型且复杂的应用程序。在前端面试中,ES6也是一个经常出现的考点。本文整理汇总了ES6相关的面试题以及对应的参考答案,大家可以在面试前梳理一遍相关知识点,用最好的状态去迎接面试。 1.聊聊 promise?promise 是一个异步函数,主要是为了解决异步处理回调地狱(也就是循环嵌套的问题)而产生的,有 ...

weixin_39725154的博客 3856

【前端知识总结】ES6

ES6 可以看到属性变量式声明看起来更加简洁明了。方法也可以采用简介写法 升级部分 在原型上新增了方法,此方法增强了中方法,可以获取指定对象所有自身属性的描述对象。结合方法,可以完美复制对象,包括复制和属性。 在原型上新增了和方法,用来获取或设置当前对象的对象。这个方法的意义在于,中获取/设置对象是通过属性来实现的,然而并不是ES规范中的标准属性,只是浏览器各大厂商私自加上去的属性,只不过因为使用范围广泛而被默认使用了,在非浏览器环境中不一定可...

MyBlog 1609

如何把vue3 中的 es6规范的代码,编译为es5规范的老的浏览器可以用的代码

更改完后重新编译,然后查询是否有 let ,=》 这种es6标准的符号,如果没有说明转es5成功。如何把vue3 中的 es6规范的代码,编译为es5规范的老的浏览器可以用的代码。

纳川的博客 1437

ECMAScript标准的发展与应用:ES5奠定基础

ECMAScript标准的发展历程充满了创新和改进。从ES5奠定基础,到ES6引入革命性的更新,再到ES7及以后的版本持续创新,ECMAScript标准为JavaScript和其他基于JavaScript的语言提供了强大的功能和灵活性。随着ECMAScript标准的不断发展,我们可以期待JavaScript语言在未来会有更多的创新和改进,为Web前端开发带来更多的可能性和机会。

你若盛开,清风自来 1757

前端开发,需要掌握的ES6知识

https://www.cnblogs.com/theblogs/p/10575845.html

qq_42264793的博客 784

ES6笔记大全(最新)

为什么要学习ES6ES6的版本变动内容最多,具有里程碑意义;ES6加入许多新的语法特性,编程实现更简单、高效;ES6是前端发展趋势,就业必备技能;

weixin_52342741的博客 1466
上一篇: 微服务前后端分离4、Vue.js框架详细笔记(此教程只能使你快速了解一些个人web开发者必须懂的vue知识)
下一篇: webpack自动化构建工具详细笔记,入门到实战,解决 webpack : 无法将“webpack”项识别为 cmdlet、函数、脚本文件或可运行程序的名称,和webpack : 无法加载文件等等
ydenergy_殷志鹏
博客等级 码龄7年 5885粉丝 543原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值