Skip to content

Instantly share code, notes, and snippets.

View JiLiZART's full-sized avatar
💭
I may be slow to respond.

Nikolay Kost JiLiZART

💭
I may be slow to respond.
View GitHub Profile
@JiLiZART
JiLiZART / isStringBalanced.js
Created August 7, 2017 21:12
Проверка валидности скобок ( и [
const isB = (str) => {
const strArr = str.split('');
const stack = [];
for (let char of strArr) {
if (char.startsWith('[') || char.startsWith('(')) {
stack.push(char);
} else {
// Первый символ строки не открывающаяся скобка, значит уже не верно
@JiLiZART
JiLiZART / function_invocation.js
Created June 18, 2017 20:17 — forked from myshov/function_invocation.js
11 Ways to Invoke a Function
console.log(1);
(_ => console.log(2))();
eval('console.log(3);');
console.log.call(null, 4);
console.log.apply(null, [5]);
new Function('console.log(6)')();
Reflect.apply(console.log, null, [7])
Reflect.construct(function(){console.log(8)}, []);
Function.prototype.apply.call(console.log, null, [9]);
Function.prototype.call.call(console.log, null, 10);
const If = (cond) => (truly) => (falsy) => [truly, falsy][!cond + 0]()
const result = If(false)(() => 'true')(() => 'false')
enum Event {
enum app: String {
case install = "app install"
case launch = "app launch"
}
enum list: String {
case created = "list created"
case deleted = "list deleted"
case refreshed = "list refreshed"
var loading = {},
loaded = {},
head = document.getElementsByTagName('head')[0],
runCallbacks = function (path, type) {
var cbs = loading[path], cb, i = 0;
delete loading[path];
while (cb = cbs[i++]) {
cb[type] && cb[type]();
}
},

@kangax's ES6 quiz, explained

@kangax created a new interesting quiz, this time devoted to ES6 (aka ES2015). I found this quiz very interesting and quite hard (made myself 3 mistakes on first pass).

Here we go with the explanations:

Question 1:
(function(x, f = () => x) {
var loading = {},
loaded = {},
head = document.getElementsByTagName('head')[0],
runCallbacks = function(path, type) {
var cbs = loading[path], cb, i = 0;
delete loading[path];
while(cb = cbs[i++]) {
cb[type] && cb[type]();
}
},
/**
* @module input_type_tel
*/
modules.define(
'input',
['i-bem__dom', 'jquery'],
function (provide, BEMDOM, jQuery, Input) {
/* borschik:include:../../libs/intl-tel-input/build/js/intlTelInput.js */
@JiLiZART
JiLiZART / page.js
Created July 11, 2016 15:58
bem ym page modal
/**
* @module Page
*/
modules.define(
'page',
['i-bem__dom', 'BEMHTML', 'jquery' 'modal'],
function (provide, BEMDOM, BEMHTML, $, Modal) {
/**
* @exports
function sort(nums)
{
if (!nums.length) return nums;
var a = [], b = [], p = nums[0];
for (var i = 1; i < nums.length; i++)
{
if (nums[i] < p)
a[a.length] = nums[i];