Levon's Blog

微信: L6241425

工欲善其事必先利其器, 学习 python 自然选用了 jetbrains 家族的 Pycharm.

1. pycharm formatting on save

  1. PyCharm -> Preferences -> Plugins -> Save Actions -> install and restart ide
  2. PyCharm -> Preferences -> Save Actions -> Reformat file

1

阅读全文 »

1. MySQL存储引擎

1.1 默认存储引擎的变迁

在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。

InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一。

InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限。这也是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一。

阅读全文 »

javascript 的作用域

  • 在 javascript 中, 没有块级的作用域 (反人类), 所以为了避免误解, 最好不要在块作用域内声明变量
1
2
3
4
5
var i = 10;
if i > 1 {
var name = "levon";
}
console.log(name);//levon
  • 除了全局作用域, 只有函数才可以创建作用域
  • 作用域有上下级关系, 最大的目的就是隔离变量, 不同作用域下同名变量也不会冲突
1
2
3
4
5
6
7
8
9
var a = 10; //window.a = 10; 全局作用域

function fn(){
var a = 100; //fn 作用域

function bar(){
var a = 1000; //bar 作用域
}
}
阅读全文 »

全局上下文的准备工作:

全局环境下 javascript真正运行语句之前, 解释器会做一些准备工作:

  • 对变量的声明 (而变量的赋值, 是真正运行到那一行的时候才进行的.)
  • 对全局变量 this 的赋值
  • 对函数声明赋值, 对函数表达式声明

如何理解这三种情况呢?

  1. 对变量的声明:
1
2
console.log(a); // undefined
var a = 10;

准备工作是提前声明了变量 a, 和下面写法意思一样

1
2
3
var a; 
console.log(a); // undefined
a = 10;
阅读全文 »

在学习 javascript 的 this之前, 我们需要先明确一个重要知识:

在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。

简单记忆是,谁调用的函数,this就指向谁.

在 javascript 中, this的取值,一般分为下面几种情况。

一. 构造函数

  • new 出的对象:
1
2
3
4
5
6
7
function Foo(){
this.name = "levon";
this.age = 26;
console.log(this); // 当前构造的对象
}

var f1 = new Foo();
  • 直接运行函数(普通函数使用):
1
2
3
4
5
6
7
function Foo(){
this.name = "levon";
this.age = 26;
console.log(this); // 直接调用注意此处是 window
}

Foo();// window.Foo();
阅读全文 »

每次写快速排序,写过一次搞明白了,过一段时间写又忘记了。这次采用牛郎织女的故事,加深记忆。

  • 牛郎织女从两边往中间走见面,牛郎在左边,织女在右边. 他们选取路上最左的一个数字作为交流信号。

  • 织女先向左走,大于等于就走,小于就停。牛郎向右走,小于等于就走,大于就停,然后两人打电话交换脚下的数据。

  • 接着走,接着打电话交换数据,直到两人相遇。相遇后,把两人脚下的数据和心中的数字做交换。

  • 至此,相遇点左边都是比心中数字小,相遇点右边都是比心中数字大。

阅读全文 »

1. 云服务器带宽

1.1 定义

云服务器的带宽就像是连接服务器的“公路”的宽度

  • 公路越宽(带宽越大):同一时间内能通过的“车辆”(数据)就越多,数据传输速度就越快。
  • 公路越窄(带宽越小):同一时间内能通过的“车辆”就越少,数据传输速度就越慢,在高“车流”(高访问量)时会发生“堵车”(访问延迟、卡顿)

技术定义:带宽是指在单位时间内,网络线路能够传输的数据量的最大值。通常用 Mbps(Megabits per second,兆比特每秒)作为单位。

例如,一个 5Mbps 带宽的服务器,理论上意味着它每秒钟最多可以传输 5兆比特的数据。

阅读全文 »

Object 和 Function

首先在 javascript 中 我们要明确Object 和 Function两个概念:

  • 万物皆对象

  • 所有对象都是函数创建出来

仔细琢磨这两句话, 其实说的 Object 和 Function 是一个鸡生蛋还是蛋生鸡的问题. 为什么这么讲呢? 因为函数也是一个对象, 但对象又是函数创建出来的.

其实原型链的一切江湖恩怨都是围绕着Function和Object两大家族展开的.

阅读全文 »

“一句话”类比

图片格式就像是打包和运送货物的不同类型的箱子:

  • JPEG 像一个真空压缩袋,专门装衣服(照片),能把体积压到最小,但衣服拿出来会有点皱(质量有损)。
  • PNG 像一个带格子的精密仪器箱,专门装易碎品(Logo、图表),保护得完好无损(质量无损),但箱子本身又大又重。
  • SVG 则根本不是箱子,而是一张“如何制作”的图纸,你可以根据图纸随时用原材料制作出任意大小、完美无瑕的物品(矢量图形)。
阅读全文 »
0%