Codelet Keep code simple stupid

学习Wireshark

安装 在Arch Linux上安装Wireshark只需要一条命令sudo yaourt -S wireshark-qt,软件安装好之后 开始抓包,结果抛出错误信息:couldn't run dumpcap ... Permission Denied,查看Wiki得知 是用户组的问题,需要将用户添加进wireshark组,执行命令sudo gpasswd -a $USER wireshark, 重新登录即可

构建V8

V8 简介 Google V8是一款高性能的开源JavaScript解释器,就像现实中的大排量V8发动机一样,V8强力的驱动着 Web技术的方方面面,从最初的Google Chrome浏览器,到Node.js,再到MongoDB,V8已成为许多项目的 重要组成部分。 就像所有的开源C/C++工程一样,构建是第一步,下面就记录一下V8的构建方法 环境 我是在Ubuntu 16.04下编译的,V8默认会自动下载clang,这里就不列出了编译器版本了 安装 depot_tools V8所用的构建系统是GN,用于生成Ninja的构建文件,它的功能类似于CMake,用于跨平台多目标构建,GN...

VS Code Chrome debug

最近发现了一个vscode插件——vscode-chrome-debug,通过它可以直接在编辑器里调试代码,为浏览器、 Node.js、Python甚至C++提供了统一的调试方式,下面记录一下踩过的坑 添加配置 通过Add Configuration命令添加的默认配置如下 { "type": "chrome", "request": "launch", "name": "Launch Chrome", "url": "http://localhost:8080", "webRoot": "${workspaceFolder}" } 遇到的问题 开启服务器之后,...

JavaScript绑定函数

在JS中,我们经常需要指定函数的this值,通常我们会用call/apply这样的函数为this绑定值, 除此之外函数还可以通过bind方法绑定this,现在就来深入分析一下bind函数。 先看下面的例子 function test () {} test.call(obj, 0, 1) test.apply(obj, [0, 1]) var fn = test.bind(obj, 0, 1) fn() 可见,不同于call/apply在调用时指定this,bind完成绑定后会返回一个函数,当调用此函数时 原函数才会执行,这种方式很适合为回调函数绑定上下文,因此在Web环境中被...

JavaScript扩展/剩余语法

ES6又新增了一种运算符——...,称为扩展/剩余操作符,实际上这个操作符有两种语义,分别用于数组或 对象的属性填充以及将函数实参转化成数组形式。 还是老规矩,根据Babel生成的代码来分析语义: let arr = [1, 2, 3] let dst = [0, ...arr, 4] 会生成以下代码 var arr = [1, 2, 3]; var dst = [0].concat(arr, [4]); 除了扩展数组,对象也可以使用扩展语法 let obj = { b: 'bbb' } let dst = { a: 'aaa', ...obj, c: ...