Változnak-e az emelési szabályok szigorú módú JavaScriptben?

Szia! Emelőbeszállítóként mélyen belemerültem az emelés világába és minden technológiával kapcsolatos dologba. Az egyik kérdés, amely gyakran felbukkan a JavaScript-közösségben: "Változnak-e az emelési szabályok szigorú módban a JavaScript?" Vágjunk bele ebbe a témába, és nézzük meg, mi az.

Először is, azok számára, akik esetleg nem túl jól ismerik, a JavaScriptben való felemelés egy nagyon klassz fogalom. Lehetővé teszi a változók és függvények használatát, mielőtt ténylegesen deklarálnák őket a kódban. Kicsit vadul hangzik, igaz? Nos, ez olyan, mint egy varázspálcával, amivel akkor is hívhatsz valamit, ha az még hivatalosan nem "érkezett meg".

Normál, nem szigorú módban a JavaScript, a változók aa miénkkulcsszavak a tartalmuk vagy a globális hatókörük tetejére kerülnek. De itt van a bökkenő: csak a nyilatkozatot emelik ki, az inicializálást nem. Hadd mondjak egy példát:

console.log(myVar); var myVar = 10;

Ebben az esetben aconsole.lognem dob hibát. Ehelyett kinyomtatjaundefined. Ez azért van, mert a nyilatkozathol myWherefel van emelve a csúcsra, de a megbízásmyVar = 10később történik a kódvégrehajtás során.

A nem szigorú üzemmódú funkciók szintén fel vannak emelve. Meghívhat egy függvényt a tényleges deklarációja előtt a kódban. Például:

myFunction(); function myFunction() { console.log('Hello, lifting!'); }

Ez a kód jól fut és kinyomtathatóHello, emelés!mert a teljes függvénydeklaráció a tetejére van emelve.

European Standard Prefab Modular High-rise Office Buildingmetal manufacturer

Most beszéljünk a szigorú módról. A karakterlánc hozzáadásával engedélyezheti a szigorú módot a JavaScriptben„szigorúan használjon”;egy szkript vagy függvény elején. A szigorú mód olyan, mint a JavaScript fegyelmezettebb változata. Szigorúbb szabályokat kényszerít ki, hogy a kód robusztusabb és kevésbé hibás legyen.

Ami az emelést illeti, a szabályok aa miénkA változók szigorú módban nagyjából ugyanazok, mint a nem szigorú módban. A nyilatkozat megtörténik, de az inicializálás nem. Tehát a következő kód szigorú módban továbbra is a várt módon fog viselkedni:

„szigorúan használjon”; console.log(myVar); var myVar = 10;

Ki fog nyomtatniundefinedemelése miatt aa miénknyilatkozat.

A szigorú üzemmódnak azonban van néhány különbsége a funkcióemelés tekintetében. Szigorú módban, ha egy függvényt deklarál egy blokkon belül (például egyhanyilatkozat vagy aszámárahurok), ez a funkció már nem emelkedik a tartalmazó függvény vagy a globális hatókör tetejére.

Íme egy példa:

„szigorúan használjon”; if (true) { function blockFunction() { console.log('Belső blokk függvény'); } } blockFunction(); // Ez ReferenceError-t fog dobni

Nem szigorú módban ez működhet, mert a funkció fel lesz emelve. De szigorú módban a funkcióblockFunctioncsak abban a blokkban érhető el, ahol deklarálva van. Tehát, ha megpróbáljuk a blokkon kívül hívni, az aReferenceError.

Egy másik érdekes szempont a használatahagyjaésconstszigorú módban. Ezek az ES6-ban bevezetett új módszerek a változók deklarálására JavaScriptben. Ellentétbena miénk,hagyjaésconstnem ugyanúgy emelik fel. Van bennük az úgynevezett „időbeli holt zóna” (TDZ).

Nézzünk egy példát ahagyja:

„szigorúan használjon”; console.log(myLetVar); // Ez ReferenceError-t fog dobni, legyen myLetVar = 10;

AhagyjaváltozómyLetVarnyilatkozata előtt nem érhető el. A TDZ a blokk elején kezdődik, ahol ahagyjaváltozó deklarálva van, és akkor ér véget, amikor a tényleges deklarációs utasítást elérjük.

Tehát a „Változnak-e az emelési szabályok szigorú JavaScript módban?” kérdésre a válasz igen és nem. Az emelési szabályok aa miénkA változók nagyrészt változatlanok maradnak, de jelentős változások következnek be a funkcióemelést és a viselkedését illetőenhagyjaésconstváltozók.

Felvonó beszállítóként fontos megérteni ezeket a JavaScript emelési szabályokat, mert ez hatással lehet arra, ahogyan kódot írunk és hibakeresünk. Akár egy egyszerű szkripten, akár egy nagyszabású alkalmazáson dolgozik, ezeknek az árnyalatoknak az ismerete sok fejfájástól kímélheti meg.

Ha Ön a kiváló minőségű emelőmegoldások piacán dolgozik, mi mindenre megtaláljuk a választ. Néhány csúcsminőségű acél építőipari termékkel is foglalkozunk. Nézze meg a miElőre megtervezett Highrise Residential Steel Building. Kiváló lehetőség azok számára, akik megbízható és hatékony acélépítési megoldást keresnek.

Nálunk is megvan aElőregyártott többszintes acélszerkezetű házrajzok építése. Ezek a rajzok úgy készültek, hogy az építési projektje gördülékenyebbé és szervezettebbé váljon.

És ha érdekelfémgyártás, kiváló minőségű, európai szabványoknak megfelelő termékeket tudunk biztosítani Önnek.

Ha felkeltette érdeklődését emelőtermékeink vagy acél építési megoldásaink, ne habozzon kapcsolatba lépni velünk. Azért vagyunk itt, hogy segítsünk Önnek minden beszerzési igényében. Legyen szó kis léptékű projektről vagy nagyszabású fejlesztésről, megvan a szakértelem és a termékeink a sikerhez.

Kezdjünk egy beszélgetést arról, hogyan dolgozhatunk együtt. Lépjen kapcsolatba velünk, hogy megbeszéljük igényeit és árajánlatot kérjünk. Szeretettel várunk minden érdeklődőt!

Hivatkozások

  • „JavaScript: A végleges útmutató”, David Flanagan
  • MDN Web Docs JavaScript emeléssel és szigorú móddal

A szálláslekérdezés elküldése