My Javascript notes
# JavaScript 基础
[TOC]
# 前言
工欲善其事,必先利其器,为了提高开发效率,选用 VScode。
管理 - 设置 - 常用设置 - 字体 Consolas, ‘微软雅黑 Light’, monospace
Chinese 汉化 Vscode
Prettier 格式化代码 (缩进 2 格)
Auto Rename Tag 同步修改标签
HTML CSS SupportHtml 文档的 CSS 支持
HTML Snippets 自动输入 Html 标签
JavaScript (ES6) code snippetsES6 语法支持
open in browser 浏览器打开
JS 是一个脚本语言 ->JS 的目标程序是以普通文本的形式保存,所以可以用记事本打开.(不像 java 是个编译语言他的 class 文件无法用记事本打开)
JS 运行在浏览器当中,浏览器有执行 JS 代码的内核.
(Java 运行在 JVM 当中)
# 编程基础
# 编程基础
「程序运行」
打开某个程序时,先从硬盘中把程序的代码加载到内存中
CPU 执行内存中的代码
注意:之所以要 ...
Mysql design protocol
# MySQL 数据库设计规范
# 目录
1. 规范背景与目的
2. 设计规范
2.1 数据库设计
2.1.1 通用命名约定
2.1.2 库
2.1.3 表
2.1.4 字段名
2.1.5 字段数据类型优化
2.1.6 索引设计
2.1.7 分库分表、分区表
2.1.8 字符集
2.1.9 程序层 DAO 设计建议
2.1.10 一个规范的建表语句示例
2.2 SQL 编写
2.2.1 DML 语句
2.2.2 多表连接
2.2.3 事务
2.2.4 排序和分组
2.2.5 线上禁止使用的 SQL 语句
# 1. 规范背景与目的
MySQL 数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用 MySQL 数据库的时候需要遵循一定规范,扬长避短。本规范旨在帮助或指导 RD、QA、OP 等技术人员做出适合线上业务的数据库设计。在数据库变更和处理流程、数据库表设计、SQL 编写等方面予以规范,从而为公司业务系统稳定、健康地运行提供保障。
# 2. 设计规范
# 2.1 数据库设计
以下所有规范会按照【高危】、【强制】、【建议 ...
My Javascript Advanced notes
# 1. 面向对象导读
面向过程 POP 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。
面向对象 OOP 是把事务分解成为一个个对象,然后由对象之间分工与合作。面向对象更贴近我们的实际生活,可以使用面向对象描述现实世界事物。但是事物分为具体的事物和抽象的事物
面向对象的思维特点:
抽取(抽象)对象共用的属性和行为组织 (封装) 成一个类 (模板)
对类进行实例化,获取类的对象
两者比较:
面向过程
优点:性能比面向对象高,适合跟硬件联系很紧密的东西,
缺点:不易维护、不易复用、不易扩展。
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护,
缺点:性能比面向过程低。
举个栗子:将大象装进冰箱,面向对象做法:先找出对象,并写出这些对象的功能
大象对象 进去
冰箱对象 打开 关闭
使用大象和冰箱的功能
# 1.1 ES6 模块化
node.js 遵循了 CommonJS 的模块化规范。其中:
导入其它模块使用 requ ...
Model,View,Controller
# 应用代码分层
我们在写应用里的代码时根据代码负责的不同任务讲其分为五大块 Controller , Repository , Service , Model , View 。
Model 数据模型, 数据模型面向的是数据层,在这里我们只关心数据表的问题,在 Model 中应该只定义数据与对象映射相关的属性和方法如:表名、主键名、是否让 laravel 管理时间字段等属性,以及模型关联、查询作用域等方法。其他与数据表无关的业务逻辑都不应出现在这里。
Repository 数据逻辑访问层,由它来对接 Model 层,理论上有一个 Model 就会有一个相应的 Repository ,除了做最基础的数据访问外与数据相关的逻辑也放在这里,如果一个相对复杂的数据应用到了 Repository 对应的 Model 外其他 Model 的数据,不要直接去访问相关 Model ,应该由 Repository 调用相关 Model 的 Repository 。 Repository 是具体 interface 的实现,比如做订单相关的业务,应该有 OrderReposit ...
Computer Network Interview Questions
# 1. 参考模型
# 1. OSI 参考模型 七层
Open System Interconnection
物理层 利用物理传输介质为数据链路层提供物理连接。传递的数据是比特流,0101010100。
数据链路层 定义通过通信媒介互连的设备之间传输的规范;首先,把比特流封装成数据帧的格式,对 0、1 进行分组。电脑连接起来之后,数据都经过网卡来传输,而网卡上定义了全世界唯一的 MAC 地址。然后再通过广播的形式向局域网内所有电脑发送数据,再根据数据中 MAC 地址和自身对比判断是否是发给自己的。
网络层 寻址和路由; IP ; 广播的形式太低效,为了区分哪些 MAC 地址属于同一个子网,网络层定义了 IP 和子网掩码,通过对 IP 和子网掩码进行与运算就知道是否是同一个子网,再通过路由器和交换机进行传输。
传输层 为上层协议提供端到端的可靠传输;TCP、UDP 有了网络层的 MAC+IP 地址之后,为了确定数据包是从哪个进程发送过来的,就需要端口号,通过端口来建立通信
会话层 建立、断开和维护通信链接
表示层 数据格式转换、数据压缩和数据加密 HTML、M ...
20 Frontend Interview Quesitions
# 这儿有 20 道大厂面试题等你查收
# 1. new 的实现原理是什么?
查看解析
new 的实现原理:
创建一个空对象,构造函数中的 this 指向这个空对象
这个新对象被执行 [[原型]] 连接
执行构造函数方法,属性和方法被添加到 this 引用的对象中
如果构造函数中没有返回其它对象,那么返回 this,即创建的这个的新对象,否则,返回构造函数中返回的对象。
# 2. 如何正确判断 this 的指向?
查看解析
如果用一句话说明 this 的指向,那么即是:谁调用它,this 就指向谁。
但是仅通过这句话,我们很多时候并不能准确判断 this 的指向。因此我们需要借助一些规则去帮助自己:
this 的指向可以按照以下顺序判断:
# 全局环境中的 this
浏览器环境:无论是否在严格模式下,在全局执行环境中(在任何函数体外部)this 都指向全局对象 window ;
node 环境:无论是否在严格模式下,在全局执行环境中(在任何函数体外部),this 都是空对象 {} ;
# 是否是 new 绑定
如果是 new 绑定,并且构造函数中 ...
45 Promise Frontend Interview Quesitions
# 前言
你盼世界,我盼望你无 bug 。Hello 大家好!我是霖呆呆!
(是不是封面和标题取的好就能把你骗进来 😁)
时隔一周不见,霖呆呆我终于更新文章了,小声嘀咕说想我了…
呸…
咳咳,其实我一直在隐忍准备来一发大的好不。
这不,这一章节就是整理了 45 道 Promise 的笔试题让大家爽一爽 😁。
其实想要写一篇关于 Promise 的文章是因为之前在写别的文章的时候被评论区的一名读者无情的嘲讽了👎:
"作者的Promise一定很烂"
所以编写这么一个主题霖呆呆我不是为了证明什么,而是想说:
"说我烂我可以学啊"
另外查了很多关于 Promise 的面试题,有些一上来就很难的,有些连着几篇题目都是一样的,还有一些比较好的文章介绍的都是一些硬知识点。
这篇文章是一篇比较纯的 Promise 笔试文章,是我自己在做题的时候,根据题目想要的考点来反敲知识点,然后再由这个知识点编写从浅到深的的题目。
所以你可以看到题目中有一些基础题,然后再从基础题慢慢的变难,如果你看着感觉这段位配不上你的话,请答应我坚持看下去,会越来越难的…
...
30 Vue Frontend Interview Quesitions
# 前言
本文以前端面试官的角度出发,对 Vue 框架中一些重要的特性、框架的原理以问题的形式进行整理汇总,意在帮助作者及读者自测下 Vue 掌握的程度。本文章节结构以从易到难进行组织,建议读者按章节顺序进行阅读,当然大佬级别的请随意。希望读者读完本文,有一定的启发思考,也能对自己的 Vue 掌握程度有一定的认识,对缺漏之处进行弥补,对 Vue 有更好的掌握。 文章最后一题,欢迎同学们积极回答,分享各自的经验~~~
辛苦整理良久,还望手动点赞鼓励~
github 地址为:github.com/fengshi123/…,汇总了作者的所有博客,也欢迎关注及 star ~
# 1、说说你对 SPA 单页面的理解,它的优缺点分别是什么?
SPA( single-page application )仅在 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS。一旦页面加载完成,SPA 不会因为用户的操作而进行页面的重新加载或跳转;取而代之的是利用路由机制实现 HTML 内容的变换,UI 与用户的交互,避免页面的重新加载。
优点:
用户体验好、快,内容的改变不需要重新加载整个 ...
50 Frontend Interview Quesitions
# 1. 写一个 mySetInterVal (fn, a, b), 每次间隔 a,a+b,a+2b 的时间,然后写一个 myClear,停止上面的 mySetInterVal
公司:头条
分类:JavaScript
答案 & 解析
# 2. 合并二维有序数组成一维有序数组,归并排序的思路
公司:头条
分类:算法
答案 & 解析
# 3. 斐波那契数列
公司:腾讯、CVTE、微软
分类:算法
答案 & 解析
# 4. 字符串出现的不重复最长长度
公司:腾讯
分类:算法
答案 & 解析
# 5. 介绍 chrome 浏览器的几个版本
公司:滴滴
分类:网络 & 安全
答案 & 解析
# 6.React 项目中有哪些细节可以优化?实际开发中都做过哪些性能优化
公司:滴滴、掌门一对一、网易、有赞、沪江、喜马拉雅、酷家乐、快手
分类:React
答案 & 解析
# 7.react 最新版本解决了什么问题 加了哪些东西
公司:滴滴
分类:React
答案 & 解析
# 8. 说一下 Http 缓存策略,有什么区别,分别解决了什么问题 ...
Alibaba Interview Questions (transferred)
# 阿里面试考点梳理
# 第一部分:计算机基础
互联网大厂都相当重视程序员的基本功,也就是计算机基础知识。一个程序员能走多远、爬多高,很大程度上取决于基本功是否扎实。对于应届生而言,大都比较缺乏实战项目经验,虽然会有一定的项目经验,但这些课程设计、实验室项目的质量与公司实际的项目有着巨大的差距。因此,基础知识便成为面试考量的一大重点,而且基础扎实的程序员可塑性比较高,做什么都能比较容易快速上手。
计算机基础包含如下几门课程,相信计算机专业的同学肯定都已经学过。但互联网公司面试的考点可能和你们期末考试的考点有一些不同,我都做了整理。
# 1. 计算机网络
大学课程中的计算机网络一般都按照 OSI 七层参考模型介绍,然而由于互联网公司的特性,他们更加关注日常开发所涉及到的传输层和应用层,所以需要重点掌握传输层和应用层中所涉及到的所有知识点。
【考点】
传输层的作用
传输层复用和分用的含义
传输层和网络层的区别
UDP 协议的特点
UDP 协议的报文结构
TCP 协议的特点
TCP 协议的报文结构
TCP 三次握手过程
TCP 四次挥手过程
TCP 可靠传输是如何实现的
停止等待协议
滑动 ...