人生苦短,ES6我只想现在就了解他
从零开始的 ECMAScript 6 不完全攻略,轻扫盲向
0. 块级作用域
let变量在不同块级作用域中不影响:
1234for (let i = 1; i < 3; i++) { console.log(i);}console.log(i); // 此行将报错: ReferenceError 未定义
重复声明变量会导致无法编译:
12let a = 1;let a = 2; // 此行将报错
一次声明后无法再次赋值的const类型:
12const PI = 3.1415926; // 必须在声明时就立刻赋值PI = 2; // 此行将报错,const类型值不可改变
const声明并非不可修改,而是不可重新赋值
12345const k = [] // 引用类型依然可以修改k.b = 1;k.a = 2;console.log(k); /& ...
记一次将js模块发布到npm包过程
什么是npm?npm是nodejs上集成的原第三方包管理工具
0. 注册npm账号https://www.npmjs.com/
1. 查看npm镜像,如果之前更换过,需要重置npm config get registry
1.1 重置镜像路径(墙内的同学都习惯用淘宝镜像,这将不能访问npm账号)npm config set registry https://registry.npmjs.org
1.2 之后有必要可以再切回来npm config set registry https://registry.npm.taobao.org
2. 创建你的npm包在项目的git仓库下执行:
npm init
根据提示输入npm包信息,package.json创建完毕。
name:项目的包名,先在npm官网搜索下,或者npm install你想用的包名,以免名称已存在。version:版本号,以后更新也要用到。entry point:也就是项目main入口,默认根目录的index.js,调用这个包首先访问的文件。其他选项不是很重要,后面也可以直接修改package.json文件。
3. 在 ...
前端三剑客各种知识点梳理汇总 1
CSS JS 常见总集篇
掌握html语义化,避免通篇div扎实css基础 1. 提升可访问性; 2. SEO; 3. 结构清晰,利于维护;
1. css页面布局题目一:高度已知,三栏布局,左右栏固定宽度,中间自适应
1. float浮动布局
2. absolute绝对定位布局,左右固定好width,左侧设置left:0,中间设置left与right为左右width宽度,右侧设置right:0
3. flex布局,左右宽度固定,中间设置flex:1
4. table表格布局,左右设置宽度固定
5. grid网格布局
---- 课题延伸 ----
优缺点 / 比较
1. 缺点:float脱离文档流,需要处理清除浮动
优点:兼容性好
2. 缺点:子元素都将脱离文档流,使用性比较差
优点:快捷,不容易出问题
3. 缺点:存在兼容性问题
优点:较新型解决方案,解决以上两种布局的不足
4. 缺点:存在历史诟病问题
优点:使用简单,兼容性好
5. 缺点:可能存在兼容问题
优点:较新型解决方案,可实现多种复杂布局, ...
ElasticSearch小试牛刀:各种查询语句整理
部分笔记 不完全指北 ElasticSearch版本更迭很快,所作记录可能有些偏差
查看所有索引GET /_cat/indices?v
创建一个索引demoPUT one_index
{
"mappings": {
"type_name": {
"properties": {
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
...
Logstash-input-jdbc实现与MySql解耦同步数据到ES
随着业务数据的增长,Mysql压力增大,单表储存会严重影响读写的高效性,为解决这一问题,分表分库和历史数据迁移等解决方案就应运而生了,但在某些场景下这些解决方案还是存在问题,例如聚合查询等。而ElasticSearch作为实时的分布式搜索和分析引擎,能够快速查询和处理海量数据,高可用可扩展,通过ES,可以轻松做到保证查询效率的聚合查询,已有不少大型互联网企业成功使用案例,是值得一试的技术。
经过调研,实现与Mysql同步工具基本有以下几种:
logstash-input-jdbc:官方推荐的插件,Ruby编写的
go-mysql-elastic:Go编写,国内作者
python-mysql-replication: Python编写
elasticsearch-jdbc:Java编写
elasticsearch-river-mysql:听说已经很少维护
0. 安装 ElasticSearch参考 上一篇文章 此处不做详述。
1. 下载 Logstash官网链接: Download Logstash 以6.1.1版本为例:
wget https://artifacts.elas ...
分布式搜索引擎ElasticSearch安装小记
ElasticSearch(下面简称ES)是一个开源的、基于Apache Lucene的、分布式的实时分析搜索引擎。其设计理念就是可以从不用的数据源获取数据,进行实时的检索和分析。
利用ES可以减少数据库压力和数据复杂度,不用在原表大量添加索引,且可以使用廉价机器平行扩展性能,具有轻量高效的特点。
0. Java安装及环境变量配置
ElasticSearch基于Lucene封装了一套REST API,Lucene是Java开源库,所以需要在服务器(或本地)配置好Java环境,所需版本是jdk1.8以上。
java -version
echo $JAVA_HOME
1. 下载安装Elasticsearch官方下载地址及安装方法:Download Elasticsearch
以6.1.1版本为例:
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.zip
$ unzip elasticsearch-6.1.1.zip
$ cd elasticsearch-6.1.1/ ...
Git实用操作整理记录
记录某些可能不常用会忘记但实用的操作
0. 为当前版本打上 taggit tag -a v1.0 -m 'version 1.0 code'
1. 查看所有 taggit tag
2. 推送到远程仓库git push origin --tags
2.1 重新修改 commit 备注git commit --amend -m "新的提交信息"
3. 删除远程分支和 tag
在 Git v1.7.0 之后,可以使用这种语法删除远程分支:
git push origin --delete <branchName>
删除 tag 这么用:
git push origin --delete tag <tagname>
否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:
git push origin :<branchName>
推送一个空 tag 到远程 tag:
git tag -d <tagname>
git push origin :refs/tags/<t ...
vue相关笔记及思考
<img src="{{url}}" alt=""> 效果能出来,但是会报一个404错误
<img v-bind:src="url" alt=""> 效果可以出来,不会发404错误
补充中…
随手解决了但原理还未完全搞懂的奇怪问题:
如此绑定图片不使用require会报404::src="userInfo.avater||require('../../assets/images/default-avater.png')"
vue响应式原理是基于es5的Object.defineProperty实现的
关于模板:{ { msg } } 数据更新模板变化
{ { *msg } } 数据只绑定一次
{ { { msg } } ...
Mac中截图快捷键及截图名称配置
Command + Shift + 3 截取全屏
Command + Shift + 4 鼠标变成十字,点击选取屏幕区域截图
截图完成自动保存在桌面,文件名比较长,而且带有中文,此时可以自定义截图后保存的名称:
打开“终端”,粘贴以下文本并回车:
defaults write com.apple.screencapture name “Snapshot”
这里的Snapshot就是代替“屏幕截图”几个字的文本,可以更改。
同样的再执行以下文本以让配置生效:
killall SystemUIServer
打开“系统偏好设置”,选择“语言与地区”,点击窗口右下“高级..”,切换上面tab至“时间”,将“正午前”跟“正午后”的中文定义修改为“AM”、“PM”。
之后保存在桌面的屏幕截图名称就为全英文了。
Github pages + hexo 优雅地打造免费个人静态网页博客
前言:近期觉得写博客这件事必须提到日程了,一方面养成做笔记做总结的习惯,同时也能做些生活记录,提高写作能力,其实有很多不错的博客平台都可以用,自然曝光率可能也比较高,但是咱好歹也是程序员,博客网站不自己搭建一个感觉就有点没逼格,但这样至少需要域名空间和博客程序,对于写博客这个出发点似乎成本有点高。
后来发现很多大牛的个人博客都在用hexo,折腾了一下觉得简单又实用,markdown编写git发布,静态网页速度快,稳定性高,还利于搜索引擎收录,对于博客程序来说这一切足够了。听说还可以集成vue、angular等。
1. 准备工作
必要环境及工具的下载:
Node.js 安装后也会安装好 npm 包管理工具。
Git 用于提交代码的工具,mac下安装了xcode则忽略这步。
需要一个Github账号,使用它提供的 Pages 功能就可以拥有一个静态网站空间,而且是免费的。国内的 Coding 也能做到同样的事,这里我还是选择github作为例子,原理都一样按需选择。
申请个自己的域名(非必须)
2. 安装HEXO博客程序
mac下打开终端,如果嫌cd命令找目录麻烦,可以打 ...