Гэр / Интернет / Javascript шалгах хувьсагчийн төрөл. JavaScript, typeof, төрөл, ангиуд. Түр зуурын үхсэн бүстэй холбоотой алдаанууд

Javascript шалгах хувьсагчийн төрөл. JavaScript, typeof, төрөл, ангиуд. Түр зуурын үхсэн бүстэй холбоотой алдаанууд

Динамик төрлийг тодорхойлох

Динамик төрлийг тодорхойлох (RTTI)ажиллах үед объектын төрлийг тодорхойлох боломжийг танд олгоно. Энэ нь хэд хэдэн шалтгааны улмаас ашигтай болж хувирдаг. Ялангуяа үндсэн ангиллын дагуу та энэ лавлагаагаар хандах боломжтой объектын төрлийг маш нарийн тодорхойлж чадна. Динамик төрлийг таних нь мөн төрлийн цутгах үр дүн хэр амжилттай болохыг урьдчилан шалгах боломжийг олгодог бөгөөд энэ нь буруу хэлбэрийн цутгалтын улмаас үл хамаарах зүйлээс сэргийлдэг. Үүнээс гадна динамик төрлийг тодорхойлох нь тусгалын гол бүрэлдэхүүн хэсэг юм.

Динамик төрлийг тодорхойлохыг дэмжихийн тулд C# нь гурвыг өгдөг түлхүүр үгс a: is, as болон typeof. Эдгээр түлхүүр үг бүрийг дараалан авч үзэх болно.

оператор юм

is операторын тусламжтайгаар объектын тодорхой төрлийг тодорхойлж болно. Түүний ерөнхий хэлбэрийг доор харуулав.

илэрхийлэл нь төрөл юм

Энд илэрхийлэл нь төрөл нь шалгагдаж байгаа объектыг дүрсэлсэн нэг илэрхийллийг илэрхийлнэ. Хэрэв илэрхийлэл нь шалгагдаж буй төрөлтэй нийцтэй эсвэл ижил төрлийн байвал энэ үйлдлийн үр дүн үнэн, үгүй ​​бол худал байна. Тиймээс хэрэв илэрхийлэл нь нэг хэлбэрээр эсвэл өөр хэлбэрээр туршиж байгаа бол үр дүн нь үнэн байх болно. is операторт ижил төрлийн эсвэл лавлагаа хөрвүүлэх, хайрцаглах, задлах зэрэг өгөгдсөн тохиолдолд хоёуланг нь нийцтэй гэж тодорхойлдог.

Дараах нь is операторыг ашиглах жишээ юм.

