ES next
ES nextECMAScript 历史ECMA,读音类似“埃科妈”,是欧洲计算机制造商协会(European Computer Manufacturers Association)的简称,是一家国际性会员制度的信息和电信标准组织。1994 年之后,由于组织的标准牵涉到很多其他国家,为了体现其国际性,更名为 Ecma 国际(Ecma International),因此 Ecma 就不再是首字母缩略字了。
1995 年,著名的网景公司(Netscape)的 Brendan Eich 开发了一种脚本语言,最初命名为 Mocha,后来改名为 LiveScript,最后为了蹭当时火热的 Java 热度重命名为了 JavaScript。
了解了 Ecma 国际和 JavaScript,就方便了解 ECMAScript 了,ECMAScript 是一种由 Ecma 国际在标准 ECMA-262 中定义的 脚本语言 规范。这种语言在往往被称为 JavaScript 或 JScript ,但实际上 JavaScript 和 JScript 是 ECMA-262 标准的实现和扩展。
神秘的 ECMA-2 ...
Centos 7.6 安装 mysql 8 小记
Centos 7.6 安装 mysql 8 小记背景国庆期间,由于发现之前的评论系统好像被墙了,然后萌生了换一个评论系统的想法(不涉及数据迁移,因为根本就没有数据:))。经过比较,最终的方案是独立部署 waline到自己的腾讯云服务器。因此需要在服务器上装一个 MySQL 数据库,发现原文作者安装数据库的步骤写的甚是详细,因此转载到博客~~
本文转载于Linux:CentOS7安装MySQL8(详),对作者表示感谢。正文开始
基于 Linux 的 CentOS 7 安装 MySQL 8,包含以下步骤
安装工作:卸载 MariaDB,下载资源包,检查旧版本 MySQL,解压安装。
配置工作:基本设置,创建用户组和用户,数据目录。
初始化 MySQL:配置文件,初始化。
启动 MySQL:启动服务,登录,修改密码,创建远程连接用户,退出和关闭。
安装工作卸载 MariaDB
MariaDB 是 MySQL 的一个分支,主要由开源社区维护。
CentOS 7+ 不再默认使用 MySQL 数据库,而是 MariaDB 数据库。
直接安装 MySQL 会与 MariaDB 的文 ...
GitBook 部署至腾讯云服务器小记
GitBook 部署至腾讯云服务器小记背景最近准备系统梳理一下技术体系,不计划以短文博客的形式进行,因此就想到了用 GitBook 来进行梳理。因此本文记录下GitBook 的安装以及部署到腾讯云服务器,并绑定到二级域名的一个过程以及其中遇到的问题。
如果你正在计划将 GitBook 部署到云服务器上,这篇文章或许可以帮助到你。
预期效果因为之前搞过 Hexo 博客部署到腾讯云服务器,感觉 Hexo 插件提供的一键部署能力用着还不错,因此使用 GitBook 我预期的效果是
本地编写 markdown,本地预览
支持一键部署到腾讯云服务器
访问站点的二级域名可以访问到 GitBook 页面
下面具体说下过程(默认已安装 node 和 npm)。
部署环境
环境
本地环境
macOS Monterey
服务器环境
centOS 7.1
云服务器配置在做 Hexo 部署到腾讯云服务器时,相关的配置已经做过了,只是没有做记录,本次也顺便记录下。
默认认为读者是 git 基本操作是熟悉的,且本地已经生成相应的 ssh 公钥和私钥了(目的是为了免密登录 git ...
Jetbrains 全家桶激活
Jetbrains 全家桶激活前言本文转载自Jetbrains 全家桶激活。感谢作者Zgao的分享!
正文互联网上有很多公开的开放Jetbrains激活服务器。利用这些服务器就可以直接激活Jetbrains的所有产品。
Shodan 搜索语法https://www.shodan.io/search?query=Location%3A+https%3A%2F%2Faccount.jetbrains.com%2Ffls-auth
激活 IDE随便找一个ip测试激活。
也可以使用shodan api来批量获取。
1shodan search 'Location: https://account.jetbrains.com/fls-auth' --fields ip_str,port | awk '{if($2==443){print "https://"$1}else{print "http://"$1":"$2}}'
sh ...
理解 WebView
理解 WebView
原文地址:Understanding WebViews作者:kirupa
我们通常使用 Chrome, Firefox, Safari, Internet Explorer 和 Edge 等浏览器来浏览网页。你也许正在使用其中一种浏览器阅读本文!虽然浏览器对于访问互联网内容的任务来说非常流行,它们还有一些我们从未过多关注过的竞争对手。这些竞争对手以 WebView 的形式被我们所熟知。这片文章将讲解 WebView 的神秘之处以及为什么它这么棒。
WebView 入门知识让我们来点无聊的定义。WebView 是一种嵌入式浏览器,原生应用可以用它来展示网络内容。这句话有两部分要注意:
第一,原生应用(亦称 app)。原生应用由专门为特定平台设计的编程语言和 UI 框架编写:
换句话说,应用不是指在浏览器中运行的跨平台网络应用。相反,你的应用主要是用像 Swift、Objective-C、Java、C++、C# 语言来编写的。这种工作方式与系统更加贴近。在这样的背景下,你使用的大多数应用都应该是原生应用。许多流行的应用,比如你的台式机/笔记本上的 Microso ...
npm install 原理分析
npm install 原理分析
本文转载于公众号『code秘密花园』
开门见山,npm install 大概会经过上面的几个流程,本篇文章来讲一讲各个流程的实现细节、发展以及为何要这样实现。
嵌套结构我们都知道,执行 npm install 后,依赖包被安装到了 node_modules ,下面我们来具体了解下,npm 将依赖包安装到 node_modules 的具体机制是什么。
在 npm 的早期版本, npm 处理依赖的方式简单粗暴,以递归的形式,严格按照 package.json 结构以及子依赖包的 package.json 结构将依赖安装到他们各自的 node_modules 中。直到有子依赖包不在依赖其他模块。
举个例子,我们的模块 my-app 现在依赖了两个模块:buffer、ignore:
1234567{ "name": "my-app", "dependencies": { "buffer": "^5.4.3", " ...
TypeScript 装饰器之依赖注入
TypeScript 装饰器之依赖注入
墙裂建议先看上一篇文章:TypeScript 装饰器完全指南
什么是依赖注入依赖注入是将一个对象所依赖的其他对象直接提供给这个对象,而不是在当前对象中直接实例化这些依赖的对象。
在Dependency Injection Demystified一文中的解释更是让人啧啧称赞:
Dependency injection means giving an object its instance variables. Really. That’s it.“Dependency Injection” is a 25-dollar term for a 5-cent concept. That’s not to say that it’s a bad term… and it’s a good tool. But the top articles on Google focus on bells and whistles at the expense of the basic concept. I figured I should say somethin ...
TypeScript 装饰器完全指南
TypeScript 装饰器完全指南
本文大多部分参考A Complete Guide to TypeScript Decorators,对作者表示感谢~
概览装饰器本质上是一种特殊的函数被应用于:
类
类属性
类方法
类访问器
类方法的参数
所以装饰器其实很像是在组合一系列函数,类似于高阶函数和类。通过装饰器我们可以轻松实现代理模式使代码更简洁以及实现一些更有趣的能力。
装饰器的语法十分简单,只需要在想使用的装饰器前面加上@符号,装饰器就会被应用到目标上:
123456function decorator() { console.log('I am a decorator');}@decoratorclass A {}
装饰器的类型一共可以分为:
类装饰器
属性装饰器
方法装饰器
访问器装饰器
参数装饰器
让我们快速认识一下这 5 种装饰器
1234567891011121314151617181920212223// 类装饰器@classDecoratorclass Bird { // 属性装饰器 ...
What does the "as const" mean in TypeScript and what is its use case?
What does the “as const” mean in TypeScript and what is its use case?在stack overflow 上看到这样一个问题:What does the “as const” mean in TypeScript and what is its use case?,其中最高票的回答让人收获匪浅,于是转载至博客。
This is known as a const assertion. A const assertion tells the compiler to infer the narrowest** or most specific type it can for an expression. If you leave it off, the compiler will use its default type inference behavior, which will possibly result in a wider or more general* type.
Note that it is called ...
一道 3 层的 TypeScript 面试题,你能答到第几层?
一道 3 层的 TypeScript 面试题,你能答到第几层?前言本文转载自公众号神光的编程秘籍,对文章作者神说要有光表示感谢~
原文链接:https://mp.weixin.qq.com/s/wWqeF5JJO3WlmBpDIcSuiw
正文最近遇见一道不错的 TS 面试题,分享一下。
这道题有 3 个层次,我们一层层来看。
第一层的要求是这样的:
实现一个 zip 函数,对两个数组的元素按顺序两两合并,比如输入 [1,2,3], [4,5,6] 时,返回 [[1,4], [2,5],[3,6]]
这层就是每次各从两个数组取一个元素,合并之后放到数组里,然后继续处理下一个,递归进行这个流程,直到数组为空即可。
12345678function zip(target, source) { if (!target.length || !source.length) { return []; } const [firstTargetItem, ...restTarget] = target; const [firstSourceItem, .. ...