自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JS - 捕获打印窗口关闭事件

实际上浏览器没有标准化的打印窗口关闭事件,但是根据js单线程这一特性,我们可以在打开打印窗口时同时执行一个异步函数,这样异步函数将被阻塞直到窗口关闭,通用于任何窗口。

2022-09-07 12:00:29 1525 1

原创 杂记 - 设计模式(TS代码示例)

面对对象程序的设计准则面对对象程序由对象组成, 对象包括数据和对数据进行操作的过程, 过程通常被称为方法或操作.针对接口编程, 而不是针对实现编程优先使用对象组合, 而不是类继承创建型模式Abstract Factory(抽象工厂)...

2021-10-07 23:00:11 900

原创 杂记 - JavaScript高级程序设计笔记

第 1 章 什么是 JavaScriptJavaScript 是一门用来与网页交互的脚本语言,包含以下三个组成部分。ECMAScript:由 ECMA-262 定义并提供核心功能。文档对象模型(DOM):提供与网页内容交互的方法和接口。浏览器对象模型(BOM):提供与浏览器交互的方法和接口。第 2 章 HTML 中的 JavaScript<script> 元素属性。async:可选。表示应该立即开始下载脚本,但不能阻止其他页面动作,比如下载资源或等待其他脚本加载。只对外部脚

2021-09-17 00:04:45 212

原创 HTML - <base>小结

在项目开发中, 发现很多脚手架提供的 index.html 模板会含有 <base> 标签, 比如 Angular CLI.<base> 的 href 属性指定了文档中所有相对 URL 的基本 URL, 默认值为 location.href.下例中, <img> 的资源路径为 https://example.com/img.jpg<base href="https://example.com"><img src="img.jpg" />

2021-09-13 22:22:38 127

原创 杂记 - HTTP/2 和 HTTP/3 简介

HTTP/2HTTP/2 的核心为 Binary framing layer“layer” 表明 binary framing layer 是一个新的层级, 该层级处于 socket interface 和 HTTP API 之间, 作为中间层级binary framing layer 不会改变 HTTP 请求/响应的语义: 如我们常说的头, 方法binary framing layer 只改变了传输过程中的编码方式HTTP/1.x 明文传输通过换行符分割的信息HTTP/2 将信息分割为二进制

2021-07-05 13:49:15 405

原创 杂记 - TLS 详解

TLS(或被称为SSL)SSL(Secure Sockets Layer), 由网景(Netscape)公司开发, 是 TLS(Transport Layer Security) 的前身, TLS 的名字更改为了表明此协议不在与网景公司有关, 有时候会混用 SSL 和 TLS 的称谓TLS 是安全协议, 旨在提供安全的互联网通信TLS 提供了:加密: 第三方窃取的数据是不可读的验证: 确保交换数据的双方身份没有问题完整: 确保数据没有丢失或者被篡改TLS 握手发生在 TCP 连接之后TC

2021-06-08 15:14:49 522

原创 JS - 规范下的 this

阅读本文请先查看执行上下文规范定义:this 关键字: 返回 ResolveThisBinding()只有function Environment Record(非箭头函数), module Environment Record 以及 global Environment Record的 HasThisBinding() 返回 true, 其它为 falseGetThisBinding():function Environment Record(非箭头函数)[[ThisBindingStatu

2021-05-31 17:47:15 128

原创 JS - 垃圾回收机制

垃圾回收由 JS 引擎实现, 对于我们来说是无法接触的建议查看垃圾回收可达性可达性: 通过执行上下文链判断内存中的数据是否被引用 (执行上下文可查看我写的文章)通过判断可达性决定内存中的数据是否可以被清除例子var obj = {};如果了解 C 语言指针以及计算机系统, 那么很容易知道:上面的声明实际是在堆内存开辟了空间存储复杂数据 {}, 分配的内存地址我们假设为 0x0001那么 obj 指向栈内存, 存储的值为数据 {} 的地址, 即 0x0001备注: 复杂数据即数据长度不确

2021-05-25 15:10:45 140 2

原创 JS - 对象获取 Keys 的不同方法

以下面代码为例:const obj = {};Reflect.defineProperty(obj, "test1", { configurable: true, enumerable: true, value: 1, writable: false,});Reflect.defineProperty(obj, Symbol("test1"), { configurable: true, enumerable: true, value: 1, writable: fa

2021-05-25 10:37:06 936

原创 杂记 - TypeScript 4.2

未指定类型且无法推测, 类型隐式为any某类型具有明确子分类时, 应当常见创建子类型声明type Combine: Block1 | Block2尽量不使用断言 ! ?常用的针对多类型缩小范围typeofininstanceofparameterName is Type, 文档看起来很有用?如果函数不声明返回类型, 会根据return语句自动推断, 无return或仅有return为voidvoid代表返回值被忽略, 实际上仍然可以return任何值函数泛型约束类

2021-05-24 14:35:02 364 4

原创 JS - 原型及原型链

new 操作符先让我们看一段简单的代码:function Test() { this.a = "a"; this.b = "b";}const instance = new Test();new 操作符做了什么?引用MDN的说法:创建一个空白且简单的 JavaScript 对象。通过new Object()创建一个空白对象。链接该对象到另一个对象。为步骤 1 创建的对象添加__proto__属性指向原型。得到{ __proto__: Test.prototype }。

2021-04-25 11:29:40 150

原创 杂记 - 词法作用域和动态作用域

作用域在解释这些专业术语之前,我说一下个人观点,我一直认为这些术语,其概念不是绝对的,特别是当某一术语应用于广泛领域的时候。作用域这一术语就是如此,它广泛适用于计算机语言,所以本文对作用域的解释不是绝对的。来自wiki的解释:In computer programming, the scope of a name binding—an association of a name to an entity, such as a variable—is the region of a computer

2021-04-25 11:29:31 189

原创 JS - 规范定义的执行上下文

本文根据ES6 规范关于执行上下文的内容来解读 JavaScript 程序运行的实际情况。Lexical Environments(词法环境)在论述执行上下文之前,我们需要了解一个概念:词法环境。A Lexical Environment is a specification type used to define the association of Identifiers to specific variables and functions based upon the lexical nest

2021-04-25 11:29:24 413 2

原创 JS - 从规范解读浏览器事件循环

前言在讨论事件循环之前,其实是想介绍 V8 引擎与浏览器之间的联系,奈何学艺不精,网上的资料也是参差不齐,所以不敢侃大山。不过还是可以确定以下几点:浏览器提供了 JS 代码运行的额外环境,如 window 对象、事件循环模型。V8 引擎只负责执行 JS 代码,即调用栈中有啥就执行啥,至于代码什么时候、什么顺序入栈由浏览器控制。事件循环的作用众所周知,JavaScript 是单线程运行的,这就意味着执行像 setTimeout 中的回调函数,如果没有一个机制让代码继续执行,那么 JS 程序只能

2021-04-25 11:29:18 176

原创 杂记 - WSL2 局域网访问, 代理设置, IP设置(已集成工具)

环境 Ubuntu 20.04局域网访问wsl2监听地址设置为0.0.0.0, 如常见的命令行参数 --host=0.0.0.0新建powershell脚本(文件后缀 .ps1)# 获取 Windows 和 WSL2 的 ip$winip = bash.exe -c "ip route | grep default | awk '{print `$3}'"$wslip = bash.exe -c "hostname -I | awk '{print `$1}'"$found1 = $win

2020-12-12 17:31:51 2616

空空如也

空空如也

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

TA关注的人

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