const example = (x => {
  if (x === 5) return "Tos";
  else return "ter";
})(5);(a + 0*k) + (a + 1*k) + (a + 2*k) + ... + (a + (N-1)*k)
= a * N + ( 0*k + 1*k + 2*k + ... (N-1)*k )
= a * N + k * (0 + 1 + 2 + ... (N-1))
= a * N + k * (N * (N - 1) / 2 )a + N*k > bvar N = 1 + Math.floor((b-a) / k);// элементы
const in_1 = document.getElementById("input_1");
const in_2 = document.getElementById("input_2");
const btn = document.getElementById("btn");
// функция проверки и вкл/выкл кнопки
const check = () => btn.disabled =
  in_1.value.length < 3  ||  in_2.value.length < 3;
// проверять при изменении инпутов
in_1.addEventListener('input', check);
in_2.addEventListener('input', check);
// проверить разок в самом начале
check();// исходное определение:
const flip(f) => (a, b) => f(b, a);
// можно развернуть:
function flip(sourceFunction) {
  return function(a, b) {
    return sourceFunction(b, a);
  }
}flip() принимает аргументом функцию. И возвращает новую функцию.function flip(f) {
  // ура, нам дали какую-то исходную функцию!
  var sourceFunction = f; // для красоты запишем её в свою переменную
  // можно и вызвать её при желании:  sourceFunction(4, 5)
  // но пока не будем. Рано. Ждём.
  // сделаем новую, хакерскую функцию
  var hackerFunc = function(a, b) {
    // тут пусть всю работу делает старая функция
    var result = sourceFunction(a, b);
    // стоп. Не то. Надо же аргументы местами поменять
    var result = sourceFunction(b, a);
    // хакерский результат
    return result;
  } // конец определения хакер-функции
  
  // вернём теперь хакер-функцию:
  return hackerFunc;
}<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/ >
		<title>Smoothed Radar Chart</title>
		<!-- Google fonts -->
		<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,300" rel='stylesheet' type='text/css'>
		<link href='https://fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>
		<!-- D3.js -->
		<script src="https://d3js.org/d3.v4.min.js" charset="utf-8"></script>
		<script src="https://d3js.org/d3-path.v1.min.js" charset="utf-8"></script>
		<script src="radarChart.js" charset="utf-8"></script>
		<style>
			body {
				font-family: 'Open Sans', sans-serif;
				font-size: 11px;
				font-weight: 300;
				fill: #242424;
				text-align: center;
				text-shadow: 0 1px 0 #fff, 1px 0 0 #fff, -1px 0 0 #fff, 0 -1px 0 #fff;
				cursor: default;
			}
			.legend {
				font-family: 'Raleway', sans-serif;
				fill: #333333;
			}
		</style>
	</head>
	<body>
		<div class="radarChart" style="display: inline-flex;"></div>
		<div class="radarChart2" style="display: inline-flex;"></div>
		<script>
			//////////////////////////////////////////////////////////////
			//////////////////////// Set-Up //////////////////////////////
			//////////////////////////////////////////////////////////////
			var margin = { top: 50, right: 80, bottom: 50, left: 80 },
				width = Math.min(700, window.innerWidth / 4) - margin.left - margin.right,
				height = Math.min(width, window.innerHeight - margin.top - margin.bottom);
			//////////////////////////////////////////////////////////////
			////////////////////////// Data //////////////////////////////
			//////////////////////////////////////////////////////////////
			var data = [
				{ name: 'Allocated budget',
					axes: [
						{axis: 'Sales', value: 42},
						{axis: 'Marketing', value: 20},
						{axis: 'Development', value: 60},
						{axis: 'Customer Support', value: 26},
						{axis: 'Information Technology', value: 35},
						{axis: 'Administration', value: 20}
					]
				},
				{ name: 'Actual Spending',
					axes: [
						{axis: 'Sales', value: 50},
						{axis: 'Marketing', value: 45},
						{axis: 'Development', value: 20},
						{axis: 'Customer Support', value: 20},
						{axis: 'Information Technology', value: 25},
						{axis: 'Administration', value: 23}
					]
				}
			];
			//////////////////////////////////////////////////////////////
			////// First example /////////////////////////////////////////
      ///// (not so much options) //////////////////////////////////
			//////////////////////////////////////////////////////////////
			var radarChartOptions = {
			  w: 290,
			  h: 350,
			  margin: margin,
			  levels: 5,
			  roundStrokes: true,
				color: d3.scaleOrdinal().range(["#26AF32", "#762712"]),
				format: '.0f'
			};
			// Draw the chart, get a reference the created svg element :
			let svg_radar1 = RadarChart(".radarChart", data, radarChartOptions);
			//////////////////////////////////////////////////////////////
			///// Second example /////////////////////////////////////////
			///// Chart legend, custom color, custom unit, etc. //////////
			//////////////////////////////////////////////////////////////
			var radarChartOptions2 = {
			  w: 290,
			  h: 350,
			  margin: margin,
			  maxValue: 60,
			  levels: 6,
			  roundStrokes: false,
			  color: d3.scaleOrdinal().range(["#AFC52F", "#ff6600"]),
				format: '.0f',
				legend: { title: 'Organization XYZ', translateX: 100, translateY: 40 },
				unit: '$'
			};
			// Draw the chart, get a reference the created svg element :
			let svg_radar2 = RadarChart(".radarChart2", data, radarChartOptions2);
		</script>
	</body>
</html>const re = /jsInterface.event\("user=(\d+);level/;
let playerId;
const scripts = document.querySelectorAll('script');
for (let i = 0; i < scripts.length; i++) {
  const match = scripts[i].innerText.match(re);
  if (match) {
    playerId = +match[1];
    break;
  }
}
console.log(playerId)  // 4180878как можно улучшить данный код
function anagrams(word, words) {
    const sample = word.split('').sort().join('');
    return words.filter(function (e) {
        return e.split('').sort().join('') === sample;
    })
}function anagrams(word, words) {
    const length = word.length;
    const sample = word.split('').sort().join('');
    return words.filter(w => w.length === length)
        .filter(function (e) {
            return e.split('').sort().join('') === sample;
        })
}// write the function isAnagram
var isAnagram = function(test, original) {
  const length = original.length;
  if (length !== test.length) return false;
  const A = test.toLowerCase();
  const B = original.toLowerCase();
  const dict = {};
  for (let i=0, char, pos; i < length; i++) {
    char = A[i];
    pos = B.indexOf(char, +dict[char]);
    if (!~pos) return false;
    dict[char] = pos + 1;
  }
  return true;
};extends (расширять) родительский интерфейс:<?php
interface a
{
    public function foo();
}
interface b extends a
{
    public function baz(Baz $baz);
}ModelInterface, который бы класс Model воплощал.ArticleInterface, наследующий ModelInterface:interface ArticleInterface extends ModelInterface
{
  // доп. методы
}
class Article implements ArticleInterface
{
}class Article extends Model implements ArticleInterface<?php
interface ModelInterface
{
  public function get();
  public function all();
}
interface ArticleInterface extends ModelInterface
{
  public function publish();
}
class Model implements ModelInterface
{
  public function get()
  {
    return "get";
  }
  public function all()
  {
    return "all";
  }
}
class Article extends Model implements ArticleInterface 
{
  public function publish() {
    return "published!";
  }
}
$article = new Article();
echo $article->get();
echo $article->publish();