КампутарыПраграмаванне

JavaScript: typeof - неабходнасць ці новыя магчымасці

Раней былі дадзеныя канкрэтнага тыпу і была цікавасць іх апрацоўваць з мэтай атрымання выніку. Панаванне «нетыповых ідэй у сферы апісання" наступіла нечакана, але натуральна. Папярэдняе аб'яву зменнай перастала быць абавязковым, а ўказанне яе тыпу наогул страціла ўсякі сэнс, ва ўсякім выпадку да аперацыі, у якой яна бярэ ўдзел.

Праграміст развязаў сабе рукі: зусім не абавязкова аб'яўляць нешта спачатку. Часта толькі да моманту выкарыстання будзе пэўнасць, што браць, што рабіць і як. Што тычыцца тыпаў, то яны самі па сабе «сталі значэннямі», гэта значыць сталі дадзенымі, ад якіх таксама нешта залежыць!

Яе яшчэ ці ўжо няма, ну і што з таго

Вельмі простае апісанне зменнай "aaa" і даступны алгарытм яе апрацоўкі:

aaa ; var aaa;

( aaa ) { if (aaa) {
= 'I am!' Res = 'I am!' ; // Я ЁСЦЬ!
{ } Else {
= 'me no...' ; Res = 'me no ...'; // меня нету
}

дасць відавочны вынік: «мяне няма». Тут значэнне функцыі JavaScript typeof = undefined. Проста апісаць зменную - «зусім нічога» не азначае. Зразумела, калі aaa = 1, мы атрымаем: «Я ЁСЦЬ!», Але калі aaa = 0, то будзе як і ў першым выпадку: «мяне няма ...». Цудоўная логіка, іншы матэматык, а таксама просты грамадзянін, не мог і падумаць, што нулявое значэнне мае зусім іншы сэнс, чым рэальны. Толькі сучаснае (нетыповае) праграмаванне здольна на такія смелыя ідэі!

Канструкцыя JavaScript typeof, як і больш інтэлігентны выраз if (aaa) {... x ...} else {... y ...}, мае выдатныя спажывецкія якасці і вельмі зручная ў выкарыстанні.

Пра асаблівасці кірыліцы і лацінкі

Прафесійны праграміст заўсёды аддасць перавагу ангельскае напісанне сімвалаў рускаму, душэўна дзякуючы той этап развіцця праграмавання, калі на адных прасторах кібернетыка не была прызнаная, затое на іншых тэрыторыях камп'ютэрнае справу ўпэўнена пайшла ўгору. Пачалі памнажацца і развівацца мовы праграмавання, узяўшы за аснову сінтаксісу 26 літар англійскага алфавіту і камплект іншых агульнапрынятых знакаў.

Самым простым і натуральным стаў машынны код, ён быў прыгожы, дасканалы, але спецыфічны на кожнай архітэктуру, а на мовах высокага ўзроўню ідэя пераноснасці паміж архітэктурамі адразу стала актуальнай. Гэта істотна супярэчыць бягучага моманту: падстаў для аналага JavaScript typeof = undefined | string | number | boolean | object | function тады проста не было. Усе мовы былі строга фармальныя, мелі строгі сінтаксіс і не дапускалі нявызначанасці.

Тыпы, зменныя і іх выкарыстанне

Момант вельмі важны. Тыпізацыя і апісанне зменных - найважнейшы складнік праграмы, праграміст не можа напісаць працуе алгарытм, пакуль не пакладзе рэальнае разнастайнасць дадзеных у строгую фармальную карціну зменных, масіваў, аб'ектаў і функцый.

JavaScript нясе ў сабе ўсю назапашаную за дзесяцігоддзі функцыянальную моц, усе яго канструкцыі ідэальна адлюстроўваюць сучасныя ўяўленні аб сінтаксісе і мэтазгодных правілах ўкладанне ў яго семантыкі.

Пытанне ў тым, калі гэта варта рабіць, калі менавіта трэба вызначыць type text, JavaScript typeof функцыяй. Уласна чыстых варыянтаў type text няшмат: сімвал, радок і лік. Аднак роля тэксту можа гуляць і аб'ект, і нават масіў з канструкцыяй array.join (), якая злучае ўсе яго элементы ў адзіны text, гэта значыць у адзін радок.

Банальнае зацвярджэнне: усё навокал ёсць type text, і JavaScript typeof функцыя павінна ў патрэбны час выканаць патрэбнае вызначэнне тыпу. Гэта так, але на практыцы ўсё атрымліваецца інакш. JavaScript typeof object выдасць адно і тое ж значэнне ва ўсіх трох выпадках:

aaa = {}; var aaa = {};
= typeof ( aaa ); Res = typeof (aaa);
+= '/' + typeof window . Res + = '/' + typeof window. ; document;
+= '/' + typeof ( document . forms [ 0 ]); Res + = '/' + typeof (document. Forms [0]);

вынік: object / object / object

Выкарыстанне функцыі можа быць у фармаце typeof (aaa) і фармаце typeof aaa - гэта не істотна, аднак ва ўсіх варыянтах адказ вызначаецца, але ён роўным лікам нічога не значыць!

Нявызначанасць пераходзіць у пэўнасць

Праграмаванні ўласцівая асаблівая дынаміка: яно гэтак імкліва ляціць наперад, што шкала руху бесперапынна пашыраецца. Рахунак ідзе на месяцы, тыдні або дні, а часам нават на гадзіны. У канкрэтных задачах дынаміка фарміравання алгарытму рашэння гэтак імклівая і патрабавальная да бесперапыннасці, што выхад праграміста з працоўнага стану можа адкінуць рашэнне на дзень, тыдзень і большы тэрмін.

Натуральнае рашэнне JavaScript typeof і практыка аб'ектна-арыентаванага праграмавання, якое ў дадзеным сінтаксісе некалькі адрозніваецца ад які склаўся ў сумежных сучасных мовах, пераносіць цэнтр цяжару на аб'ект. Вельмі характэрны момант: мова становіцца канструкцыяй, якая змяшчае семантыку, а не наборам сінтаксічных нормаў.

Простыя тыпы дадзеных не маюць патрэбу ў вызначэнні свайго тыпу, дакладней выкарыстанне JavaScript typeof цалкам дастаткова. У выпадку патрэбы асяроддзя выканання сама клапоціцца аб належных пераўтварэннях, але ў дачыненні аб'ектаў JavaScript typeof дае самы разумны адказ: гэта аб'ект і праблема яго тыпу - яго клопат! Такая логіка для класічнага прадстаўлення аб праграмаванні цяжка воспринимаема, але гэта рэальны стан правільных рэчаў.

Клопат аб'екта - вызначыць свой тып, праявіць свае ўласцівасці і выконваць свае метады. Праграмаванне адшліфаваць свой сінтаксіс і з кожным момантам часу пераносіць цэнтр цяжару з сінтаксісу ў фармаваную праграмістам семантыку: сістэму яго аб'ектаў, якія выконваюць рашэнне пастаўленай задачы.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.unansea.com. Theme powered by WordPress.