常用Git命令清单
常用Git命令清单一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。
下面是一些常用 Git 命令清单。几个专用名词的译名如下。
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
一、新建代码库12345678# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url]
二、配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
123456789# 显示当前的Git配置$ git config --list# 编辑Git配置文件$ git config -e [--global]# 设置提交代码时的用户信息$ git config [--global] user.name "[name]"$ git config [--g ...
GitHub加速下载项目的方法
GitHub加速下载项目的方法国内在github上克隆项目总是异常的慢,据我多次克隆观察,下载速度最快就20k/s左右,特别是在克隆比较大的项目时简直慢得无法忍受!下面介绍一种加载克隆项目的方法。
利用码云来转接做下载加速
首先你得有一个 码云 的账号
登录码云之后在页面右上角的加号选择从GitHub/GitLab导入项目
选择从URL导入,粘贴从GitHub复制来的仓库地址,然后导入,这个导入过程一般是很快的。
从码云克隆刚导入的这个项目,克隆速度会快很多,网速好的能达到几兆每秒(具体速度就看你的网速了,吐槽一下我家网速,总在关键时刻显示”视频加载中”….)
另外要注意的一点,克隆下来的项目关联的是码云的仓库,如果你需要关联github仓库需要更改远程仓库。
123git remote -v # 查看关联的远程仓库git remote rm <仓库名> # 删除远程仓库git remote add <仓库名> <远程仓库地址> # 关联远程仓库,仓库名一般使用origin
这个方法适合用于克隆比较大的项目,如果克隆小项目,20 ...
Vue大合集
脚手架文件结构├── node_modules
├── public
│ ├── favicon.ico: 页签图标
│ └── index.html: 主页面
├── src
│ ├── assets: 存放静态资源
│ │ └── logo.png
│ │── component: 存放组件
│ │ └── HelloWorld.vue
│ │── App.vue: 汇总所有组件
│ │── main.js: 入口文件
├── .gitignore: git版本管制忽略的配置
├── babel.config.js: babel的配置文件
├── package.json: 应用包配置文件
├── README.md: 应用描述文件
├── package-lock.json:包版本控制文件
关于不同版本的Vue
vue.js与vue.runtime.xxx.js的区别:
vue.js是完整版的Vue,包含:核心功能 + 模板解析器。
vue.runtime.xxx.js是运行版的Vue,只包含:核心功能;没有模板解析器。
因为vu ...
文字在一行或多行时超出显示省略号
文字在一行或多行时超出显示省略号一行超出显示省略123overflow: hidden;white-space: nowrap;text-overflow: ellipsis;
两行(多行)超出显示省略号123456overflow: hidden;white-space: normal;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;
显示的行数由line-clamp样式的值决定。
JS判断是否显示了省略号有时候我们需要知道是否已经溢出,显示了省略号,可以用到clientHeight和scrollHeight的知识:
1234567let cHeight = noWrapDiv.clientHeight;let sHeight = noWrapDiv.scrollHeight;if (sHeight > cHeight) { console.log("已经溢出显示省略号");} el ...
JS获取和修改url参数
JS获取和修改url参数获取url参数123456789101112/** * 获取url里的参数 * @param arg 参数名 * @returns */function getURLString(arg) { var reg = new RegExp("(^|&)" + arg + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null;}
修改url参数12345678910111213141516171819202122/** * url地址修改 * @param url 待修改url * @param arg 修改的参数名 * @param arg_val 修改的具体值 * @returns {String} */ ...
new命令原理
new命令原理 使用new命令时,它后面的函数依次执行下面的步骤:
创建一个空对象,作为将要返回的实例对象。
将这个空对象的原型,指向构造函数的prototype属性。
将这个空对象赋值给函数内部的this关键字。
开始执行构造函数内部的代码。
如果构造函数内有返回值且为对象类型,则返回该对象,否则返回上面创建的实例对象。
12345678910111213141516171819202122232425262728293031323334353637383940414243// 构造函数function Person(name,age){ this.name = name this.age = age}// 自定义_newfunction _new() { // 将 arguments 对象转为数组 var args = [].slice.call(arguments); // 取出构造函数 var constructor = args.shift(); // 创建一个空对象,继承构造函数的 prototype 属性 va ...
多种数组去重性能对比
多种数组去重性能对比测试模板1234567891011121314151617181920212223// 创建一个 1 ~ 10w 的数组,Array.from为ES6语法let arr1 = Array.from(new Array(1000000), (x, index) => { return index})let arr2 = Array.from(new Array(500000), (x, index) => { return index + index})let start = new Date().getTime()console.log('开始数组去重')// 数组去重function distinct(a, b) { let arr = a.concat(b); // 去重方法}console.log('去重后的长度', distinct(arr1, arr2).length)let end = new Date().getTime()cons ...
将一维数组按指定长度转为二维数组
将一维数组按指定长度转为二维数组将一维数组按指定长度转为二维数组
12345678910111213141516function pages(arr, len) { const pages = [] arr.forEach((item, index) => { const page = Math.floor(index / len) if (!pages[page]) { pages[page] = [] } pages[page].push(item) }) return pages}// 使用const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]console.log(pages(arr, 3)) // [[1, 2, 3], [4, 5, 6], [7, 8, 9]]console.log(pages(arr, 8)) // [[1, 2, 3, 4, 5, 6, 7, 8], [9]]
...
判断是否为移动端浏览器
判断是否为移动端浏览器123456const flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);if(flag){ // 移动端} else { // PC端}
Mixin
MixinJavaScript 语言的设计是单一继承,即子类只能继承一个父类,不允许继承多个父类。这种设计保证了对象继承的层次结构是树状的,而不是复杂的网状结构。
但是,这大大降低了编程的灵活性。因为实际开发中,有时不可避免,子类需要继承多个父类。举例来说,“猫”可以继承“哺乳类动物”,也可以继承“宠物”。
各种单一继承的编程语言,有不同的多重继承解决方案。比如,Java 语言也是子类只能继承一个父类,但是还允许继承多个界面(interface),这样就间接实现了多重继承。Interface 与父类一样,也是一个类,只不过它只定义接口(method signature),不定义实现,因此又被称为“抽象类”。凡是继承于 Interface 的方法,都必须自己定义实现,否则就会报错。这样就避免了多重继承的最大问题:多个父类的同名方法的碰撞(naming collision)。
JavaScript 语言没有采用 Interface 的方案,而是通过代理(delegation)实现了从其他类引入方法。
123456789var Enumerable_first = function () ...