Skip to content

Instantly share code, notes, and snippets.

View justjavac's full-sized avatar
😷

迷渡 justjavac

😷
View GitHub Profile
@justjavac
justjavac / GetOptimizationStatus.md
Last active March 31, 2024 06:30
V8 %GetOptimizationStatus

%GetOptimizationStatus return a set of bitwise flags instead of a single value, to access the value, you need to take the binary representation of the returned value. Now, for example, if 65 is returned, the binary representation is the following:

(65).toString(2).padStart(12, '0');
// 000001000001

Each binary digit acts as a boolean with the following meaning:

@justjavac
justjavac / gc-track.js
Last active June 29, 2022 11:43
JS中怎样判断某个对象是否被GC回收? https://www.zhihu.com/question/345974014/answer/826236205
// 需要通过 node --allow-natives-syntax 参数运行
const { GCSignal, consumeSignals, trackGarbageCollection } = require("gc-signals");
function fn() {
// 创建两个局部变量
const a1 = new GCSignal(1);
const a2 = new GCSignal(2);
global.tmp = a2; // 将 a2 变量赋值给全局变量
const o = {};
trackGarbageCollection(o, 3); // 跟踪局部变量 o 的 GC 状态,标识为 3
@justjavac
justjavac / img2txt.js
Last active December 9, 2021 06:46
img2txt:基于canvas的图片转字符画工具
var cv = document.getElementById('cv');
var c = cv.getContext('2d');
var txtDiv = document.getElementById('txt');
var fileBtn = document.getElementById("up-button");
var img = new Image();
img.src = 'a.jpg';
img.onload = init; // 图片加载完开始转换
fileBtn.onchange = getImg;
// 根据灰度生成相应字符
@justjavac
justjavac / getAddressList_QQ.js
Last active October 18, 2020 07:27
获取QQ群通讯录
var ids = document.querySelectorAll(".member_id");
var names = document.querySelectorAll(".member_name");
var output = "", length = ids.length;
for(var i=0; i<length; i++){
output += ids[i].innerHTML.slice(1,-1) + ":" + names[i].innerHTML + "\n";
}
console.log(output);
@justjavac
justjavac / instructions.md
Last active August 23, 2019 01:10 — forked from Timer/instructions.md
使用 npm <= 5.2 创建新项目

在 npm 5.1 或者更低版本中,不存在 npx 命令。因此,你必须全局安装 create-next-app

npm install -g create-next-app

然后再运行:

create-next-app
// JavaScript 字符串编码使用 UTF-16
"💩".length === 2;
"💩" === "\u{1F4A9}"; // es6
"💩" === "\uD83D\uDCA9"; // es5
// 同一个编码可能使用不同的码位
"ò" === "ò"; // ❎
"ò" === "\xF2"; // ✅
"ò" === "o\u0300"; // ✅
"o\u0300".normalize("NFC") === "\xF2"; // ✅ es6 提供了 normalize 函数
@justjavac
justjavac / wtf.js
Last active June 15, 2018 12:42
wtf
function wtf() {
( [ {} ] )
[ ( {} ) ]
{ ( [] ) }
}
{"sig":"32a34af259b837df4e02abb1a71bfefe6de6637a393fd3b6194a3578ede5fcb28306c9e1da1ba29ee71c3450331e960a946823525cef5eb8a8ada9a32de65f080","msghash":"f2f38ac068f4440b69248eea0bf2d8be85aa6eb9f233ca92239e28d721cbe188"}
@justjavac
justjavac / destructuring_assignment.js
Created January 29, 2018 05:21
对象解构赋值 wtf
let reslt, x;
reslt = [...null]; // TypeError: null is not iterable
reslt = [...undefined]; // TypeError: undefined is not iterable
reslt = {...null}; // {}
reslt = {...undefined}; // {}
if (x in null) {}
// TypeError: Cannot use 'in' operator to search for 'undefined' in null