- 博客(61)
- 收藏
- 关注
原创 原型和原型链
对于对象,都有一个隐藏属性 “[[Prototype]]”,可以通过 “proto” 来访问。可以叫做对象的原型js中,可以通过原型链来实现function原型属性的继承。js中的继承[1] [你不知道的JavaScript][2] [JavaScript高级程序设计][3] [mdn。
2023-10-25 19:49:02
493
原创 记录一次ubuntu下配置ssh登录出现的问题
debug3: receive packet: type 51,Authentication refused: bad ownership or modes for directory
2023-02-24 13:07:43
987
1
原创 vim 配置主题
vim 安装主题主题文档:https://draculatheme.com/vim新建目录mkdir -p ~/.vim/pack/themes/start进入目录cd ~/.vim/pack/themes/start下载主题git clone https://github.com/dracula/vim.git dracula修改vim配置# 目录~/.vimrc~/.vim/vimrcpackadd! draculasyntax enablecolor
2022-01-11 14:36:30
487
转载 m1 直接docker mysql
https://www.jianshu.com/p/eb3d9129d880m1 直接docker pull mysql 报:MacBook-Pro ~ % docker pull mysqlUsing default tag: latestlatest: Pulling from library/mysqlno matching manifest for linux/arm64/v8 in the manifest list entriesDocker Hub上没有适用于arm64架构.
2021-09-29 16:27:07
853
原创 前端必会coding-深拷贝(deepClone)
前端必会的代码deepClone前端必会的代码deepClone两种实现方式coding利用json实现递归递归改进前端必会的代码deepClone两种实现方式曲线救国(JSON)常规思路(递归)coding利用json实现function jsonDeepClone(target) { return JSON.parse(JSON.stringify(target)); }// 测试const a = { b: { c: 1}, d: 1,}const a2 = {
2021-05-19 17:51:07
451
1
原创 前端用到的http相关知识
http 1.1http特点三次握手/四次挥手keep alive 减少tcp重复连接和断开的开销,单个连接 多次http请求管线化 同时建立多个http请求http的瓶颈请求只能从客户端开始单个连接同一时刻每次只能发送一个请求,可以串行keep alive 但不能并行每次请求都会携带请首部信息首部信息没有压缩可以选择任意数据压缩格式,且未强制解决方式ajax(减少每次需要传输的内容大小)comet(不断开连接等待http返回响应,实现推送)spdy协议, 在tcp(传输
2021-05-18 16:46:45
119
原创 关于JavaScript this指向
var value = 1;var foo = { value: 2, bar1: function () { return this.value; }, bar2: () => { return this.value; }, bar3: () => { return function() { return this.value } }, bar4: function() { return () => {
2021-05-11 21:20:42
89
原创 react hooks入门 -自定义hooks
#自定义hooks是hooks中最重要的部分#编写自定义hooksimport React, { useEffect, useState } from 'react';const useList = () => { const [list, setList] = useState(null); useEffect(() => { req('/list').the...
2020-04-21 21:34:02
4589
原创 react hooks入门 -useRef
useRef 返回一个可变的 ref 对象,其 .current 属性被初始化为传入的参数(initialValue)。返回的 ref 对象在组件的整个生命周期内保持不变。import React, { useEffect, useRef } from 'react';window.count = 0;const useRefDemo = () => { const count...
2020-04-21 21:05:51
1236
原创 react+antd后台管理系统(1)环境初始化
react后台管理系统(1)环境初始化react + antd + less + 按需加载环境配置1. 使用create-react-app创建appcreate-react-app yinbao-ams2 2. 引入antd和lessyarn add antd or npm install antd --save yarn add less less-loader...
2020-04-21 20:38:45
730
原创 react hooks入门 -useContext
Hooks全部入门useStateuseEffectcontext可以看作是上下文是什么:创建一个上下文环境,在上下文环境中保持变量怎么用:2. 创建context -> createContext3. 使用Provider圈定作用域4. 在作用域内使用useContext来使用上下文demoimport React, { createContext, useCo...
2020-04-21 20:23:38
473
原创 react hooks入门 -useEffect
useEffectuseEffect(create, deps) 在render之后执行的函数,有两个参数create类型为函数,代表触发useEffect之后执行的函数。deps类型为数组,接受一个数组,当数组内的值变化时候,触发useEffect。当deps 等于[],只会在初次执行,当没有deps参数 每次都会执行import React, { useEffect, useLay...
2020-04-20 22:09:07
817
原创 react hooks入门-useState
1. useStateimport React, { useState } from 'react';const useStateDemo = () => { const [age, setAge] = useState(1); const onClcikHandle = () => { setAge(n => n + 1); } return (...
2020-04-19 23:31:03
380
原创 shell命令笔记--用户和权限
用户新增一个用户useradd -m <username>用户默认目录 /home/删除一个用户userdel <username>删除用户及用户下home目录&email dictoryuserdel -r <username>用户组新增用户组groupadd <groupname>将用户添加到用户组...
2020-01-16 18:39:30
215
原创 最简单——最简单的实现useState
import React from 'react';import ReactDOM from 'react-dom';let _state;function myUseState(initialValue) { _state = _state || initialValue; function setState(newState) { _state = n...
2020-01-12 21:26:17
761
原创 git tag使用的使用方式
git tag使用git tag使用添加tag查看tag删除tag发布tag查看tag --> 搜索tag修改taggit tag使用添加tag# 在当前git所在节点添加一个taggit tag -a <tagname> -m "tag注释“添加tag查看结果git tag -a <tagName> -m "tag message" <&g...
2020-01-09 15:31:31
147
原创 最简单——配置最简单的webpack打包项目
最简单——配置最简单的webpack打包项目初始化项目1. 找一个空目录初始化项目yarn init -y2. 安装依赖yarn add webpack webpack-cli --save--dev3. 创建webpack 配置文件// filename: ./webpack.config.js const path = require('path');modul...
2020-01-04 12:37:39
368
原创 前端学习HTTP请求和响应
请求与响应结构请求 = 请求头 + 空行 + 请求体(可以为空)响应 = 响应头 + 空行 + 响应体请求和响应首部请求首部响应首部首部的类型HTTP首部类型请求首部(Request Header Fields)响应首部(Response Header Fields)通用首部(General Header Fields)实体首部(Entity Header Fie...
2019-12-24 23:20:13
267
原创 前端网络知识- 初识web
www(world wide web)万维网的三项基础:html 页面的文本标记语言http 文档传递协议URL 指定文档所在位置http的基础网络分层OSI七层。。。// todotcp/ip 四层应用层(客户端 http) -> 传输层(tcp) -> 网络层(ip) -> 链路层(网络)应用层(服务端 http) <- 传输层(tcp) ...
2019-12-23 22:16:27
123
原创 Jenkins实现前端自动化部署
Jenkins实现前端自动化部署背景如果没有自动化的部署过程,每次提交代码需要执行的操作有5步骤# 第一步,删除旧的文件夹rm -rf xxx# 第二步,下载更新后的文件git clone git@github.com:ococa/blog.git# 或者上传文件到服务器scp -r /User/testFile root@120.120.23.123:/root# 固定三步...
2019-07-04 23:03:49
675
原创 react, node 前端项目自动部署 pm2 部署
react, node 前端项目自动部署环境本地 macos mojave(windows 同理):pm2, git服务器 ubuntu 14:pm2, git工具代码托管github(或gitee,gitlab等等)部署工具 pm2过程配置将ssh密钥添加到github(服务器执行相同的操作)生成密钥ssh-keygen // 默认配置...
2019-06-20 15:25:16
1134
原创 git修改name和email(用户名和邮箱)
全局用户名设置修改name和emailgit config user.name = newName // 修改namegit config user.email = newEmail // 修改email查看name和emailgit config user.namegit config user.email 单个文件的用户名设置在项...
2019-06-13 15:44:30
4644
原创 git修改分支名称(本地或远程)
oldName等待修改的分支名字newName将要修改的新名字两种情况情况一:未提交过的本地分支git branch -m oldName newName情况二:修改远程分支的名字修改本地分支名字git branch -m oldName newName删除远程分支git push --delete origin oldName将修改过名字的本地分支上传到远程...
2019-06-13 15:40:27
621
原创 git新建本地分支并推送到远程
git 开发工作流程新建并切换到本地分支 devgit checkout -b dev // 新建并切换到本地分支 dev(dev是新分支名)git branch -vv // 查看分支状态切换本地分支git checkout dev // 切...
2019-06-11 16:30:36
7334
原创 JavaScript设计模式简介
JavaScript设计模式简介设计模式分类设计模式分类创建型设计模式简介:专注于处理对象创建机制包括:构造器,工厂,抽象,原型,单例,生成器constructor,factory,abstract,prototype,singleton,builder结构型设计模式简介:处理对象之间的组合,包括:装饰者,外观,享元,适配器,代理decorator,facade,fl...
2019-06-06 10:31:37
85
原创 修改git提交历史记录--邮箱 (修复github头像不显示)
改变作者信息为改变已经存在的 commit 的用户名和/或邮箱地址,你必须重写你 Git repo 的整个历史。警告:这种行为对你的 repo 的历史具有破坏性。如果你的 repo 是与他人协同工作的,重写已发布的历史是一种不好的习惯。仅限紧急情况执行该操作。使用脚本改变你 repo 的 Git 历史我们写了一段能把 commit 作者旧的邮箱地址修改为正确用户名和邮箱的脚本。注意:执行...
2019-06-02 00:38:15
1177
原创 JavaScript函数入门之定义与参数----函数系列(2)
JavaScript函数(2)函数调用函数调用两个(隐式)参数argumentsthis(函数上下文)函数调用的四种方式作为一个函数调用作为一个方法调用作为一个构造函数通过函数的apply或者call调用解决函数上下文的问题另外两种方式箭头函数bind函数调用两个(隐式)参数arguments是什么:函数调用时传递的所有参数的集合this(函数上下文)是什么:函数调用时的上下文...
2019-05-24 14:29:32
260
原创 JavaScript函数入门之定义与参数----函数系列(1)
JavaScript函数(1)定义与参数函数重要的理由函数作为对象函数的定义方式函数定义的四种方式:函数声明和函数表达式箭头函数函数的参数两个概念两个特殊的参数es6参数函数重要的理由在JavaScript对象可以做到的事情,函数几乎都可以做到,如:赋值,作为参数,作为函数返回值,动态创建,添加属性…函数也是对象,特殊之处在于函数可调用(invokable)回调函数函数作为对象可...
2019-05-22 23:52:07
102
原创 面向对象的程序设计
理解JavaScript对象JavaScript创建对象的方法// new Object()let obj1 = new Object()// 对象字面量let obj2 = { name1: "name1", sayName: function() { return this.name }}在JavaScript对象中每个属性都有4个特性, 可以用definePr...
2019-05-14 23:57:43
102
原创 Switch组件封装loading记录
背景:已经有一个具有基本功能的switch组件,但是缺少loading功能。需求需有实现组件的loading状态基本思路:理解Switch组件的基本构成:trigger + children确定loading放置位置: 因为最后loading是放置于switch上trigger位置,所以基于trigger来写在不修改html(包括render)中dom的情况下, 可以使用伪元素:a...
2019-05-14 16:28:35
969
原创 JavaScript简介
JavaScript简介简介简介掌握JavaScript:本质历史局限性广义上: JavaScript = ECMAscript(ECMA-262标准) + DOM(w3c标准) + BOM(纳入html5标准)狭义上: JavaScript = ECMAscript...
2019-05-12 01:02:47
88
原创 node 作为中间层数据流向
node中间层数据流向http --> node.router --> node.controller --> node.service --> java接口
2019-05-09 14:34:37
337
原创 JavaScript原型对象
创建一个新函数,就会根据一组规则为该函数创建一个prototype属性,这个属性是指向函数的原型对象。在默认情况下,所有的原型对象都会自动获得一个constructor(构造函数)属性,这个属性是指向prototype属性所在函数的指针。创建了自定义的构造函数之后,其原型对象默认只会取得constructor属性。其他方法都是从Object继承而来的 console.log(Person....
2018-09-28 14:10:13
133
原创 JavaScript之创建对象
创建对象的方式:工厂模式构造函数模式原型模式组合使用构造函数模式和原型模式动态原型模式继承构造函数模式稳妥构造函数模式1. 工厂模式创建一个函数,用函数来封装以特定接口创建对象的细节。 function createPerson(name, age, job) { let o = new Object(); o.name = name;...
2018-09-27 17:24:47
89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人