in Կրթական, Մանկավարժի Նոթեր

Firefox vs Chrome. կրթական առավելություններ

Հակիրճ

javascript լեզուն ուսումնասիրելիս Firefox-ը ավելի էֆեկտիվ գործիք է քան chrome-ը։ Մի պարզ պատճառով , որ սխալների մասին հաղորդագրությունները ավելի մարդավարի, մարդամոտ ու կոնկրետ են  գրված։ Դա օգնում է սովորողին ավելի հեշտ հասկանալ թե ինչպիսի սխալ կա ծրագրի մեջ և թե ինչ է այդ սխալը նշանակում։

Իմ այն ընթերցողները, ովքեր նոր են սովորում են javascript ծրագրավորման լեզուն, կարող են հաջորդ մասը չկարդալ։ Եվ այսուհետ օգտագործել mozila firefox դիտարկիչը։

Մյուսներին հրավիրում եմ տեսնել 18 օրինակ, որոնք ասածս միտքը հիմնավոր ու ակնհայտ են դարձնում։

Համեմատականներ  (Firefox 57.0.4 , Chromium 63.0.3239.84)

Օրինակները ստուգել եմ հետևյալ վարկածների համար՝ Firefox (57.0.4) և Chromium  (63.0.3239.84)։

Օրինակ 1

var list = [1, 2

Chromium
Uncaught SyntaxError: Unexpected end of input
Firefox
SyntaxError: missing ] after element list


Օրինակ 2

function loop(x) {
   if (x >= 1000000000000)
     return;
   // do stuff
   loop(x + 1);
 }
 loop(0);

Chromium
Uncaught RangeError: Maximum call stack size exceeded
Firefox
too much recursion


Օրինակ 3

77.1234.toExponential(-1);  // RangeError
77.1234.toExponential(101); // RangeError

2.34.toFixed(-100);         // RangeError 
2.34.toFixed(1001);         // RangeError 

1234.5.toPrecision(-1);     // RangeError
1234.5.toPrecision(101);    // RangeError

Chromium
Uncaught RangeError: toExponential() argument must be between 0 and 100
Firefox
RangeError: precision -1 out of range


Օրինակ 4

'abc'.repeat(Infinity); // RangeError
'a'.repeat(2**28);      // RangeError

Chromium
No error report, but crash browser
Firefox
RangeError: repeat count must be less than infinity and not overflow maximum string size


Օրինակ 5

'abc'.repeat(-1);

Chromium
Uncaught RangeError: Invalid count value
Firefox
RangeError: repeat count must be non-negative


Օրինակ 6

var enum = { RED: 0, GREEN: 1, BLUE: 2 };

Chromium
Uncaught SyntaxError: Unexpected reserved word
Firefox
SyntaxError: missing variable name


Օրինակ 7

JSON.parse('[1, 2, 3, 4,]');

Chromium
Uncaught SyntaxError: Unexpected token ] in JSON at position 12
Firefox
SyntaxError: JSON.parse: unexpected character at line 1 column 13 of the JSON data


Օրինակ 8

let iterable = [10, 20, 30]; 

for (let value = 50 of iterable) { 
  console.log(value); 
}
var obj = {a: 1, b: 2, c: 3 }; 

for (var i = 0 in obj) { 
  console.log(obj[i]);
}

Նույն սխալն է վերադարձում


Օրինակ 9

function () {
  return 'Hello world';
}

Chromium
Uncaught SyntaxError: Unexpected token (
Firefox
SyntaxError: function statement requires a name


Օրինակ 10

var 1life = 'foo';

Chromium
Uncaught SyntaxError: Invalid or unexpected token
Firefox
SyntaxError: identifier starts immediately after numeric literal


Օրինակ 11

"This looks like a string";
42 - 13;

var colors = ['#000', #333', '#666'];

Chromium
Uncaught SyntaxError: Invalid or unexpected token
Firefox
SyntaxError: illegal character


Օրինակ 12

if (3 > Math.PI {
   console.log("wait what?");
 }

Chromium
Uncaught SyntaxError: Unexpected token {
Firefox
SyntaxError: missing ) after condition


Օրինակ 13

var obj = { propertyKey = 'value' };

Chromium
Uncaught SyntaxError: Invalid shorthand property initializer
Firefox
SyntaxError: missing : after property id


Օրինակ 14

const COLUMNS;

Chromium
SyntaxError: Missing initializer in const declaration
Firefox
SyntaxError: missing = in const declaration


Օրինակ 15

function square(3) {
   return number * number;
 };

Chromium
Uncaught SyntaxError: Unexpected number
Firefox
SyntaxError: missing formal parameter


Օրինակ 16

var = "foo";

Chromium
Uncaught SyntaxError: Unexpected token =
Firefox
SyntaxError: missing variable name


Օրինակ 17

var charge = function() {
  if (sunny) {
    useSolarCells();
  } else {
    promptBikeRide();
};

Chromium
Uncaught SyntaxError: Unexpected end of input
Firefox
SyntaxError: missing } after function body


Օրինակ 18

var cheer = function(score) {
  if (score === 147)
    return 'Maximum!';
  };
  if (score > 100) {
    return 'Century!';
  }
}

Chromium
Uncaught SyntaxError: Illegal return statement
Firefox
SyntaxError: return not in function

Ամփոփում

Ավելի շատ օրինակներ չարժի ցուցադրել, որովհետև արդեն երևում է ընդհանուր վիճակը։ chrome-ի սխալների հաղորդագրությունները ավելի ընդհանուր են, firefox֊ինը` հիմնականում ավելի կոնկրետ և հուշող։