Skip to content

Instantly share code, notes, and snippets.

Avatar
:octocat:
contributing

beet beetcb

:octocat:
contributing
View GitHub Profile
@beetcb
beetcb / findInheritedProps.console.js
Last active Mar 12, 2022
Find Inherited props from W3C Spec.
View findInheritedProps.console.js
// Shall be excuted in W3C latest props table's webpage
// Current link https://www.w3.org/TR/CSS22/propidx.html
[...document.querySelectorAll("tbody>tr") ?? []].reduce((acc, tr) => {
const inheritance = tr.querySelector("td:nth-child(5)")
if (inheritance?.innerHTML === "yes\n") {
acc.push(tr.querySelector("td:nth-child(1)")?.innerText)
}
return acc
@beetcb
beetcb / eventLoop.js
Last active May 14, 2022
Explain event loop in JS Runtime with pseudocode
View eventLoop.js
// The if-else pattern is replaced by if-only expressions for consisitency and clarity.
// A new JavaScript program or subprogram is executed, a initial task is created
taskQueue.enqueue(initParse())
// Event Loop
while everyTick {
if !callstack.isEmpty() {continue}
taskQueue.dequeue().excuteStepsByJSEngine()
while !microTaskQueue.isEmpty() {
View migration_to_win4gpg.md
  1. Copy ~/.gnupg folder from your Mac|GNU/Linux machine to C:\Users\username\AppData\Roaming\ folder on Windows(with win4gpg installed)
  2. The name .gnupg shall be changed to gnupg
@beetcb
beetcb / downloadThumbnail.js
Last active Nov 8, 2021
Thumbnail download script for a certain platform
View downloadThumbnail.js
/**
* Thumbnail download script for a certain platform
* @github https://gist.github.com/beetcb/75b511714cec347b9362639e6ff3f923
*/
;(async () => {
// Prerequisite
const rightToggle = document.querySelector('.right-panel-toggle')
if (rightToggle.classList.contains('active')) {
rightToggle.click()
await new Promise(res=>setTimeout(2000, res))
@beetcb
beetcb / readline.js
Last active Jan 12, 2021
keyPressListener.js
View readline.js
const readline = require('readline')
const read = readline.createInterface({
input: process.stdin,
output: process.stdout,
}).input
// Prase key-by-key
read.isRaw = true
@beetcb
beetcb / realDeepClone.js
Last active Aug 29, 2020
clone a object's flags
View realDeepClone.js
// using spread expression
let [one, two, three] = [...'12', { ...'abc' }]
const obj = { one, two, three }
function realDeepClone(obj, key, clone) {
if (!key) {
clone = Object.defineProperties({}, Object.getOwnPropertyDescriptors(obj))
} else {
clone[key] = Object.defineProperties(
{},
View semantic-commit-messages.md

Semantic Commit Messages

See how a minor change to your commit message style can make you a better programmer.

Format: <type>(<scope>): <subject>

<scope> is optional

Example

@beetcb
beetcb / WhatThisIs.js
Last active Sep 6, 2020
four Steps to master this
View WhatThisIs.js
// 0.IS `addEventLister()` and `click` ... <EVENT> used?
// // => `this` === who triggered the <EVENT>
// 1.Is it an arrow function ?
// // => `this` in arrow function === `this` around(arrow function) the closest valid line
// 2.Is it `bind` `call` `apply`
// // => `this` === `this` inside those [key words method]
// 3.Is it called with prefix `.`
// // => `this` === who is in fornt of `.`
// // => no `.` added => `this` === window
const $ = console.log;
@beetcb
beetcb / GroupJson.js
Last active Aug 29, 2020
GroupJsonData.js
View GroupJson.js
const grabRickAndMorty = {
info: {
count: 591,
pages: 30,
next: 'https://rickandmortyapi.com/api/character/?page=2',
prev: null,
},
results: [
{
id: 1,
@beetcb
beetcb / ArrayDeduplication.js
Last active Aug 29, 2020
Array Deduplication
View ArrayDeduplication.js
array.filter(function (item, position) {
return array.indexOf(item) == position
})