前端娱乐圈

技术杂记


  • Home

  • Archives

常用服务启动脚本

Posted on 2018-01-02 | In Linux |

常用服务脚本命令

  1. mysql

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // login mysql
    mysql -u root -p

    // start mysql server
    mysql.server start

    // stop mysql server
    mysql.server stop

    // restart mysql server
    mysql.server restart

    // reload mysql server
    mysql.server reload
  2. nginx

    1
    2
    3
    4
    5
    6
    7
    8
    9
    // config nginx
    sudo vim /usr/local/etc/nginx/nginx.conf

    // start nginx server
    cd /usr/local/bin
    sudo ./nginx

    // reload nginx server
    sudo /usr/local/bin/nginx -s reload
  3. redis

    1
    2
    3
    4
    5
    6
    // login redis
    redis-cli

    // start redis server
    cd /usr/local/etc
    redis-server redis.conf
  4. vagrant

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // login vagrant
    cd ~/projects/vip/vagrant
    vagrant ssh

    // start vagrant server
    cd /Users/huiqiang.lin/projects/vip/vagrant
    vagrant up

    // reload vagrant server
    cd /Users/huiqiang.lin/projects/vip/vagrant
    vagrant reload
  5. ssh远程登录

    1
    ssh -p port username@ip

new.target属性

Posted on 2017-12-23 | In javascript |

new.target属性使用场景

new.target属性允许你检测函数或构造方法是否是通过new运算符被调用的。在通过new运算符被初始化的函数或构造方法中,new.target返回一个指向构造方法或函数的引用。在普通的函数调用中,new.target 的值是undefined。

描述

  1. new.target语法由一个关键字”new”,一个点,和一个属性名”target”组成。通常”new.”的作用是提供属性访问的上下文,但这里”new.”其实不是一个真正的对象。不过在构造方法调用中,new.target指向被new调用的构造函数,所以”new.”成为了一个虚拟上下文。
  2. new.target属性是一个可以被所有函数访问的元属性。在箭头函数中,new.target指向外围函数的new.target。

参考链接

原生Object.assign()用法

Posted on 2017-12-18 | In JavaScript |

Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

1
2
3
4
5
6
// Deep Clone
let obj1 = { a: 0 , b: { c: 0}};
let obj3 = JSON.parse(JSON.stringify(obj1));
obj1.a = 4;
obj1.b.c = 4;
console.log(JSON.stringify(obj3)); // { a: 0, b: { c: 0}}

参考链接

读ECMAScript 6 笔记

Posted on 2017-12-15 | In JavaScript |

Class的基本语法

  1. ES5的构造函数对应ES6的类的构造方法
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    class Point {
    // ...
    }
    typeof Point // "function"
    Point === Point.prototype.constructor // true

    class Point {
    constructor() {
    // ...
    }

    toString() {
    // ...
    }

    toValue() {
    // ...
    }
    }

    // 等同于

    Point.prototype = {
    constructor() {},
    toString() {},
    toValue() {}
    }

ES5与ES6的继承实质

  1. ES5的继承,实质是先创建子类的实例对象this,然后再将父类的方法添加到this上面(Parent.apply(this))。
  2. ES6的继承机制完全不同,实质是先创造父类的实例对象this(所以必须先调用super方法),然后再调用子类的构造函数修改this。

父类的静态方法也会被子类继承

1
2
3
4
5
6
7
8
9
10
11
class A {
static hello() {
console.log('hello ES6');
}
}

class B extends A {
// do something
}

B.hello(); // hello ES6

判断一个类是否继承另一个类的方法

1
Object.getPrototypeOf(B) === A  // true

super关键字

  1. 可以当做函数使用:
    第一种情况,super作为函数调用时,代表父类的构造函数。ES6 要求,子类的构造函数必须执行一次super函数。
  1. 也可以当做对象使用。
    第二种情况,super作为对象时,在普通方法中,指向父类的原型对象;在静态方法中,指向父类。

for…in & for …of 循环的区别

  1. for…in 语句以原始插入顺序迭代对象的可枚举属性。
  2. for…of 语句遍历可迭代对象定义要迭代的数据。

参考链接

将C/C++代码编译成JS代码

Posted on 2017-12-12 | In JavaScript |

将C/C++代码编译成JS代码

参考链接
asm.js 和 Emscripten 入门教程-阮一峰

SSL/TLS 原理阅读笔记

Posted on 2017-12-11 | In SSL/TLS |

SSL/TLS 原理学习总结

1. 作用

使用HTTP通信的三大风险:

(1) 窃听风险:第三方可以劫取通信内容。

(2) 篡改风险:第三方可以修改通信内容。

(3) 冒充风险:第三方可以伪装成通信对方的身份进行通信。

2. 参考链接

图解SSL/TLS协议-阮一峰

SSL/TLS协议运行机制-阮一峰

Ubuntu git报错,提示被代理到127.0.0.1:8888

Posted on 2017-12-09 | In git |

某天开机后git pull origin dev 提示fatal,被代理到172.0.0.1:8888

ubuntu 系统直接 vim ~/.bashrc

修改配置:

1
2
3
4
5
6
#export http_proxy='127.0.0.1:8888'
#export https_proxy='127.0.0.1:8888'
export http_proxy=''
export https_proxy=''
export ftp_proxy=''
export socks_proxy=''

修改保存后可能还没生效,需要执行如下命令:

