My JavaWeb notes
# Web 基础概念简介
# #1、服务器与客户端
# #①线下的服务器与客户端
# #②线上的服务器与客户端
# #③客户端的各种形式
# #[1] PC 端网页
# #[2] 移动端
# #[3] Iot 设备
# #④服务器的各种形式
点我查看完整内容
# #2、服务器端应用程序
我们要开发的就是服务器端应用程序。
# #3、业务
项目中的功能就是业务。
# #4、请求和响应
# #①发生在饭馆的请求和响应
# #②项目中的请求和响应
# #5、项目的逻辑构成
请求:请求是项目中最基本的逻辑单元,就像万事万物都由原子构成
举例:点超链接跳转到注册页面
功能:一个功能包含很多个请求
举例:注册用户功能
请求 1:点超链接跳转到注册页面
请求 2:发送请求获取短信验证码
请求 3:检查用户名是否可用
请求 4:提交表单完成注册
模块:一个模块包含很多功能
举例:用户信息管理模块
功能 1:用户注册功能
功能 2:用户登录功能
功能 3:个人中心 —— 账户安全功能
功能 4:个人中心 —— 账户绑定功能
功能 5:个人中心 —— 收货地址功 ...
Commonly used git commands
# 常用 Git 命令清单
# Git Commit message 和 Change log 编写指南
# Commitizen 的安装和使用
# 新建代码库
# 在当前目录新建一个Git代码库
$ git init
# 新建一个目录,将其初始化为Git代码库
$ git init [project-name]
# 下载一个项目和它的整个代码历史
$ git clone [url]
# 配置
Git 的设置文件为 .gitconfig ,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
# 显示当前的Git配置
$ git config --list
# 编辑Git配置文件
$ git config -e [--global]
# 设置提交代码时的用户信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
# 增加 / 删除文件
# 添加指定文件到暂存区
$ git add [file1] [file2] ...
# ...
Javascript Interview Summary
# JavaScript 面试知识点总结
本部分主要是笔者在复习 JavaScript 相关知识和一些相关面试题时所做的笔记,如果出现错误,希望大家指出!
# 目录
1. 介绍 js 的基本数据类型。
2. JavaScript 有几种类型的值?你能画一下他们的内存图吗?
3. 什么是堆?什么是栈?它们之间有什么区别和联系?
[4. 内部属性 [Class]] 是什么?
5. 介绍 js 有哪些内置对象?
6. undefined 与 undeclared 的区别?
7. null 和 undefined 的区别?
8. 如何获取安全的 undefined 值?
9. 说几条写 JavaScript 的基本规范?
10. JavaScript 原型,原型链? 有什么特点?
11. js 获取原型的方法?
12. 在 js 中不同进制数字的表示方式
13. js 中整数的安全范围是多少?
14. typeof NaN 的结果是什么?
15. isNaN 和 Number.isNaN 函数的区别?
16. Array 构造函数只有一个参数值时的表现?
17. 其他值到字符串的转换规则?
...
Code readibility
# 一、可读性的重要性
编程有很大一部分时间是在阅读代码,不仅要阅读自己的代码,而且要阅读别人的代码。因此,可读性良好的代码能够大大提高编程效率。
可读性良好的代码往往会让代码架构更好,因为程序员更愿意去修改这部分代码,而且也更容易修改。
只有在核心领域为了效率才可以放弃可读性,否则可读性是第一位。
# 二、用名字表达代码含义
一些比较有表达力的单词:
单词
可替代单词
send
deliver、dispatch、announce、distribute、route
find
search、extract、locate、recover
start
launch、create、begin、open
make
create、set up、build、generate、compose、add、new
使用 i、j、k 作为循环迭代器的名字过于简单,user_i、member_i 这种名字会更有表达力。因为循环层次越多,代码越难理解,有表达力的迭代器名字可读性会更高。
为名字添加形容词等信息能让名字更具有表达力,但是名字也会变长。名字长短的准则是:作用域越大,名字 ...
My Mobile Applications notes
# 移动端
[TOC]
# 一、流式布局
目标:
能够知道移动 web 的开发现状
能够写出标准的 viewport
能够使用移动 web 的调试方法
能够说出移动端常见的布局方案
能够描述流式布局
能够独立完成京东移动端首页
# 1、移动端基础
# 1-1 浏览器现状
pc 端常见浏览器:
360 浏览器、谷歌浏览器、火狐浏览器、QQ 浏览器、百度浏览器、搜狗浏览器、IE 浏览器。
移动端常见浏览器:
UC 浏览器、QQ 浏览器、欧朋浏览器、百度手机浏览器、360 安全浏览器、谷歌浏览器、搜狗浏览器、猎豹浏览器以及其他杂牌浏览器。
国内的 uc 和 QQ,百度等手机浏览器都是根据 webkit 修改过来的内核,国内尚无自主研发的内核,就像国内的手机操作系统都是基于 Android 修改开发的一样。
总结:兼容移动端主流浏览器,处理 webkit 内核浏览器即可。
# 1-2 手机屏幕现状
移动端屏幕尺寸非常多,碎片化严重
andoid 设备有多种分辨率:480*800,480 * 854,720 * 1280, 1080 * 1920 等,还有传说的 2k,4k 屏。
近年来 ...
Javascript interview questions
# 1. JavaScript 基础
# 1.1 执行上下文 / 作用域链 / 闭包
理解 JavaScript 中的执行上下文和执行栈
JavaScript 深入之执行上下文栈
一道 js 面试题引发的思考
JavaScript 深入之词法作用域和动态作用域
JavaScript 深入之作用域链
发现 JavaScript 中闭包的强大威力
JavaScript 闭包的底层运行机制
我从来不理解 JavaScript 闭包,直到有人这样向我解释它…
破解前端面试(80% 应聘者不及格系列):从闭包说起
# 1.2 this/call/apply/bind
JavaScript 基础心法 ——this
JavaScript 深入之从 ECMAScript 规范解读 this
前端基础进阶(七):全方位解读 this
面试官问:JS 的 this 指向
JavaScript 深入之 call 和 apply 的模拟实现
JavaScript 基础心法 —— call apply bind
面试官问:能否模拟实现 JS 的 call 和 apply 方法
回味 JS 基础:call ...
My Javascript ES6-11 notes
# ECMASript 6 新特性
# 1. let 关键字
let 关键字用来声明变量,使用 let 声明的变量有几个特点:
不允许重复声明 (var 可以)
块级作用域 (ES6 才有的,只要是 let 声明的变量出了任何代码块 {} 就无效了,要是是 var 出了代码块 {} 有时还能用)
ES5-> 全局作用域,函数作用域,eval 里面作用域 (这个也是!)
ES6-> 全局作用域,函数作用域,eval 里面作用域,还有__块级作用域__
{
var a = 3
}
console.log(a); // 3
用 var 在全局作用域中,相当于没有这个包裹他的块级作用域,就相当于给 window 加了个属性,所以照样可以访问到
{
let a = 3
}
console.log(a); // 报错
let 块级作用域,只有代码块中做效
当然像 if, for, while 等等等那些代码块都是有自己的块级作用域
不存在变量提升 (也是跟 var 不一样,var 允许变量提升)
不影响作用 ...
My Echarts not
# ECharts
[TOC]
# 可视化面板介绍
应对现在数据可视化的趋势,越来越多企业需要在很多场景 (营销数据,生产数据,用户数据) 下使用,可视化图表来展示体现数据,让数据更加直观,数据特点更加突出
# Echarts 介绍
常见的数据可视化库:
D3.js 目前 Web 端评价最高的 Javascript 可视化工具库 (入手难)
ECharts.js 百度出品的一个开源 Javascript 数据可视化库
Highcharts.js 国外的前端数据可视化库,非商用免费,被许多国外大公司所使用
AntV 蚂蚁金服全新一代数据可视化解决方案 等等
Highcharts 和 Echarts 就像是 Office 和 WPS 的关系
ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari 等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
# Echarts 使用步骤
下载并引入 ec ...
My Algorithm and Data Structure Notes
#
# 稀疏数组和队列
# 1、稀疏数组 [SPARSE ARRAY]
个人总结:
如果一个数组里面存有大量同样的东西,比如说同一个数字,可以考虑用稀疏数组来存这个数组
稀疏数组只记录那些不一样的数字 (value) 应该存在在本来的位置 (which row, which column, etc…)
所以只是记录那些不一样的数字的值以及位置信息,这样不需要存那些大量的重复的值
稀疏数组的第一个 element 应该存着本来数组的 row number and column number 以及有多少他要保存不一样的数字的数量,这样就足以靠着这个稀疏数组得到跟原本数组描述的一样的效果
二维数组 => 稀疏数组
首先遍历二维数组找出不一样的数并且总共有几个不一样的数存到 sum
创建稀疏数组 int[] sparseArr = new int[sum+1][3]
sum+1 是因为这个稀疏数组第一个 element 保存的是原本数组的 row number, rolumn number, 以及 sum 然后接下来的 elements 才是每个不一样的 ...
My jQuery notes
# jQuery
[TOC]
JavaScript 库
封装了函数或者方法的一种 “集合”
其中的 jQuery 快速操作 DOM
jQuery API 速查文档
# 一、jQuery
# 优点
# 二、jQuery 的基本使用
# 1.jQuery 的入口函数
可以像原生 js 把 script 写到 html 元素之前,有两种方法:
第一种方式
$(document).ready(function(){
//$('div').hide(); //想要执行的代码这
}) //js写在前还正常执行的第一种写法
第二种方式
$(function(){
//$('div').hide(); //想要执行的代码这
}) //js写在前还正常执行的推荐写法
# 2.jQuery 的顶级对象 $
是 jQuery 的别称
是 jQuery 的顶级对象,相当于原生 js 的 windows
其实 $(...) 跟 jQuery(...)一样
# ...