Мангин Александр
int x = 10;
int x = 10;
print x; // ?!;
int x = 10;
print x; // 10;
print x; // ?!;
int x = 10;
print x; // NameError: name 'x'
// is not defined;
int x = 10;
if (true) {
int answer = 2 + 2;
}
if (true) {
int answer = 2 + 2;
}
// ?!
if (true) {
int answer = 2 + 2;
}
// NameError: name 'answer'
// is not defined;
var x = 10;
console.log(x); // ?!
var x = 10;
console.log(x); // 10
console.log(x); // ?!
var x = 10;
console.log(x); // undefined
var x = 10;
if (true) {
var x = 10;
}
console.log(x); // ?!
if (true) {
var x = 10;
}
console.log(x); // !?
console.log(x); // undefined
if (true) {
var x = 10;
}
console.log(x); // 10
function getAnswer() {
var x = 21;
return x * 2;
}
console.log(x); // ?!
function getAnswer() {
var x = 21;
return x * 2;
}
console.log(x); // ?!
console.log(x);
// Uncaught ReferenceError:
// x is not defined
function getAnswer() {
var x = 21;
return x*2;
}
console.log(x);
// Uncaught ReferenceError:
// x is not defined
function sum (a, b) {
return a + b;
}
sum(2, 2); // 4
function sum () {
var a = arguments[0];
var b = arguments[1];
return a + b;
}
sum(2, 2); // 4
var a = 1; // 1
(function () { // 2
var b = 1; // 3
}()); // 4
var c = 1; // 5
(function () { // 6
var d = 1; // 7
}()); // 8
var e = 1; // 9
var a = 1; // *
(function () { // 2
var b = 1; // 3
}()); // 4
var c = 1; // 5
(function () { // 6
var d = 1; // 7
}()); // 8
var e = 1; // 9
var a = 1; // * a=1;c;e;
(function () { // 2
var b = 1; // 3
}()); // 4
var c = 1; // 5
(function () { // 6
var d = 1; // 7
}()); // 8
var e = 1; // 9
var a = 1; // 1
(function () { // 2
var b = 1; // *
}()); // 4
var c = 1; // 5
(function () { // 6
var d = 1; // 7
}()); // 8
var e = 1; // 9
var a = 1; // 1
(function () { // 2
var b = 1; // * a=1;b=1;c;e;
}()); // 4
var c = 1; // 5
(function () { // 6
var d = 1; // 7
}()); // 8
var e = 1; // 9
var a = 1; // 1
(function () { // 2
var b = 1; // 3
}()); // 4
var c = 1; // *
(function () { // 6
var d = 1; // 7
}()); // 8
var e = 1; // 9
var a = 1; // 1
(function () { // 2
var b = 1; // 3
}()); // 4
var c = 1; // * a=1;c=1;e;
(function () { // 6
var d = 1; // 7
}()); // 8
var e = 1; // 9
var a = 1; // 1
(function () { // 2
var b = 1; // 3
}()); // 4
var c = 1; // 5
(function () { // 6
var d = 1; // *
}()); // 8
var e = 1; // 9
var a = 1; // 1
(function () { // 2
var b = 1; // 3
}()); // 4
var c = 1; // 5
(function () { // 6
var d = 1; // * a=1;c=1;e;d=1;
}()); // 8
var e = 1; // 9
var a = 1; // 1
(function () { // 2
var b = 1; // 3
}()); // 4
var c = 1; // 5
(function () { // 6
var d = 1; // 7
}()); // 8
var e = 1; // *
var a = 1; // 1
(function () { // 2
var b = 1; // 3
}()); // 4
var c = 1; // 5
(function () { // 6
var d = 1; // 7
}()); // 8
var e = 1; // * a=1;c=1;e=1;
var a = 1; // 1
(function root() { // 2
var b = 2; // 3
(function child() { // 4
var c = 3; // 5
}()); // 6
}()); // 7
var a = 1; // 1
(function root() { // 2
var b = 2; // 3
(function child() { // 4
var c = 3; // 5
}()); // 6
}()); // 7
global
require('index.js');
Math.abs(-1);
global.require('index.js');
global.Math(-1);
var key = 42;
console.log(global.key); // ?!
var key = 42;
console.log(global.key);
// undefined
key = 42;
key = 42;
console.log(global.key); // !?
key = 42;
console.log(global.key); // 42
key = 42;
// global.key = 42;
window
var x = 1;
y = 2;
console.log(window.x); // !?
console.log(window.y); // !?
var x = 1;
y = 2;
console.log(window.x); // 1
console.log(window.y); // 2
var x = 1;
y = 2;
// window.y = 2
function createPi() {
PI = 3.14;
var twoPI = PI * 2;
}
console.log(window.PI); //!?
console.log(window.twoPI); //!?
function createPi() {
PI = 3.14;
var twoPI = PI * 2;
}
console.log(window.PI);
console.log(window.twoPI);
// 3.14
// undefined
function createPi() {
PI = 3.14;
// window.PI = 3.14;
var twoPI = PI * 2;
}
console.log(window.PI);
console.log(window.twoPI);
// 3.14
// undefined
var student = {
name: 'Alex',
isStudy: true
};
delete student.isStudy;
console.log(student); // ?!
{
name: 'Alex'
}
var a = ['a', 'b', 'c'];
var b = ['c', 'b', 'd'];
var map = {};
for(var i = 0; i < a.length; i++ ) {
map[a[i]] = true;
}
for(var i = 0; i < b.length; i++ ) {
delete map[b[i]];
}
var x = 1;
y = 2;
delete x;
delete y;
console.log(x); // ?!
console.log(y); // ?!
var x = 1;
y = 2;
delete x;
delete y;
console.log(x); // 1
console.log(y); // undefined
function calculateAnswer () {
var text = 'title';
var result = text + ':' + 42;
}
var result = calculateAnswer();
var result;
function calculateAnswer () {
var text;
var result;
text = 'title';
result = text + ':' + 42;
}
result = calculateAnswer();
var input = 42;
if (input === 42) {
var result = 'Ты прав!';
} else {
var result = 'Ты заблуждаешься!';
}
var result, input;
input = 42;
if (input === 42) {
result = 'Ты прав!';
} else {
result = 'Ты заблуждаешься!';
}
var f = function () {
console.log(1);
}
function f () {
console.log(2);
}
function f () {
console.log(1);
}
f = function () {
console.log(2);
}
if (...) {
function f() {
console.log(1);
}
} else {
function f() {
console.log(2);
}
}
function f() {
console.log(2);
}
if (...) {
// empty
} else {
// empty
}
if (...) {
var f = function () {
console.log(1);
}
} else {
var f = function () {
console.log(2);
}
}
var f;
if (...) {
f = function () {
console.log(1);
}
} else {
f = function () {
console.log(2);
}
}
var squareFuncs = [];
for(var i=0; i < 10; i++) {
squareFuncs.push(function () {
return i*i;
});
}
for(var i=0; i < 10; i++) {
squareFuncs[i]();
}
var squareFuncs = [];
for(var i=0; i < 10; i++) {
var square = i*i;
squareFuncs.push(function () {
return square;
});
}
for(var j=0; j < 10; j++) {
squareFuncs[i](); // ?!
}
var squareFuncs = [];
for(var i=0; i < 10; i++) {
var square = i*i;
squareFuncs.push(function () {
return square;
});
}
for(var j=0; j < 10; j++) {
squareFuncs[i](); // 100 * 10
}
var squareFunc, i, j, square;
squareFunc = [];
for(i=0; i < 10; i++) {
square = i*i;
squareFunc.push(function () {
return square;
});
}
for(j=0; j < 10; j++) {
squareFunc[i]();
}
var squareFunc = [];
for(var i=0; i < 10; i++) {
(function (i) {
squareFunc.push(function () {
return i*i;
});
}(i));
}
var squareFunc, i;
squareFunc = [];
for(var i=0; i < 10; i++) {
(function (i) {
squareFunc.push(function () {
return i*i;
});
}(i));
}
var squareFunc, i, j;
squareFunc = [];
function createFunc(i) {
return function () {
return i*i;
}
}
for(var j=0; j < 10; j++) {
squareFunc.push(createFunc(j));
}
for(let i=0; i < 10; i++) {
squareFunc.push(function () {
return i*i;
});
}
var a = 3;
var b = 2;
function sum () {
return a + b;
}
sum(); // ?!
var a = 3;
var b = 2;
function sum () {
return a + b;
}
sum(); // 5
var a = 3;
var b = 2;
function sum () {
return a + b;
}
a = 10;
sum(); // ?!
var a = 3;
var b = 2;
function sum () {
return a + b;
}
a = 10;
sum(); // 12
function partialSum (a) {
return function (b) {
return a + b;
};
}
var sum2 = partialSum(2);
sum2(2); // ?!
sum2(40); // ?!
function partialSum (a) {
return function (b) {
return a + b;
};
}
var sum2 = partialSum(2);
sum2(2); // 4
sum2(40); // 42
var cacheSum;
function partialSum (a) {
cacheSum = function (b) {
return a + b;
};
}
partialSum(2);
cacheSum(2); // 4
cacheSum(40); // 42
var angle = createAngle360(90);
angle.add(180);
angle.getAngle(); // 270;
angle.add(180);
angle.getAngle(); // 90
function createAngle360(value) {
return {
add: function (dt) {
var angle = value + dt;
value = angle % 360;
},
getAngle: function () {
return value;
}
};
}
var a = 2;
var b = 2;
var result = a + b;
a; // ?!
(function () {
var a = 1;
}());
a; // ?!
(function () {
var a = 2;
}());
a; // ?!
a; // error
(function () {
var a = 1;
}());
a; // error
(function () {
var a = 2;
}());
a; // error
(function () {
// ваш код
}());
var doubleSum = doubleResult(function (a, b) {
return a + b;
});
doubleSum(2, 5); // 14
doubleSum('a', 'b'); // 'abab'
function doubleResult(f) {
return function () {
var result = f.apply(null, arguments);
return result + result
};
}
var a = 2;
var b = 2;
// 100500 строк кода
function sum() {
return a + b;
}