Жигалов Сергей
$ npm install
# <какой-то вывод...>
// package.json
{
dependencies: {
jscs: "^2.2.1"
}
}
$ npm run lint
# <список ошибок>
// package.json
{
scripts: {
lint: "jscs ."
}
}
// Valid
x = Boolean(y);
// Invalid
x = !!y;
// Valid
} else {
// Invalid
}
else {
// Valid
var x = "hello";
function y() {}
// Invalid
var x = "hello";
function y() {}
// Valid
var x = 1;
var y = 2;
// Invalid
var x = 1,
y = 2;
// Valid
if (cond) {
// Invalid
if (cond)
{
// Valid
x = !y;
// Invalid
x = ! y;
// Valid
if (true) {
doSomething();
}
// Invalid
if (true) {doSomething();}
// Valid
if (x) {
x++;
}
// Invalid
if (x) x++;
// Valid
var x = 'x';
// Invalid
var x = "x";
npm install
npm run lint
function add(x, y) {
return x + y;
}
function add(x, y) {
return x + y;
}
add(2, 3); // 5
function lazy() {
}
lazy(); // undefined
function asIs(x){
return x;
}
asIs(); // undefined
function myMin(a, b) {
return a < b ? a : b;
}
myMin(2, 7); // 2
myMin(13, 7); // 7
myMin(13); // undefined
function myMin(a, b) {
if (b === undefined) {
return a;
}
return a < b ? a : b;
}
myMin(13); // 13
function myMin(a, b) {
b = b || Infinity;
return a < b ? a : b;
}
myMin(2, 7); // 2
myMin(13, 7); // 7
myMin(-13); // -13
function getSalary(rate, days) {
days = days || 22;
return rate * days;
}
getSalary(3, 10); // 30
getSalary(1); // 22
getSalary(2, 0); // 44 ???
BMI({ m: 60, h: 1.7 }) // 20.7
function BMI(params) {
var h = params.h;
return params.m / (h * h);
}
function myMin(a, b) {
return a < b ? a : b;
}
myMin(7, 5, 1); // 5
function myMin(a, b) {
var min = a < b ? a : b;
var c = arguments[2];
return c < min ? c : min;
}
myMin(2, 3, 4); // 2
myMin(20, 3, 4); // 3
myMin(20, 30, 4); // 4
function addMany() {
var sum = 0;
var length = arguments.length;
for (var i = 0; i < length; i += 1) {
sum += arguments[i];
}
return sum;
}
addMany(2, 3, 4); // 9
var args = [].slice.call(arguments);
Math.min(3, 5, 2, 6); // 2
var numbers = [3, 5, 2, 6];
Math.min(numbers); // NaN
var numbers = [3, 5, 2, 6];
Math.min.apply(null, numbers); // 2
Math.pow(base, exponent);
Math.pow(2, 4); // 16
Math.pow(2, 10); // 1024
var binPow = Math.pow.bind(null, 2);
binPow(4); // 16
binPow(10); // 1024
var numbers = [3, 5, 9];
numbers.map(function (item) {
return item * 2;
}); // [6, 10, 18]
function add(x, y) {
return x + y;
}
add(2, 3); // 5
function add(x, y) {
return x + y;
}
function add(x, y) {
return x + y;
}
add(2, 3); // 5
var add = function (x, y) {
return x + y;
};
add(2, 3);
// TypeError:
// add is not a function
var add = function (x, y) {
return x + y;
};
var add = function hidden() {
return typeof hidden;
}
typeof add; // 'function'
typeof hidden;
// ReferenceError:
// hidden is not defined
add(); // 'function'
var factorial = function inner(n) {
return (n === 1) ?
1 : n * inner(n - 1);
}
factorial(3); // 6
var add = new Function('x', 'y', 'return x + y');
add(2, 3);
function greet() {
var text = 'Привет';
console.log(text); // 'Привет'
}
console.log(text);
// ReferenceError:
// text is not defined
function greet() {
var text = 'Привет';
function nested() {
console.log(text); // 'Привет'
}
}
function greet() {
var text = 'Привет';
function nested() {
var text = 'Добрый день';
console.log(text); // 'Добрый день'
}
console.log(text); // 'Привет'
}
function greet() {
if (true) {
var text = 'Привет';
}
console.log(text); // 'Привет'
}
immediately-invoked function expression
function greet() {
(function () {
var text = 'Привет';
}());
console.log(text);
// ReferenceError:
// text is not defined
}
(function () {
}());
(function () {
})();
!function () {
}();
void function () {
}();
function greet() {
if (true) {
let text = 'Привет';
}
console.log(text);
// ReferenceError:
// text is not defined
}