自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 ES6学习笔记24--编码风格

(1)let 取代 var,建议不再使用 var 命令,使用 let 命令取代(2)在 let 和 const 之间,优先使用 const,尤其在全局环境,不应该设置变量,只应设置常量。(3)静态字符串一律使用单引号或反引号,不适用双引号。动态字符串使用反引号。(4)使用数组成员对变量赋值时,优先使用解构赋值。(5)函数的参数如果是对象的成员,优先使用解构赋值。(6)如果函数返回多个值,优先使用对象的解构赋值,而不是数组的解构赋值。这样便于以后添加返回值,以及更改返回值的顺序。(7)

2021-03-08 15:35:21 151

原创 ES6学习笔记23--Module加载实现

浏览器加载实现 默认情况下,浏览器同步加载 JavaScript 脚本。渲染引擎遇到 <script>标签就会停下来,等到执行完脚本,再继续往下渲染。浏览器默认异步加载,两种语法:<script src="path/to/myModule.js" defer></script><script src="path/to/myModule.js" async></script>/*script 标签打开 defer,或 asyn..

2021-03-06 16:31:07 283

原创 ES6学习笔记22--Module语法

import 、export 命令 处理 import /export 语句是在编译时,所以 import 和 export 命令只能在模块的顶层,不能在代码块中。require 是运行时加载模块,import 命令无法取代 require 的动态加载功能。 import() 函数,支持动态加载模块 import 命令会被 JavaScript 引擎静态分析,先于模块内的其他语句执行。import 命令是在编译时处理,导致 import 命令无法取代 require 的动态加载功能。...

2021-03-06 11:28:36 230

原创 ES6学习笔记21--Class的继承

简介 Class 可以通过 extends 关键字实现继承。子类必须在 constructor 方法中调用 super 方法,否则新建实例时会报错。因为子类的 this 对象,必须先通过父类的构造函数完成构造,得到与父类同样的实例属性和方法,后续再加上子类自己的实例属性。若不通过 super() 方法调用,子类得不到 this 对象。若子类没有定义 constructor 方法,此方法会被默认添加。在子类的构造函数中,只有调用super之后,才可以使用this关键字,否则会报错。..

2021-03-05 17:06:38 175 2

原创 ES6学习笔记20--Class的基本语法

sadas

2021-03-04 19:39:02 125 2

原创 ES6学习笔记19--async函数

概念 async 是 Generator 函数的语法糖。async 是将 Generator 函数的星号(*)替换成 async,将 yield 替换成 await 。async 的实现原理就是将 Generator 函数和自动执行器包装在一个函数里。async 函数完全可以看做是将多个异步操作,包装成一个Promise 对象,而 await 命令就是内部 then 命令的语法糖。 基本用法 async 函数返回一个Promise 对象,可以使用 then() 方法添加回调..

2021-03-03 17:21:50 176 1

原创 ES6学习笔记18--Generator 函数的异步应用

异步编程的方法:(1)回调函数(2)事件监听(3)发布/订阅(4)Promise 对象(5)新增:Generator 函数 协程的Generator 函数实现 协程 概念:多个线程互相合作,完成异步任务。协程运行流程:(1)协程 A 开始执行(2)协程 A 执行到一半,进入到暂停,执行权转移到 协程 B(3)一段时间后,协程 B 交还 执行权(4)协程 A 恢复执行。Generator 函数是协程在ES6 的实现,最大特点就是可以交出函数的执行权(即..

2021-03-03 15:41:41 137

原创 ES6学习笔记17--Generator函数

Generator 函数是一个状态机,封装了多个内部状态

2021-03-03 11:09:12 127

原创 ES6学习笔记16--Iterator(遍历器)

Interator(遍历器)是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Interator 接口,就可以完成遍历操作(依次处理该数据结构的所有成员)。Iterator 遍历过程:(1)创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器的本质上就是一个指针对象(2)第一次调用指针对象的 next 方法,可以将指针指向数据结构的第一个成员(3)不断调用指针对象的 next 方法,直到它指向数据结构的结束位置。(4)不断调用指针对象的 next 方

2021-02-01 14:29:05 140

原创 ES6学习笔记15--Promise

Promise 是异步编程的一种解决方案。是一个对象,可以获取异步操作的消息。可以将异步操作变成同步操作,避免层层嵌套的回调函数。Promise三种状态:pending(进行中) fulfilled(已成功) rejected (已失败)只有异步操作的结果,可以决定当前是那一种状态,任何其他操作都无法改变这个状态。Peomise 对象的状态一旦改变,就不会再变。对象的改变只有两种可能:(1)pending --> fulfilled(2)pending --> re

2021-01-21 17:36:18 109 2

原创 ES6学习笔记14--Reflect

现阶段,某些方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。也就是说,从Reflect对象上可以拿到语言内部的方法。Reflect 对象(1)可以拿到语言内部的方法。(2)修改某些Object 方法的返回结果,可以让其变得更合理(3)让 Object 操作变成函数行为(4)Reflect 对象的方法与Proxy 对象的方法一一对应。即只要是 Proxy 对象的方法就能在Reflect 对象上找到对应的方法。方便 Proxy 对象...

2021-01-18 18:22:14 104

原创 ES6学习笔记13--Proxy

Proxy 提供了一种机制,可以对外界的访问进行过滤和访问。即在目标对象之前架设一层"拦截",外界对该对象的访问都必须通过这层拦截。ES6原生提供Proxy构造函数,用来生成Proxy 实例。Proxy 实例也可以作为其他对象的原型对象。要使得Proxy 起作用,必须针对 Proxy 实例 进行操作,而不是针对目标对象进项操作。var proxy = new Proxy(target, handler);target:表示所要拦截的目标对象handler:也是一个对象,用来定制.

2021-01-16 13:44:27 319

原创 ES6学习笔记12--Set 和 Map 数据结构

Set 数据结构 Set 数据结构类似于数组,但成员的值是唯一的,没有重复的值。所以可以用来去除数组重复成员以及字符串中重复的字符。Set 构造函数用来生成 Set 数据结构。Set 构造函数也可以接受一个数组(或者具有 iterator 接口的其他数据结构)作为参数,用来初始化。注意:两个对象总是不相等的,即使是两个空对象,也被视为不相等。/*接受空参数**/const s = new Set();s.add('a');/*接受参数为一个数组**/const s2 = new..