1
source ~/.bashrc

Linux source命令

source 命令也称“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销重新登录。

JS中变量名和函数名重名

Posted on 2017-11-29 | In JavaScript |

JS中变量名和函数名重名

1
2
3
4
5
var a=100;
function a() {
  console.log(a);
}
a();

1)函数声明会置顶
2)变量声明也会置顶
3)函数声明比变量声明更置顶:(函数在变量上面)
4)变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
5)声明过的变量不会重复声明

iOS9版本里js函数名与函数参数名一样有bug

Posted on 2017-11-29 | In JavaScript |

iOS9 浏览器或者微信里面对象方法名和参数名一样有bug

在128店庆中使用scroller滚动逻辑组件pixijs精灵渲染库和tweenjs做2楼惊喜之城动画时,碰到tweenjs速率库在iOS9浏览器或者微信里面有bug,准确说应该是iOS9的问题。
1
2
3
4
5
6
7
8
9
10
11
12
TWEEN.Tween.prototype = {
// other code
yoyo: function yoyo(yoyo) {
// do some things
},
easing: function easing(easing) {
// do some things
},
interpolation: function interpolation(interpolation) {
// do some things
}
};

修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
TWEEN.Tween.prototype = {
// other code
yoyo: function (yoyo) {
// do some things
},
easing: function (easing) {
// do some things
},
interpolation: function (interpolation) {
// do some things
}
};

HTTP常用状态码

Posted on 2017-11-12 | In HTTP |

HTTP常见状态码

  1. 400:HTTP 400 Bad Request 响应状态码表示由于语法无效,服务器无法理解该请求。 客户端不应该在未经修改的情况下重复此请求。
  2. 401:状态码 401 Unauthorized 代表客户端错误,指的是由于缺乏目标资源要求的身份验证凭证,发送的请求未得到满足。这个状态码会与 WWW-Authenticate 首部一起发送,其中包含有如何进行验证的信息。这个状态类似于 403, 但是在该情况下,依然可以进行身份验证。
  3. 403:状态码 403 Forbidden 代表客户端错误,指的是服务器端有能力处理该请求,但是拒绝授权访问。这个状态类似于 401,但是进入该状态后,不能再继续进行验证。该访问是永久禁止的,并且与应用逻辑密切相关(例如不正确的密码)。
  4. 404:状态码 404 Not Found 代表客户端错误,指的是服务器端无法找到所请求的资源。返回该响应的链接通常称为坏链(broken link)或死链(dead link),它们会导向链接出错处理(link rot)页面。404 状态码并不能说明请求的资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回 410 (Gone) 而不是 404。
  5. 408:响应状态码 408 Request Timeout 表示服务器想要将没有在使用的连接关闭。一些服务器会在空闲连接上发送此信息,即便是在客户端没有发送任何请求的情况下。服务器应该在此类响应中将 Connection 首部的值设置为 “close”,因为 408 意味着服务器已经决定将连接关闭,而不是继续等待。 这类响应出现的比较频繁,源于一些浏览器——例如 Chrome, Firefox 27+, 或者 IE9 等——使用 HTTP 协议中的预连接机制来加速上网体验。同时应该注意到,某些服务器会直接关闭连接,而不发送此类消息。
  6. 499:499, client has closed connection。代表客户端主动断开了连接,一般是服务端处理时间太长了,客户端等不了就断开了还有一种情况就是有人攻击,故意消耗服务端资源。
  7. 500:在 HTTP 协议中,500 Internal Server Error 是表示服务器端错误的响应状态码,意味着所请求的服务器遇到意外的情况并阻止其执行请求。这个错误代码是一个通用的“全方位”响应代码。通常服务器管理员对于类似于 500 这样的错误会更加详细地记录相关的请求信息来防止以后同样错误的出现。
  8. 502:502 Bad Gateway 是一种HTTP协议的服务器端错误状态代码,它表示扮演网关或代理角色的服务器,从上游服务器中接收到的响应是无效的。Gateway (网关)在计算机网络体系中可以指代不同的设备,502 错误通常不是客户端能够修复的,而是需要由途径的Web服务器或者代理服务器对其进行修复。
  9. 503:503 Service Unavailable 是一种HTTP协议的服务器端错误状态代码,它表示服务器尚未处于可以接受请求的状态。通常造成这种情况的原因是由于服务器停机维护或者已超载。注意在发送该响应的时候,应该同时发送一个对用户友好的页面来解释问题发生的原因。该种响应应该用于临时状况下,与之同时,在可行的情况下,应该在 Retry-After 首部字段中包含服务恢复的预期时间。缓存相关的首部在与该响应一同发送时应该小心使用,因为 503 状态码通常应用于临时状况下,而此类响应一般不应该进行缓存。
  10. 504:504 Gateway Timeout 是一种HTTP协议的服务器端错误状态代码,表示扮演网关或者代理的服务器无法在规定的时间内获得想要的响应。Gateway (网关)在计算机网络体系中可以指代不同的设备,504 错误通常不是在客户端可以修复的,而是需要由途径的Web服务器或者代理服务器对其进行修复。
123
Luxlu(boylufeng@gmail.com)

Luxlu(boylufeng@gmail.com)

HTML CSS Javascript Node.js HTTP

22 posts
6 categories
6 tags
© 2019 Luxlu(boylufeng@gmail.com)
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4