#48795182 · 13 Sep 2016, 13:40 · · პროფილი · პირადი მიმოწერა · ჩატი
Geronika2004 იმიტომ რომ ჯავასკრიპტში var a=b=3 არ არის ის, რაც სხვა ენებში. აქ 2 ცვლადი გამოცხადდება - ერთი var a; და მეორე var-ის გარეშე - b. შესაბამისად b ცვლადი იქნება გლობალური, იმიტომ რომ 'use strict' არ გაქვს ჩართული. ხოლო var a; ცვლადი იქნება მხოლოდ და მხოლოდ (function(){ })(); -ში ხელმისაწვდომი.
და შესაბამისად პირველი false-ს გაძლევს, იმიტომ რომ a ცვლადი მარტო იმ ფუნქციაში არსებობს, ხოლო b ცვლადი გლობალურია და იმ ფუნქციის გარეთაც არსებობს.
ამიტომ ყოველთვის გქონდეს strict mode ჩართული. ეს კოდი შეცდომას ამოაგდებს:
CODE | 'use strict'; (function(){ var a=b=3; })();
|
|