OpenVPN|在群晖上搭建OpenVPN一键回家

之前为了方便自己远程玩我的黑群,开了动态DNS和ssh来远程玩,但发现有几次登DSM提示有人尝试ssh登但被封禁了,虽然ip封禁+强密码挺安全的,但我还是担心万一这玩意有漏洞被登了就麻烦了。再加上我到时候毕设还得在上面搭建各种花里胡哨的服务,例如数据库啊,Redis之类的,总不可能开一个服务还得映射一个端口不是吗?而且还涉及到多个设备的玩耍,还得给其他设备做虚拟服务器转发,又麻烦又不安全,索性搭一个VPN服务来方便我一键回家。

阅读全文 »

手撕call、apply、bind,相关实现和原理

call,apply,bind是做什么的

call、apply、bind是函数的一种特殊形式,它们的作用是调用函数,并且把函数的参数传递给它。call、apply、bind的实现原理是一样的,都是通过构造函数来实现的。这三种形式的第一个参数,都是函数的调用者,即谁调用了这个函数,从而决定this指向谁。

阅读全文 »

javascript webapi

DOM

vue和React框架应用广泛,封装了DOM操作,但DOM操作一直都会前端工程师的基础、必备知识,只会Vue而不懂DOM操作的前端程序员,不会长久

本质

html语言解析出来的树结构

20220311Na22I3
阅读全文 »

javascript异步

单线程和异步

JS单线程

JS是单线程语言,只能同时做一件事。

浏览器和node.js已支持JS启动进程,如Web Worker

JS和DOM渲染共用同一个线程,因为JS可修改DOM结构

阅读全文 »

原型和原型链

Class和继承

class

class Student {
    constructor(name, number) {
        this.name = name;
        this.number = number;
    }
    sayHi() {
        console.log(
            `Name:${this.name}, Id:${this.number}`
        )
    }
}
阅读全文 »