2021-01-15 18:43:47 140 2

原创 ES6学习笔记11--Symbol数据类型

概述: Symbol 数据类型是一种类似于字符串的数据类型,用来表示独一无二的值。凡是属性名属于Symbol 类型,可以保证不会与其他属性名产生冲突。Symbol 函数不能使用 new 命令,且可以接受一个字符串作为参数,表示对 Symbol 实例的描述。相同参数的Symbol 函数的返回值是不相等的。且Symbol 值不能与其他类型的值进行运算。Symbol 值也可以转为布尔值,但是不能转为数值。 let s = Symbol(); let s1 = Symbol('s1'..

2021-01-14 15:18:36 208 1

原创 记IIS 部署 webService 时出现 HTTP 404.17 Not Found 解决办法

部署 IIS 站点时出现HTTP 404.17 Not Found请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理问题(1)检查 IIS 点击ISAPI 筛选器 ,检查Asp.net 是否注册(2)若已注册,进行重新注册运行 cmd ,C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_regiis -i ...

2021-01-13 18:16:27 1215

原创 ES6学习笔记10--对象新增的方法

对象的新增方法(了解一下) Object.is() 用来比较两个值是否严格相等,与 严格比较运算符 (===)基本一致。 严格比较运算符(===)在判断 NaN 时,NaN 不等于 自身,Object.is() 可以解决此问题严格比运算符 (===) 在 +0 === -0 时为true,Object.is()则认为 +0与 -0 不相等Object.is(NaN,NaN) //trueNaN === NaN // falseObject.is(+0,-0) //false+..

2021-01-13 17:29:33 191

原创 ES6学习笔记9--对象的扩展

"属性的简介表示法" 属性名表达式 方法的name属性 属性的可枚举性和遍历 super 关键字 对象的扩展运算符 链判断运算符 Null判断运算符

2021-01-12 21:45:58 148 2

原创 ES6学习笔记8--数组的扩展

扩展运算符 扩展运算符是三个点 ...,将一个数组转为用逗号分隔的参数序列。注意点:只有当扩展运算符用于函数调用时,扩展运算符才可以放在圆括号中。(1)用于函数调用将数组变为参数序列 扩展运算符后还可以放置表达式,若扩展运算符是一个空数组,则不产生任何效果。/*将数组转为参数序列*/console.log(...[1,2,3]) //1 2 3/*函数调用,使用扩展运算符,该运算符将一个数组,变为参数序列*//*且只有函数调用时,扩展运算符才能放在圆括号中*/fun...

2021-01-11 16:35:49 142 1

原创 ES6学习笔记7--函数的扩展

函数参数的默认值 ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。函数参数默认值注意事项:(1)参数变量都是默认声明的,在函数体中不能再用 let 和 const 再次声明function foo(x=5){ let x =1; //Uncaught SyntaxError: Identifier 'x' has already been declared const x = 2; // Uncaught SyntaxError: Identifier '..

2021-01-09 19:40:42 168 2

原创 ES6学习笔记6--数值的扩展

二进制和八进制表示法 ES6 提供了二进制和八进制数值的写法,分别用前缀0b(或0B)和0o(或0O)表示

2021-01-05 14:19:43 144

原创 ES6学习笔记5--正则的扩展

RegExp 构造函数 RegExp语法详解MDNUnicode属性类 Unicode属性类详解\p{...} 和\P{...} 允许正则表达式匹配符合Unicode某种属性的所有字符。只对Unicode字符有效。使用时请加上 u 修饰符。/* \p{...} 小写p 反向匹配\P{...}*/const regexGreekSymbol = /\p{Script=Greek}/u;regexGreekSymbol.test('π') // true...

2020-12-29 14:17:58 170

原创 ES6学习笔记4--字符串的扩展

字符的Unicode表示法 ES5允许采用 \uxxxx形式表示一个字符。xxxx表示字符的Unicode码点.\uxxxx 表示法只限于码点在 \u0000 ~ \uFFFF 之间的字符。超出这个范围的字符,必须用两个双字节的形式表示。ES6 可以使用\u{xxxxx},将码点放入大括号中,可以正确解读该字符//???? 的 unicode U+1F9E1/*(1)ES6*/let a = "\u{1F9E1}"a //"????"/*(2)ES5仅支持 \uxxxx表示法,超

2020-12-26 11:33:25 576

原创 ES6学习笔记3--变量的解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,被称为解构。let [a,b,c] = [1,2,3]//等价于let a = 1;let b = 2;let c = 3;这种写法被称为"模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值。let [ , ,third] = ["foo","bar","baz"]thrid // bazlet [head,...tail] = [1,2,3,4];head // 1 tail //[2,3,4

2020-12-23 17:44:11 239

原创 ES6学习笔记2--let命令与const命令

let命令let 声明变量,只在他所在的代码块有效var 声明变量,在全局范围内有效let 不会存在变量提升问题,let所声明的变量一定要在声明后使用。var 存在变量提升,变量可以在声明之前使用,值为undefined。let 不允许在相同作用域内,重复声明同一个变量。 暂时性死区 如果区块中存在let 和const 命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用使用这些变量,就会报错。在代码块内,使用let命令声明变量之前,该变

2020-12-19 17:19:12 158 2

原创 ES6学习笔记1--Babel转码器

Babel转码器Babel是一个ES6转码器,可以将ES6代码转化为ES5代码,从而可以在老版本浏览器中执行。配置文件 .babelrc,存放在项目的根目录下,该文件可以用来是指转码规则和插件。基本格式如下:{ //presets字段设定转码规则 //最新转码规则:@babel/preset-env "presets":[ "@babel/env", "@babel/preset-react" ], "plugins":[]}

2020-12-18 17:46:05 303

原创 CSS div居中显示方法

CSS div居中显示CSS div居中显示方法第一种方法(水平居中)第二种方法(水平居中+垂直居中)CSS div居中显示方法你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。第一种方法(水平居中)//父元素设置parentElement{ text-align:center}//子元素childElement{ margin:0 auto;}第二种方法(水

2020-12-10 10:41:30 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除