Системийг ашиглах; namespace ConsoleApplication1 ( анги Нэмэх ( ) анги Нийлбэр: Нэмэх ( ) анги Програм ( статик хүчингүй Үндсэн() ( Нэмэх = шинэ Нэмэх(); Нийлбэр s = шинэ нийлбэр(); хэрэв (а бол Нэмэх) Console.WriteLine("Хувьсагч a нь Add төрлийн); if (s нь Sum) Console.WriteLine("s хувьсагчийн төрөл нь Add ангиас удамшсан"); Console.ReadLine(); ) ) )

оператороор

Заримдаа төрлийн хөрвүүлэлтийг ажиллуулах үед хийх шаардлагатай байдаг, гэхдээ хувиргах амжилтгүй болбол шидэж болохгүй, энэ нь төрөл хувиргахад төгс боломжтой юм. As оператор нь энэ зорилгоор үйлчилдэг бөгөөд дараах ерөнхий хэлбэртэй байна.

төрөл хэлбэрээр илэрхийлнэ

Энд илэрхийлэл нь заасан төрөлд хөрвүүлэх боломжтой ганц илэрхийллийг илэрхийлдэг.

Хэрэв ийм хөрвүүлэлтийн үр дүн амжилттай бол тухайн төрлийн лавлагааг буцаана, үгүй ​​бол хоосон лавлагаа. As операторыг зөвхөн лавлагаа хөрвүүлэх, таних, хайрцаглах, задлахад ашиглах боломжтой. Зарим тохиолдолд as оператор нь is операторын тохиромжтой хувилбар байж болно. Жишээ болгон дараах програмыг авч үзье.

Системийг ашиглах; namespace ConsoleApplication1 ( класс Нэмэх ( ) анги Нийлбэр: Нэмэх ( ) анги Програм ( статик хүчингүй Үндсэн() ( Нэмэх a = шинэ Нэмэх(); Нийлбэр s = шинэ нийлбэр(); // cast a = s-ийг Add хэлбэрээр гүйцэтгэнэ; хэрэв ( a != null) Console.WriteLine("Хөрвүүлэлт амжилттай болсон"); else Console.WriteLine("Хөрвүүлэх явцад гарсан алдаа"); Console.ReadLine(); ) ) )

Энэ програмыг хэрэгжүүлсний үр дүн нь амжилттай хувиргах болно.

a = (b > 0) && (c + 1 != d); туг =!(статус = 0);

Хүснэгт 14.5. Логик операторууд

Операторын тодорхойлолт

! БИШ (логик урвуу)

&& БА (логийн үржүүлэх)

|| OR (логик нэмэлт)

Хүснэгт 14.6. AND болон OR операторуудыг гүйцэтгэх үр дүн

Операнд 1

Операнд 2

Хүснэгт 14.7. NOT мэдэгдлийг гүйцэтгэсний үр дүн

operator typeof авах

Төрөл операторыг авна уу typeof нь операндын өгөгдлийн төрлийг тодорхойлсон мөрийг буцаана. Төрөл нь олдох операндыг энэ операторын ард байрлуулж, хаалтанд бичнэ.

s = typeof("str");

Энэ илэрхийллийн үр дүнд s хувьсагч нь мөрийн төрлийг илэрхийлэх "string" мөрийг агуулна.

Буцааж болох бүх утгууд төрлийн операторХүснэгтэнд жагсаасан болно. 14.8.

Хүснэгт 14.8. Операторын төрлөөр буцаасан утгууд

Өгөгдлийн төрөл

Буцах мөр

Мөр

Тоон

Хүснэгт 14.8 (төгсгөл)

Өгөгдлийн төрөл

Буцах мөр

Логик

Тохиромжтой байдал ба өгөгдлийн төрлийг хөрвүүлэх

Өгөгдлийн төрлийн нийцтэй байдал, нэг төрлөөс нөгөөд хөрвүүлэх гэсэн хоёр чухал асуудлыг авч үзэх цаг болжээ.

Хоёр тоог нэмбэл юу болох вэ? Энэ нь зөв - өөр тоон утга. Хэрэв та тоо болон мөрийг нэмбэл яах вэ? Хэлэх хэцүү... Энд JavaScript нь өгөгдлийн төрлийн үл нийцэх асуудалтай тулгараад, тэдгээрийн аль нэгийг нөгөө рүү хөрвүүлэх замаар эдгээр төрлүүдийг нийцтэй болгохыг оролддог. Энэ нь эхлээд мөрийг тоо болгон хөрвүүлэхийг оролддог бөгөөд хэрэв амжилттай болвол нэмэх үйлдлийг гүйцэтгэдэг. Амжилтгүй бол тоо нь мөр болж хувирч, үүссэн хоёр мөрийг нэгтгэнэ. Жишээлбэл, Жагсаалт 14-6-д байгаа вэб скрипт нь a хувьсагчийг нэмэх үед b хувьсагчийн утгыг тоон төрөл болгон хувиргах болно; Тиймээс c хувьсагч нь 23 утгыг агуулна.

Жагсаалт 14.6

var a, b, c, d, e, f; a = 11;

b = "12"; c = a + b;

d = "JavaScript"; e = 2;

Гэвч d хувьсагчийн утгыг тоонд хөрвүүлэх боломжгүй тул e-ийн утгыг тэмдэгт мөр болгон хувиргаж, үр дүн - f-ийн утга -тэй тэнцүү болно.

Логик утгуудыг тоон эсвэл мөрийн утга болгон хөрвүүлдэг. Үнэнийг 1 тоо эсвэл "1" мөр рүү, худал нь 0 эсвэл "0" руу хөрвүүлнэ. Үүний эсрэгээр 1-ийн тоог үнэн, 0-ийн тоог худал болгон хувиргах болно. Мөн худал нь хөрвүүлэгдэх болно

Бид хоосон бөгөөд тодорхойгүй байна.

III хэсэг. Вэб хуудасны зан байдал. Вэб скриптүүд

JavaScript нь буруу бичсэн илэрхийллийг ч зөв гүйцэтгэхийн тулд тэмцэж байгааг харж болно. Заримдаа энэ нь ажилладаг, гэхдээ ихэнхдээ бүх зүйл төлөвлөсний дагуу болохгүй, эцэст нь скриптийн огт өөр газар, туйлын зөв мэдэгдэл дээр алдаа олдсон тул вэб скриптийг зогсоодог. Тиймээс ийм тохиолдлоос зайлсхийх нь дээр.

Операторын давуу эрх

Энд бидний шийдвэрлэх хамгийн сүүлийн асуудал бол операторын давуу эрх юм. Бидний санаж байгаагаар давуу байдал нь илэрхийлэл дэх операторуудыг гүйцэтгэх дараалалд нөлөөлдөг.

Дараах илэрхийлэл байх болтугай.

Энэ тохиолдолд эхлээд c-ийн утгыг b хувьсагчийн утга дээр нэмж, дараа нь нийлбэрээс 10-ыг хасна.Энэ илэрхийллийн операторууд ижил давуу эрхтэй тул зүүнээс баруун тийш хатуу гүйцэтгэнэ.

Одоо энэ илэрхийллийг авч үзье:

Энд эхлээд c утгыг 10-аар үржүүлж, зөвхөн дараа нь үүссэн бүтээгдэхүүнд b утгыг нэмнэ. Үржүүлэх оператор нь нэмэх оператороос илүү давуу эрхтэй байдаг тул "хатуу зүүнээс баруун тийш" гэсэн дарааллыг зөрчих болно.

Даалгаврын операторууд хамгийн бага давуу эрхтэй. Тийм ч учраас эхлээд илэрхийлэл өөрөө үнэлэгдэж, дараа нь түүний үр дүнг хувьсагчид оноож өгдөг.

AT Ерөнхийдөө бүх операторуудыг гүйцэтгэх үндсэн зарчим нь дараах байдалтай байна: нэгдүгээрт, илүү өндөр ач холбогдол бүхий операторууд, зөвхөн дараа нь - доод операторууд ажиллана. Ижил давуу эрх бүхий операторууд гарч ирэх дарааллаар (зүүнээс баруун тийш) гүйцэтгэгдэнэ.

AT таб. 14.9-д бидний судалсан бүх операторуудыг эрэмбэлэх дарааллаар нь жагсаав.

Хүснэгт 14.9. Операторын давуу эрх (буурах дарааллаар)

Операторууд

Тодорхойлолт

++ -- - ~! төрөл

Өсөх, бууруулах, тэмдгийн өөрчлөлт, логик ҮГҮЙ, төрөл дүгнэлт

Үржүүлэх, хуваах, үлдэгдэл

Мөр нэмэх ба холбох, хасах

Харьцуулах операторууд

логик БА

Бүлэг 14. Вэб програмчлалын танилцуулга. JavaScript хэл

Хүснэгт 14.9 (төгсгөл)

Операторууд

Тодорхойлолт

Логик OR

Нөхцөлт оператор (доороос үзнэ үү)

= <оператор>=

Даалгавар, энгийн бөгөөд төвөгтэй

АНХААР!

Энэ хүснэгтийг санаарай. Мэдэгдэлийн буруу дараалал нь илрүүлэхэд хэцүү алдааг үүсгэдэг бөгөөд энэ нь туйлын зөв илэрхийлэл нь буруу үр дүнг өгдөг.

Гэхдээ бид мэдэгдлийн гүйцэтгэлийн ердийн дарааллыг зөрчих шаардлагатай бол яах вэ? Хаалт ашиглацгаая. Энэ тэмдэглэгээнд эхлээд хаалтанд орсон хэллэгүүдийг гүйцэтгэнэ:

a = (b + c) * 10;

Энд эхлээд b ба c хувьсагчдын утгыг нэмж, дараа нь гарсан нийлбэрийг 10-аар үржүүлнэ.

Хаалтанд орсон операторууд мөн давуу эрхтэй. Тиймээс олон тооны хаалтуудыг ихэвчлэн ашигладаг:

a = ((b + c) * 10 - d) / 2 + 9;

Энд мэдэгдлийг дараах дарааллаар гүйцэтгэнэ.

1. b ба c-г нэмнэ.

2. Үр дүнг 10-аар үржүүлнэ.

3. Бүтээгдэхүүнээс d-ийг хасах.

4. Зөрөөг 2-т хуваа.

5. 9-ийн тоог нэмэх.

Хэрэв та хаалтуудыг арилгавал:

a = b + c * 10 - d / 2 + 9;

Дараа нь операторуудын гүйцэтгэх дараалал дараах байдалтай байна.

1. c ба 10-ыг үржүүл.

2. d-г 2-т хуваа.

3. b-г нэмж, c ба 10-ыг үржүүлнэ.

4. Хуваалтаас гарсан хэсгийн нийлбэрээс хасах d-ээс 2 хүртэл.

5. Үүссэн зөрүү дээр 9-ийг нэмнэ.

Энэ нь шал өөр үр дүн болж байна, тийм үү?

JavaScriptэсвэл JS(богинохон) хэл нь тийм ч хялбар биш бөгөөд шинэхэн хөгжүүлэгчид энэ талаар шууд сурахгүй. Эхлээд тэд үндсийг сурч, бүх зүйл өнгөлөг, үзэсгэлэнтэй мэт санагддаг. Жаахан гүнзгийрвэл тэнд байгаа JavaScript массивууд, объектууд, дуудлагууд болон бусад бүх зүйл нь ихэвчлэн оюун ухаанд цохилт өгдөг.

JavaScript-д хувьсагчийн төрлийг зөв шалгах нь чухал. Хувьсагч нь массив эсвэл объект мөн эсэхийг мэдэхийг хүсч байна гэж бодъё? Үүнийг хэрхэн зөв шалгах вэ? Энэ тохиолдолд баталгаажуулалтын явцад заль мэх байдаг бөгөөд энэ нийтлэл нь энэ тухай байх болно. Одоо шууд эхэлцгээе.

Хувьсагчийн төрлийг шалгаж байна

Жишээлбэл, хувьсагч нь объект, массив, мөр эсвэл тоо эсэхийг шалгах хэрэгтэй. Та үүний тулд typeof-г ашиглаж болно, гэхдээ энэ нь танд үргэлж үнэнийг хэлэхгүй бөгөөд яагаад гэдгийг би доорх жишээн дээр харуулах болно.

Typeof яагаад үргэлж зөв сонголт байдаггүйг харуулахын тулд би энэ жишээг бичсэн.

Var _comparison = ( string: "string", int: 99, float: 13.555, объект: (сайн байна уу: "сайн уу"), массив: new Array(1, 2, 3) ); // Объектын түлхүүрүүд бүхий массивыг буцаана var _objKeys = Объект. keys(_харьцуулалт); for(var i = 0; i<= _objKeys.length - 1; i++) { // выведем в консоль тип каждой переменной console.log(typeof _comparson[_objKeys[i]]); }

Кодын гүйцэтгэлийн үр дүн:

Мөр тоо объектын объект

Тийм үү? - Мэдээж үгүй. Хоёр асуудал байна. Тэд тус бүрийг нарийвчлан тайлбарлаж, шийдлийг санал болгох болно.

Эхний асуудал: хөвөх тоо, тоогоор гаргана

Comparison.float нь тоо биш бөгөөд тооны оронд хөвөгч байх ёстой. Үүнийг засахын тулд доорх код дээрх шиг чектэй функц үүсгэж болно.

Var_floatNumber = 9.22; var_notFloatNumber = 9; console.log(isFloat(_floatNumber)); console.log(isFloat(_notFloatNumber)); console.log(isFloat("")); функц isFloat(n)( Буцах Тоо(n) === n && n % 1 !== 0; )

isFloat() функц нь хөвөгч цэгийн тоонуудын бүх утгыг шалгадаг. Эхлээд хувьсагч тэнцүү эсэхийг шалгана уу nтоо (Number(n) === n) ба хэрэв тийм бол үлдэгдэлтэй хуваагдах эсэхийг дахин нэг шалгана, хэрэв үлдэгдэл байвал логикийг буцаана ( үнэнэсвэл худлаа) үр дүн (n % 1 !== 0).

Дээрх жишээнд энэ нь буцаж ирдэг үнэн, худлааболон худлаа. Эхний утга нь хөвөхтөрөл, хоёр дахь нь биш - энэ нь ердийн тоо бөгөөд сүүлийнх нь дүрэмд тохирохгүй хоосон мөр юм.

Хоёр дахь асуудал: массивыг объект гэж тодорхойлсон

Хамгийн эхний жишээн дээр массивыг объект болгон харуулсан бөгөөд энэ нь тийм ч сайн биш, учир нь та заримдаа энэ төрлийг ашиглах хэрэгтэй бөгөөд өөр юу ч хэрэггүй.

Массивын төрөлд хувьсагчийг шалгах хэд хэдэн арга байдаг.

Эхний сонголт (сайн сонголт). Өгөгдөл нь массив хамаарах эсэхийг instanceof() ашиглан шалгана уу.

Var data = new Array("сайн уу", "дэлхий"); var isArr = массивын өгөгдлийн жишээ;

Хоёр дахь сонголт (сайн сонголт). Array.isArray() арга нь тухайн хувьсагч массив мөн эсэхээс () хамаарах логик утгыг буцаана.

Var data = new Array("сайн уу", "дэлхий"); var isArr = Array.isArray(өгөгдөл);

Гурав дахь сонголт (хамгийн сайн, гэхдээ урт). Тохиромжтой болгохын тулд та энэ аргыг функц болгож болно. Объектыг ашиглан бид хийдэг. Хэрэв Object.prototype.toString.call(өгөгдөл)-ийн үр дүн тэнцүү биш бол хувьсагч нь массив () биш болно.

Var data = new Array("сайн уу", "дэлхий"); var isArr = Object.prototype.toString.call(data) == ""; console.log(isArr);

Тохиромжтой функцийн сүүлчийн үр дүн:

Function isArray(өгөгдөл) ( Object.prototype.toString.call(өгөгдөл) == "" буцаана)

Одоо та isArray() функцуудыг дуудаж, аргумент болгон массив эсвэл ямар нэг зүйлийг тохируулаад үр дүнг харах боломжтой.

Дараах үг

Бичлэг нь анх төлөвлөснөөс нэлээд том хэмжээтэй болсон. Гэхдээ энэ нь JavaScript дээр хувьсагчдыг баталгаажуулахад тулгарч буй бэрхшээл, тэдгээрийг хэрхэн тойрч гарахыг тайлбарлахад хангалттай товч бөгөөд ойлгомжтой учраас би үүнд баяртай байна.

Хэрэв танд асуух зүйл байвал энэ нийтлэлийн доор бичээрэй. Би туслахдаа баяртай байх болно.

Оператор төрөлоперандын төрлийг харуулсан мөрийг буцаана.

Синтакс

Операнд нь төрлийн операторын дагуу байна:

төрөл операнд

Сонголтууд

операнднь төрлийг нь буцаах объект эсвэл командыг илэрхийлэх илэрхийлэл юм.

Тодорхойлолт

Дараах хүснэгтэд typeof-ийн буцах боломжит утгуудыг жагсаав. Төрөл ба командуудын талаарх дэлгэрэнгүй мэдээллийг хуудаснаас авах боломжтой.

Жишээ

// Numbers typeof 37 === "тоо"; typeof 3.14 === "тоо"; typeof(42) === "тоо"; typeof Math.LN2 === "тоо"; typeof Infinity === "тоо"; typeof NaN === "тоо"; // Хэдийгээр энэ нь "Тоо биш" төрлийн Number(1) === "тоо"; // энэ тэмдэглэгээг хэзээ ч ашиглахгүй! // strings typeof "" === "string"; typeof "bla" === "string"; typeof "1" === "мөр"; // тэмдэгт мөр доторх тоо string typeof (typeof 1) хэвээр байгааг анхаарна уу === "string"; // typeof энэ тохиолдолд үргэлж мөр буцаана typeof String("abc") === "string"; // энэ тэмдэглэгээг хэзээ ч ашиглахгүй! // Boolean typeof true === "boolean"; typeof false === "boolean"; typeof Boolean(үнэн) === "boolean"; // энэ тэмдэглэгээг хэзээ ч ашиглахгүй! // Symbols typeof Symbol() === "тэмдэг" typeof Symbol("foo") === "тэмдэг" typeof Symbol.iterator === "тэмдэг" // Тодорхойгүй төрөл тодорхойгүй === "тодорхойгүй"; typeof declaredButUndefinedVariable === "тодорхойгүй"; typeof undeclaredVariable === "тодорхойгүй"; // Objects typeof(a: 1) === "объект"; // ердийн объект болон массивыг ялгахын тулд Array.isArray эсвэл Object.prototype.toString.call // ашиглана. typeof === "объект"; typeof new Date() === "объект"; // Доорх бүх зүйл нь алдаа, асуудалд хүргэдэг. Хэрэглэж болохгүй! typeof new Boolean(үнэн) === "объект"; typeof new Number(1) === "объект"; typeof new String("abc") === "объект"; // Functions typeof function() () === "функц"; typeof анги C() === "функц"; typeof Math.sin === "функц";

null

// Энэ нь JavaScript төрснөөс хойш тодорхойлогдсон typeof null === "объект";

JavaScript-ийн анхны хэрэгжилтэд утгуудыг шошгын төрөл ба утгын хосоор илэрхийлсэн. Объектуудын шошгын төрөл нь 0 байсан. null нь null заагчаар илэрхийлэгдсэн (ихэнх платформ дээр 0x00). Иймээс null-ийн тагийн төрөл null байсан тул typeof-ийн буцаах утга нь хуурамч байна. ()

Засварыг ECMAScript-д (идэвхгүй болгох замаар) санал болгосон боловч татгалзсан. Үүний үр дүнд typeof null === "null" гарч ирнэ.

Шинэ оператор ашиглаж байна

// "Шинэ"-ээр үүсгэгдсэн бүх бүтээгч функцууд нь "объект" төрлийн байх болно var str = new String("String"); var num = new Number(100); typeofstr; // "объект"-ыг буцаана typeof num; // "объект"-ыг буцаана // Гэхдээ Функц үүсгэгчийн хувьд үл хамаарах зүйл бий var func = new Function(); функцийн төрөл; // "функц"-ыг буцаана

Тогтмол илэрхийлэл

гэж нэрлэгддэг ердийн илэрхийллүүд нь зарим хөтөч дээр стандарт бус нэмэлт байсан.

Typeof /s/ === "функц"; // Chrome 1-12 ECMAScript 5.1-тэй нийцэхгүй typeof /s/ === "объект"; // Firefox 5+ нь ECMAScript 5.1-тэй нийцдэг

Түр зуурын үхсэн бүстэй холбоотой алдаанууд

ECMAScript 2015-аас өмнө typeof оператор дуудагдсан операндын мөрийг буцаах баталгаатай байсан. Өргөх бус блокийн хамрах хүрээтэй let болон const мэдэгдлүүдийг нэмснээр энэ нь өөрчлөгдсөн. Одоо, хэрэв хувьсагчдыг let болон const -аар зарлаж, мөн хувьсагчийг зарлах блок дээр typeof-г дууддаг боловч зарлалын өмнө ReferenceError гарч ирнэ. Зан төлөв нь зарлагдаагүй хувьсагчдаас ялгаатай тул typeof нь "тодорхойгүй" гэж буцаана. Блокийн хамрах хүрээтэй хувьсагч нь блокийн эхнээс хувьсагчдыг зарлах хүртэл үргэлжилдэг "түр зуурын үхсэн бүс"-д байдаг. Энэ бүсэд хувьсагчдад хандах оролдлого нь онцгой тохиолдол үүсгэдэг.

Typeof undeclaredVariable === "тодорхойгүй"; newLetVariable төрөл; newLetVariable-г зөвшөөрөх; // newConstVariable-ийн ReferenceError type; const newConstVariable = "сайн уу"; // Лавлагааны алдаа

Үл хамаарах зүйл

Одоогийн бүх хөтөч дээр Undefined төрлийн стандарт бус document.all хост объект байдаг.

typeof document.all === "тодорхойгүй";

Хэдийгээр техникийн үзүүлэлтүүд нь стандарт бус чамин объектуудад тусгай төрлийн нэр өгөхийг зөвшөөрдөг ч эдгээр нэр нь урьдчилан тодорхойлсоноос өөр байх шаардлагатай. Document.all нь тодорхойгүй төрөлтэй байгаа нөхцөл байдал нь дүрмийг онцгой зөрчсөн гэж үзэх ёстой.

Үзүүлэлтүүд

Тодорхойлолт Статус Сэтгэгдэл
ECMAScript-н хамгийн сүүлийн үеийн төсөл (ECMA-262)
Ноорог
ECMAScript 2015 (6-р хэвлэл, ECMA-262)
Энэ тодорхойлолтод "Операторын төрөл"-ийн тодорхойлолт.
Стандарт
ECMAScript 5.1 (ECMA-262)
Энэ тодорхойлолтод "Операторын төрөл"-ийн тодорхойлолт.
Стандарт
ECMAScript 3-р хэвлэл (ECMA-262)
Энэ тодорхойлолтод "Операторын төрөл"-ийн тодорхойлолт.
Стандарт
ECMAScript 1-р хэвлэл (ECMA-262)
Энэ тодорхойлолтод "Операторын төрөл"-ийн тодорхойлолт.
Стандарт Анхны тодорхойлолт. JavaScript 1.1 дээр хэрэгжүүлсэн

Хөтөчийн нийцтэй байдал

GitHub дээрх нийцтэй байдлын өгөгдлийг шинэчлэх

КомпьютерГар утассервер
ChromeирмэгFirefoxInternet ExplorerДуурьсафариAndroid вэб үзэхAndroid-д зориулсан ChromeAndroid-д зориулсан FirefoxAndroid-д зориулсан OperaiOS дээрх SafariSamsung интернетNode.js
төрөлChrome Бүрэн дэмжлэг 1 ирмэг Бүрэн дэмжлэг 12 Firefox Бүрэн дэмжлэг 1 IE Бүрэн дэмжлэг 3 Дуурь Бүрэн дэмжлэгТиймээсафари Бүрэн дэмжлэгТиймээвэб үзэх Android Бүрэн дэмжлэг 1 Chrome Android Бүрэн дэмжлэг 18 Firefox Android Бүрэн дэмжлэг 4 OperaAndroid Бүрэн дэмжлэгТиймээSafari iOS Бүрэн дэмжлэгТиймээSamsung интернет Android Бүрэн дэмжлэг 1.0 nodejs Бүрэн дэмжлэгТиймээ

Домог

Бүрэн дэмжлэгБүрэн дэмжлэг

IE-ийн тусгай тэмдэглэл

IE 6, 7, 8-д олон хост объектууд нь функц биш харин объект юм. Жишээлбэл.