JavaScript-ը կատարյալ գեղեցիկ լեզու է։ Այն ունի պարզ սինթաքս, մեծ էկոսիստեմ և արդյունավետ կիրառվում է ծրագրավորման գրեթե բոլոր ոլորտներում։ Միաժամանակ երևի բոլորս էլ գիտենք, որ JavaScript-ը նաև բավականին զվարճալի առանձնահատկություններ ունի, որոնք կարող են ամենօրյա աշխատանքը երբեմն վերածել դժոխքի, իսկ երբեմն էլ ստիպել լիաթոք ծիծաղել 😀
wtfjs.com կայքում մի քանի էնտուզիաստներ հավաքել են այդպիսի մի շարք հետաքրքիր ու զվարճալի օրինակներ, որոնք երբեմն կներկայացնեմ այս հարթակում։ Դե իսկ եթե համբերություն չունեք այդքան, և ուզում էք ամեն ինչ ու միանգամից տեսնել, կարող էք այցելել այդ կայքը։ Կարծում եմ լեզվին նոր ծանոթացողների համար հետաքրքիր կլինի:
Եվ այսպես` "banana"
console.log(("b" + "a" + +"a" + "a").toLowerCase()); // banana;
Ինչպե՞ս կարող է նման բան լինել 😊 Այնինչ ամեն ինչ շատ պարզ է, առաջին 'a'-ից հետո դրված + նշանը բինար պլյուս է, և կպցնում է տողերը(concat), այնինչ դրան անմիջապես հաջորդող մյուս + նշանը ինտերպրետատորը ընկալում է որպես երկրորդ 'a'- ի նկատմամբ կիրառված ունար պլյուս։ Իսկ ունար պլյուսը կատարում է նույն բանը, ինչ որ Number('a') ֆունկցիան, այսինքն փորձում է 'a' տողը վերածել թվի, և ստանում է *NaN**(Not a Number), ինչն օրինաչափ է։
Արդյունքում իրար կպցնելով "b" + "a" + NaN + "a", NaN-ն էլ է վերածվում տողի, և ստացվում է "baNaNa",որի մեծատառերն էլ տողերի toLowerCase մեթոդը փոխում է փոքրատառերի՝ ստանալով 'banana'.