Нээлттэй
Хаах

Өгөгдлийн js объектыг үүсгэсэн газар. Би үүрлэсэн объект, массив эсвэл JSON-д хэрхэн хандаж, боловсруулах вэ? Өгөгдлийн бүтцийн "гүн" нь надад мэдэгдэхгүй байвал яах вэ

JavaScript-д гурван төрлийн объект байдаг: суурилагдсан объектууд, хөтчийн объектууд, програмист өөрөө бий болгодог объектууд (Зураг 2.1).

Цагаан будаа. 2.1. JavaScript дахь объектууд

Эдгээр төрөл бүр өөрийн гэсэн зорилго, өөрийн гэсэн шинж чанартай байдаг.

Баригдсан объектууд

Доор бид эдгээр объектуудыг тодорхойлохгүйгээр JavaScript скрипт дээр шинж чанар, аргуудыг ашиглах боломжтой суурилагдсан объектуудыг жагсаав.

Энд * нь Microsoft JScript 3.0 хувилбарт тодорхойлсон суурилагдсан объектуудыг илэрхийлнэ. Энэ хувилбар нь Microsoft Internet Explorer хөтөчийн 4.0 хувилбар дээр хэрэгжсэн.

Баригдсан объектууд нь мөр, хуанлийн огноо, массив, тоо гэх мэт янз бүрийн үйлдлүүдийг хийхэд маш тохиромжтой. Тэд программистыг мөрүүдийг хөрвүүлэх, математик функцийг тооцоолох гэх мэт янз бүрийн ердийн үйлдлүүдийг хийхээс чөлөөлдөг.

Баригдсан объектуудтай хэрхэн ажиллах вэ?

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

Практик жишээ болгон одоогийн огноо, цагийг харуулсан HTML баримт бичгийг авч үзье. Энэхүү баримт бичгийн эх бичвэрийг Жагсаалт 2.1-ээс олж болно.

Жагсаалт 2.1. Файлын бүлэг2/огноо/огноо.html

Огноо, цагийг харуулах Огноо, цагийг харуулах

Энд JavaScript скрипт нь бүх C++ фэнүүдэд танил болсон new түлхүүр үг болон параметргүй Date бүтээгчийг ашиглан Data объектыг үүсгэдэг:

var dt; dt = шинэ огноо();

Ийм аргаар үүсгэсэн өгөгдлийн объект нь хэрэглэгчийн одоогийн локал огноогоор (харгалзах HTML баримтыг татаж авсан вэб серверээс биш) эхлүүлдэг.

Дараах мөр нь огнооны текстийн мөрийг үүсгэдэг:

szDate = "Огноо: " + dt.getDate() + "." + dt.getMonth() + "." +dt.getYear();

Календарийн огноо, сарын дугаар, жилийн дугаарын утгыг getDate, getMonth, getYear аргыг ашиглан эндээс авна. Эдгээр аргууд нь одоогийн огноог агуулсан dt объект дээр дуудагддаг.

Огнооны текстийн мөрийг баримт бичгийн объект дээр тодорхойлсон бичих аргыг ашиглан HTML баримт бичигт гаргана.

document.write(szDate);

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

Date объект нь одоогийн цагийн талаарх мэдээллийг агуулна гэдгийг анхаарна уу. Энэ мэдээллийг getHours, getMinutes болон getSeconds аргыг (цаг, минут, секунд) ашиглан дэлгэцэнд гаргаж авдаг.

document.write("Цаг: " + dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds());

Microsoft Internet Explorer 4.0 хөтчийн цонхыг үзэхэд HTML баримт бичгийн харагдах байдлыг Зураг дээр үзүүлэв. 2.2.

Цагаан будаа. 2.2. Орон нутгийн огноо, цагийг харах

Бид материалыг судлах явцад бусад баригдсан объектуудын ашиглалтыг харуулах болно.

Хөтөчийн объектууд

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

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

Хөтчийн объектын шатлал

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

Цагаан будаа. 2.2. Хөтчийн объектын шатлал

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

Хэрвээ хөтчийн цонхонд фреймтэй HTML баримтыг ачаалвал фрейм бүрт тусдаа цонх үүсэх ба энэ цонхыг цонхны объект болгон үүсгэнэ.

Баримт бичгийн объект нь бусад объектуудыг агуулдаг бөгөөд тэдгээрийн бүтэц нь хөтчийн цонхонд ачаалагдсан HTML баримтаар бүрэн тодорхойлогддог. Эдгээр нь маягтууд, бусад HTML баримтуудын холбоосууд эсвэл нэг баримт бичиг доторх локал холбоосууд, баримт бичгийн URL-г тодорхойлсон объектууд гэх мэт байж болно.

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

Дээр дурдсан объектуудын шинж чанаруудад хандсанаар JavaScript скрипт нь HTML баримт бичгийн гарчиг гэх мэт янз бүрийн шинж чанарыг тодорхойлж чадна. Энэ нь баримт бичигт байрлуулсан бүх холбоосууд болон HTML баримт бичигт тодорхойлсон маягтын талбаруудын агуулгад хандах боломжтой.

Объектуудтай холбоотой үйл явдлууд

Хөтөчийн объектуудын талаар бас нэг чухал тэмдэглэл хийцгээе.

Ийм объект бүр нь JavaScript скрипт дээр боловсруулагдах боломжтой үйл явдлын тодорхой багцтай холбоотой байдаг.

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

JavaScript скрипт нь жишээ нь, хэрэглэгчдэд мэндчилгээний мессежийг харуулах эсвэл onLoad үйл явдлыг зохицуулах үед нэмэлт мэдээлэл авахыг хүсэх боломжтой. Цонхыг зогсоох үед (onUnload үйл явдал гарч ирэх үед) скрипт нь тухайн цонхтой холбоотой аливаа эх сурвалжийг гаргах эсвэл дэлгэцийн дэлгэцэн дээр зурвас харуулах боломжтой.

Үйл явдлууд нь бусад хөтчийн объектуудтай холбоотой байдаг. Эдгээр объектуудыг тайлбарлахдаа бид тэдгээрийн талаар ярих болно.

Програмистын үүсгэсэн ангиуд дээр суурилсан объектууд

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

JavaScript анги нь өгөгдлийн үүрэг гүйцэтгэдэг шинж чанаруудыг тодорхойлсон функцээр үүсгэгддэг. Аргын хувьд тэдгээрийг мөн функц гэж тодорхойлдог, гэхдээ тусад нь.

Тодорхой жишээ хэлье.

Утасны мэдээллийн санд хуурмаг бичлэг хадгалах зориулалттай анги үүсгэх хэрэгтэй гэж бодъё. Энэ ангид бид нэр, овог, утасны дугаар, хаягийг хадгалах шинж чанарууд, түүнчлэн зөвшөөрөлгүй нэвтрэхээс хамгаалагдсан бичлэгийн тусгай шинж чанарыг өгөх шаардлагатай. Нэмж дурдахад, зурагт үзүүлсэн шиг объектын агуулгыг хүснэгт хэлбэрээр харуулах аргыг боловсруулах шаардлагатай. 2.3.

Цагаан будаа. 2.3. Нийтлэлийн агуулгыг үзэж байна

Юуны өмнө myRecord нэртэй өөрийн ангиа үүсгэцгээе. Энэ нь одоогоор ямар ч арга байхгүй байж магадгүй, бид дараа нь нэмэх болно.

Шаардлагатай ангиудыг дараах байдлаар үүсгэнэ.

функц myRecord(нэр, гэр бүл, утас, хаяг) ( this.name = name; this.family = family; this.phone = phone; this.address = address; this.secure = false; )

Манай ангийн тодорхойлолт нь бүтээгч функцээс өөр зүйл биш гэдгийг харахад хялбар байдаг. Конструкторын параметрүүд нь тухайн объектыг анги дээр үндэслэн үүсгэх үед түүний шинж чанарыг тохируулах зорилготой юм.

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

Манай бүтээгч safe to false гэж нэрлэгддэг шинж чанарыг эхлүүлж байгааг анхаарна уу. Зохицуулагчид тохирох параметрийг оруулаагүй бөгөөд энэ нь нэлээд хүлээн зөвшөөрөгдөхүйц юм.

Тодорхой ангиудыг хэрхэн ашиглах вэ?

Энэ анги дээр үндэслэн та дурын тооны объект үүсгэж болно. Доор бид myRecord анги дээр тулгуурлан rec1 болон rec2 хоёр объектыг үүсгэсэн JavaScript скриптийн фрагментийг өгсөн:

var rec1; var rec2; rec1 = new myRecord("Иван", "Иванов", "000-322-223", "Малая Большая гудамж, 225, 226-р байр"); rec2 = new myRecord("Петр", "Петров", "001-223-3334", "Большая Малайя гудамж, 552, 662 тоот"); rec2.secure = үнэн;

Объектуудыг C++ болон Java хэл дээр програм бичсэн хүмүүст танил болсон шинэ оператор ашиглан бүтээдэг. Энд бид үүсгэсэн объектуудын шинж чанарыг эхлүүлэхийн тулд параметрүүдийг бүтээгчид дамжуулдаг.

Safety нэртэй өмчийн хувьд rec2 объектод сүүлийнх нь үүсгэгдсэний дараа эхлүүлдэг. Үнэн утгыг түүнд бичнэ. Бид rec1 объектын аюулгүй байдлын шинж чанарыг өөрчлөөгүй тул үүнийг худал гэж хадгалсан.

Одоо бидний даалгавар бол бидний тодорхойлсон ангид printTableHead, printTableEnd, printRecord гэсэн шинэ аргуудыг нэмэх явдал юм. Эдгээр аргуудын эхний хоёр нь HTML баримт бичигт тус тус хүснэгтийн эхлэл ба төгсгөлийн фрагмент, гурав дахь нь бичлэгийн агуулгыг тусгасан хүснэгтийн мөрүүдийг гаргадаг.

myRecord ангийн шинэ тодорхойлолтыг доор нэгтгэн үзүүлэв.

функц printTableHead() ( . . . ) функц printTableEnd() ( . . ) функц printRecord() ( . . . ) функц myRecord(нэр, гэр бүл, утас, хаяг) ( this.name = нэр; this.family = гэр бүл this.phone = phone; this.printTableHead;

Энд бүтээгчийг тодорхойлохын өмнө бид ангийнхаа функцийн аргуудын тодорхойлолтуудыг байрлуулсан. Нэмж дурдахад шинэ шинж чанаруудын тодорхойлолтыг бүтээгчид нэмсэн:

this.printRecord = printRecord; this.printTableHead = printTableHead; this.printTableEnd = printTableEnd;

Ангиа ингэж тодорхойлсны дараа та объект үүсгэж, тодорхой аргуудыг дуудаж болно:

rec1.printTableHead(); rec1.printRecord(); rec1.printTableEnd(); rec2.printTableHead(); rec2.printRecord(); rec2.printTableEnd();

Зураг дээр үзүүлсэн баримт бичиг рүү буцна уу. 2.3, бид бүрэн эхийг нь толилуулж байна (Жагсаалт 2.2).

Жагсаалт 2.2. Файлын бүлэг2/NewObject/NewObject.html

Бичлэгүүдийг харах Бичлэгүүдийг харах

Бид шинэ myRecord ангийн тодорхойлолт болон түүний аргуудыг уламжлалт ёсоор HTML баримт бичгийн толгой хэсэгт байрлуулсан.

PrintTableHead арга нь HTML баримт бичигт хүснэгтийн толгойг хэвлэдэг. Энэ толгойн харагдах байдал нь тухайн объектын шинж чанаруудын агуулгаас хамаарна.

Нэгдүгээрт, printTableHead арга нь энэ түлхүүр үгийг ашиглан аюулгүй байдлын шинж чанарыг шалгадаг.

var szSec = ""; if(this.secure) szSec = " (Аюулгүй)"; else szSec = " (Аюулгүй)".fontcolor("улаан");

Энд энэ түлхүүр үг нь printTableHead аргыг дуудсан объектын шинж чанарыг ашиглах шаардлагатай гэсэн үг юм.

Хамгаалалтын шинж чанарын агуулга үнэн бол "(Secure)" мөрийг szSec текст хувьсагч руу бичнэ. Хэрэв худал бол энэ хувьсагч руу "(Аюулгүй) мөр бичигдэх ба мөрийн өнгийг улаан болгож тохируулна.

JavaScript-д бүх текстийн мөрүүд (түүний дотор шууд утга) нь суулгасан String ангийн объектууд байдаг тул та тэдгээрт зориулж энэ ангид тодорхойлсон аргуудыг дуудаж болно. Ялангуяа үсгийн өнгөний арга нь шугамын өнгийг тохируулах боломжийг олгодог бөгөөд үүнийг бидний ашигладаг байсан.

Дараа нь printTableHead арга нь HTML баримт бичигт мэдэгдлийг гаргана

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

printTableEnd арга нь мэдэгдлийг HTML баримт бичигт хэвлэдэг

Хүснэгтийн тодорхойлолтыг дуусгах, мөн бие биенээ дагаж байгаа хүснэгтүүдийг салгах хоосон догол мөр:

функц printTableEnd() ( document.write(""); document.write("

"); }

Манай ангид тодорхойлсон сүүлчийн аргыг printRecord гэж нэрлэдэг. Энэ нь объектын эхний дөрвөн шинж чанарын агуулгыг HTML баримт бичигт тайлбарласан printTableHead функцээр тодорхойлсон хүснэгтээс мөр болгон хэвлэнэ.

Объектийн шинж чанаруудын агуулгыг налуу үсгээр хэвлэсэн болохыг анхаарна уу, бид үүнийг налуу аргыг гэж нэрлэдэг.

баримт бичиг. бичих(" Нэр:" + this.name.italik() + "");

Дээр бид myRecord ангийн тодорхойлолтыг аль хэдийн тайлбарласан.

Одоо HTML баримт бичгийн үндсэн хэсэгт байрлах скриптийнхээ хоёр дахь хэсэг рүү шилжье.

Энд бид myRecord класс дээр тулгуурлан rec1 ба rec2 хоёр объект үүсгэж, дараа нь rec2 объектын аюулгүй байдлыг үнэн болгож тохируулна.

Таны харж байгаагаар манай ангиудыг ашиглах нь бидний утасны мэдээллийн санд байгаа бичлэгийн агуулгыг эхлүүлэх, харуулах ажлыг ихээхэн хялбаршуулсан. Үнэн хэрэгтээ, бид энэ ажлыг ангидаа урьдчилан тодорхойлсон хэд хэдэн аргыг дуудах зорилгоор багасгасан.

Энэ бүлэгт:

JavaScript нь скрипт бичихдээ ашиглаж болох хэд хэдэн урьдчилан тодорхойлсон объектуудтай. Эдгээрт Array, Boolean, Date, Function, Math, Number, RegExp болон String зэрэг объектууд, мөн үндсэн объект Object орно. Хэлний өмнөх хувилбаруудад баримт бичгийн объектууд (цонх, баримт бичиг) мөн үүнд багтсан байсан боловч одоо эдгээр нь JavaScript хэлний цөмөөс хасагдсан бөгөөд баримт бичгийн объектын загварын (DOM) тодорхойлолтод хамаарах болно. дараа хэлэлцсэн. Гэсэн хэдий ч эдгээр объектуудын зарим шинж чанарууд (баримт бичиг, цонх) бидэнд аль хэдийн танил болсон.

Гэсэн хэдий ч орчин үеийн үзэл баримтлалд суурилуулсан JavaScript объектууд руу буцаж орцгооё. Математик болон Огнооноос бусад бүх суурилагдсан объектууд нь бүтээгч, прототип зэрэг шинж чанартай байдаг. Эдгээр нь одоо байгаа объектуудад шинэ шинж чанаруудыг нэмэхэд ашиглагддаг бөгөөд Функц объектын контекстоор дүрслэгдсэн байдаг.

Обьект

Бүх JavaScript объектууд нь Object объектын удам юм. Тиймээс энэ объектын бүх шинж чанар, аргууд нь бусад JavaScript объектуудад бас боломжтой.

Object объектын хувьд зөвхөн 2 шинж чанарыг тодорхойлсон байдаг - бүтээгч ба прототип. Бүтээгчийн шинж чанар нь объектын прототипийг үүсгэдэг функцийг тодорхойлдог - зөвхөн түүний нэрийг төдийгүй бүхэл бүтэн функц. Өөрөөр хэлбэл, зарим туршилтын объект тодорхойлогдож, энэ tmp объектын жишээ үүсгэгдсэн тохиолдолд сонголтыг авч үзье.

Функцийн тест(хувилбар) ( this.version = хувилбар; ) tmp = new test(1);

Энэ тохиолдолд байгуулагчийн шинж чанарыг ашиглан туршилтын объектын эх кодыг харж болно (Зураг 4.6):

Анхааруулга(tmp.constructor);

Цагаан будаа. 4.6.

Гэсэн хэдий ч энэ өмч нь нэг хязгаарлалттай: энэ нь JavaScript-ийн суурилагдсан объектуудын кодыг хэвлэх боломжгүй: ийм тохиолдолд гаралтын мэдээлэл нь прототип функцын нэр болон "" мөрөөр хязгаарлагддаг.

Прототипийн шинж чанарын хувьд энэ нь одоогийн объектын прототип функцэд хандах боломжийг олгодог. Энэ шинж чанарыг ашигласнаар объектын прототипийн шинж чанарыг өөрчлөх боломжтой. Жишээлбэл, та prototype шинж чанарыг ашиглан тестийн төрлийн объектын шинэ шинж чанарыг нэмж болно:

Test.prototype.comment = "Шинэ тайлбар өмч";

Одоо аль хэдийн үүсгэсэн tmp instance зэрэг тестийн төрлийн бүх объектууд тайлбар шинж чанартай байх бөгөөд үүнийг дараах шалгалтыг ашиглан баталгаажуулахад хялбар болно.

Анхааруулга(tmp.comment);

Үүнээс гадна, үүнтэй төстэй байдлаар суурилуулсан JavaScript объектуудыг шинэчлэх боломжтой. Жишээлбэл, хэрэв бид массивуудад тайлбар гэх мэт шинж чанарыг нэмэх шаардлагатай бол бид үүнийг (мэдээжийн хэрэг одоогийн хувилбарын хүрээнд) Array объектын прототипийг дурдаж, түүнд харгалзах шинж чанарыг нэмэх замаар хийж болно:

Array.prototype.description = "";

Аргуудын хувьд Объект объектын хувьд арай илүү тодорхойлогдсон аргууд байдаг - тэдгээрийн 5 хүртэл. Эдгээр нь toSource, toString, watch, unwatch болон valueOf бөгөөд тэдгээрийн товч тайлбарыг Хүснэгт 4.10-д өгсөн болно.

toString болон valueOf аргууд нь бараг бүх суулгасан JavaScript объектуудад хамаарах ба хөрвүүлэлт хийх шаардлагатай үед орчуулагч ихэвчлэн автоматаар дуудагддаг. toSource аргын хувьд энэ нь үнэндээ зөвхөн бүтээгчийн өмчийн ажлыг гүйцэтгэдэг.

Netscape 4 хөтөч дээр (одоо Mozilla дэмждэг) нэвтрүүлсэн үлдэгдэл үзэх болон үзэхгүй байх аргууд нь скриптийг дибаг хийх зориулалттай. Энэхүү нийтлэлийн хүрээнд програмын дибаг хийх асуудлыг авч үзэхгүй тул эдгээр аргуудыг тайлбарлах нь утгагүй болно. Гэхдээ ямар ч тохиолдолд та Sea Monkey (гэхдээ Firefox хөтөч биш) скрипт дибаглагчтай болохыг анхаарна уу - JavaScript Debugger.

Массив объект

Массивын хувьсагч нь тохь тухтай байх үүднээс нэг хувьсагчаар илэрхийлэгдсэн дараалсан багц утгуудыг агуулна. Бид аль хэдийн массивуудтай нэгээс олон удаа тулгарч байсан (зүгээр л аргументуудын массивыг санаарай), одоо тэдний бүх шинж чанар, хэрэглээний нарийн ширийн зүйлийг ойлгох цаг болжээ.

Бусад програмчлалын хэлнүүдээс ялгаатай нь JavaScript нь массив өгөгдлийн төрөлгүй. Гэхдээ та урьдчилан тодорхойлсон массив объектыг ашиглах боломжтой тул энэ хязгаарлалтыг даван туулж байна - Array. Массив объект үүсгэхийн тулд та дараах синтаксуудын аль нэгийг ашиглаж болно.

ArrayName = шинэ Массив(элемент1, элемент2, ... элементN) ArrayName = шинэ массив(Массив урт)

Эхний тохиолдолд массивын бүх бүрэлдэхүүн хэсгүүдийг жагсаасан бол хоёр дахь тохиолдолд элементийн тоог энгийнээр зааж өгсөн болно. Мөн массивыг зарлахдаа литерал ашиглах боломжтой:

Компьютер = ["PC", "Mac", "Sun"];

Массивын элементүүдийг утгуудаар дүүргэх, мөн массивын элементүүдэд хандахын тулд элементийн индексийг ашиглаж болно. Массивын элементүүдийн индекс тэгээс эхэлдэг гэдгийг анхаарах хэрэгтэй.

Var өнгө = шинэ массив(3); өнгө = "Улаан"; өнгө = "Цэнхэр"; өнгө = "Ногоон";

Массивыг зарлахдаа JavaScript хэлээр өгөгдсөн боломжийг ашиглах нь ихэвчлэн тохиромжтой байдаг:

Var color = new Array("Улаан","Цэнхэр","Ногоон");

Массивын уртыг (массивийг бүрдүүлдэг элементийн тоо) олохын тулд та length шинж чанарыг ашиглах хэрэгтэй:

Var NumColors = color.length;

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

Аргуудын хувьд стандарт toSource, toString болон valueOf-ээс гадна массивууд нь Хүснэгт 4.11-д жагсаасан өөр хэдэн аравтай байдаг.

Хүснэгт 4.11. Массив объектын аргууд Аргын тайлбар
concatХоёр массивыг нэгтгэж, шинийг буцаана
нэгдэхБүх массивын элементүүдийг нэг мөрөнд нэгтгэдэг
попМассиваас сүүлчийн элементийг устгаад буцаана
түлхэхМассивын төгсгөлд нэг буюу хэд хэдэн элемент нэмж, түүний шинэ уртыг буцаана
урвууМассивын элементүүдийг эхнийх нь сүүлчийнх болон эсрэгээр нь зөөнө
ээлжМассивын эхний элементийг устгаад буцаана
зүсмэлМассивын элементүүдийн хэсгийг устгаж, шинэ массив буцаана
залгаасМассиваас элемент нэмэх ба/эсвэл устгах
ангилахМассивын элементүүдийг цагаан толгойн дарааллаар эрэмбэлнэ
солихМассивын эхэнд нэг буюу хэд хэдэн элемент нэмж, массивын шинэ уртыг буцаана (MSIE 5.5 ба 6-д энэ арга нь юу ч буцаадаггүй)

Зарим аргыг илүү нарийвчлан авч үзье. Тиймээс, concat аргыг ашиглан та 2 массивыг нэг дор нэгтгэж болно.

Var a = new Array("A1", "A2"); var b = new Array("B1", "B2"); var ab = a.concat(b);

Энд ab хувьсагч нь наасан хоёр массивын бүх 4 элементийг агуулсан массив болно. Хэрэв бид одоо ийм массив дээр нэгдэх аргыг хэрэглэвэл үр дүн нь энэ массивын бүх элементүүдийг таслалаар тусгаарласан мөр болно.

Str = ab.join(); // авах str = "A1,A2,B1,B2"

Поп аргын хувьд, хэрэв бид үүнийг ижил массив дээр хэрэглэвэл "B2" хариултыг авах бөгөөд массив эхний гурван утга хүртэл тайрах болно. Харин шилжилтийн арга нь эхний элементийг (манай тохиолдолд "A1") буцаадаг бөгөөд массивтай ижил үйлдлийг гүйцэтгэдэг бөгөөд цорын ганц ялгаа нь үлдсэн элементүүдийг урагшлуулах явдал юм.

Эдгээр болон массивын бусад аргууд хэрхэн ажилладагийг илүү сайн ойлгохын тулд Жагсаалт 4.3 дахь дараах жишээг авч үзье.

Жагсаалт 4.3. Массивтай ажиллах

Үүнтэй ижил жишээг array.html файлаас харж болно, тэр үед та түүний ажлын бүх үр дүнг хөтчөөс харж болно (4.7-р зургийг үз).

Цагаан будаа. 4.7. Холбох аргыг хэрэглэсний үр дүн: буцаж ирсэн массив ба өөрчлөлтүүд

Массивууд нь бас олон хэмжээст байж болно, i.e. массивын элемент нь өөр массив байж болно. Энэ тохиолдолд массивын элементэд хандахын тулд дараах синтаксийг ашиглана.

Array2D="Элемент 0,0" Array2D="Элемент 0,1" ... Array2D[N][N]="Элемент N,N"

Хоёр хэмжээст массивыг бөглөх, гаргах жишээг arrays.html файлаас олж болох ба массивын бараг бүх аргуудын интерактив жишээ бас бий.

Булийн объект

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

BooleanObj = шинэ Boolean(утга)

Энд утга нь шаардлагатай бол үнэн эсвэл худал болгож хувиргах эхлэлийн илэрхийлэл юм. Хэрэв та 0, null, false, NaN, undefined, эсвэл хоосон мөр зэрэг утгыг зааж өгвөл Boolean объектыг эхлүүлсний үр дүн худал байх ба бусад утгын хувьд үр дүн нь үнэн байх болно.

Үнэн ба худал гэсэн анхдагч логик утгыг Булийн объектын үнэн ба худал өгөгдлийн төрлүүдтэй андуурч болохгүй. Жишээлбэл, хэрэв та x хувьсагчийг зарлаж, түүнийг худал гэж эхлүүлсэн Boolean объектын утгыг оноох юм бол энэ нь харьцуулах үед үнэн гэж үнэлэгдэх болно:

X = шинэ Boolean(худал); // (x)-ийг харьцуулахдаа бид үнэн болно

Үүний зэрэгцээ, хэрэв та энгийн өгөгдлийн төрлийг false хувьсагчдад зүгээр л оноож өгвөл тэр яг үүнийг хүлээн авна:

X = худал; // (x)-ийг харьцуулахдаа бид худал болно

Энэ объектын практик хэрэглээний хувьд үүнийг бусад төрлийн утгыг Boolean болгон хөрвүүлэх функц болгон ашиглаж болно.

A = 100; x = Boolean(a); // (x) (...) бол x үнэн болно.

Гэхдээ үнэн хэрэгтээ та үүнийг хийх магадлал багатай, учир нь шаардлагатай бол ийм хувиргалтыг JavaScript орчуулагч автоматаар гүйцэтгэдэг - дээрх жишээнд та "хэрэв (a) ..." гэж шууд бичиж, шаардлагатай өөрчлөлтийг хийж болно. Энэ тохиолдолд ямар ч тохиолдолд хийх болно.

Огнооны объект

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

Шинэ огноо() шинэ огноо(миллисекунд) шинэ огноо("Огноо_мөрт")

Эхний тохиолдолд Date объектыг одоогийн цагтай хамт үүсгэсэн бол хоёрдугаарт 1970 оны 1-р сарын 1-ээс хойш өнгөрсөн миллисекундын тоог зааж өгөх ёстой. Хэрэв огноог мөр болгон зааж өгсөн бол "2005 оны 2-р сарын 28" хэлбэртэй байна. Жил, сар, өдөр гэх мэт бүхэл тоон утгыг ашиглан огноог тохируулах боломжтой.

Шинэ огноо(жил, сар, өдөр [, цаг, минут, секунд, миллисекунд])

Мэдээжийн хэрэг, энэ тохиолдолд секунд болон миллисекундыг зааж өгөхөөс зайлсхийх боломжтой, ялангуяа хөтчийн хуучин хувилбаруудад миллисекундууд дэмжигдээгүй тул. Нэмж хэлэхэд, 1.3 хувилбараас өмнөх JavaScript нь 1970 оны 1-р сарын 1-ээс өмнөх огноог дэмждэггүй. Мөрт заасан утгуудын форматын хувьд жил нь дурын 4 оронтой тоо (хэрэв та 2 оронтой тоо зааж өгвөл 1900-г нэмнэ), сарын тоо нь 0-ээс ( 1-р сарын 11-ний хооронд (12-р сар), өдөр нь 0-ээс 31 хүртэл байна. Үүний дагуу цагийн утгууд нь бас хязгаарлагдмал байдаг: цагийн хувьд 0-ээс 23 хүртэл бүхэл тоо, секунд ба минутын хувьд - 0-ээс 59 хүртэл, мөн миллисекундын хувьд - 0-ээс 999 хүртэл. Тиймээс Date төрлийн объектын утгыг 2005 оны 5-р сарын 9-нд зааж өгөхийн тулд та дараахийг бичих хэрэгтэй:

Var anyday = new Date(2005, 5, 9);

Хэрэв та одоогийн огноо, цагийн утгыг авах шаардлагатай бол ямар ч параметр шаардлагагүй болно.

Var now = шинэ огноо();

JavaScript 1.3-аас хойш огнооны хязгаар нь 1970 оны 01-р сарын 1-нээс өмнө болон дараа нь 100 сая хүртэл хоног байж болно (энэ нь нийтдээ бараг 550 мянган жил юм!). Үүнтэй ижил хувилбарт олон зууны өөрчлөлттэй холбоотой алдаа гарахаас зайлсхийхийн тулд жилийг дөрвөн оронтой тоогоор байнга зааж өгөх шаардлага байсан.

Date объекттой ажиллахын тулд 2 шинж чанар байдаг - бүтээгч ба прототип, түүнчлэн огнооны хүссэн хэсгийг (жил, сар, өдөр, цаг) сонгох, аль нэг форматаар харуулах, гэх мэт. Бүгдийг 4.12-р хүснэгтэд жагсаав.

Хүснэгт 4.12. Огнооны объектын аргууд Арга ба түүний синтакс Тодорхойлолт
getDate()Орон нутгийн цагаар тухайн сарын өдрийг буцаана
getDay()Орон нутгийн цагаар долоо хоногийн өдрийг буцаана
getFullYear()Орон нутгийн цагаар оныг буцаана
getHours()Орон нутгийн цагаар одоогийн цагийг (цаг) буцаана
getMilliseconds()Орон нутгийн цагаар одоогийн цагийг (миллисекунд) буцаана
getMinutes()Орон нутгийн цагаар одоогийн цагийг (минут) буцаана
getMonth()Орон нутгийн цагаар одоогийн цагийг (сар) буцаана
getSeconds()Орон нутгийн цагаар одоогийн цагийг (секунд) буцаана
getTime()Одоогийн цагийг орон нутгийн цагаар хэмжигдэхүүн болгон буцаана
getTimezoneOffset()Орон нутгийн цагаар GMT-тай харьцуулахад цагийн зөрүүг минутаар буцаана
getUTCDate()Бүх нийтийн цагаар сарын өдрийг буцаана
getUTCDay()Бүх нийтийн цагаар долоо хоногийн өдрийг буцаана
getUTCFullYear()Дэлхий нийтийн цагаар оныг буцаана
getUTCHours()Орчлон ертөнц дэх одоогийн цагийг (цаг) буцаана
getUTCMmilliseconds()Бүх нийтийн цагийн одоогийн цагийг (миллисекунд) буцаана
getUTCMinutes()Одоогийн цаг (минут)-ыг Universal Time-д буцаана
getUTCMonth()Одоогийн цагийг (сар) Universal Time-д буцаана
getUTCSeconds()Бүх нийтийн цагийн одоогийн цагийг (секунд) буцаана
getYear()Хуучирсан. Богино (хоёр оронтой) Universal Time форматаар оныг буцаана
задлан шинжлэх(огноо_мөр)Орон нутгийн цагаар 1970 оны 1-р сарын 1-ээс параметрт заасан утга хүртэл өнгөрсөн миллисекундын тоог буцаана.
тогтоосонDate(өдөр)Орон нутгийн цагаар сарын өдрийг тохируулна
тогтоосонБүтэн жил(жил)Орон нутгийн цагаар жилийг тохируулна
тогтоосонHours(цаг)Орон нутгийн цагаар цагийг (цаг) тохируулна
тогтоосон Миллисекунд (миллисекунд)Орон нутгийн цагаар цагийг (миллисекунд) тохируулна
тогтоосон минут(минут)Орон нутгийн цагаар цагийг (минут) тохируулна
тогтоосон сар(сар)Орон нутгийн цагаар цагийг (сар) тохируулна
setSeconds (секунд)Орон нутгийн цагаар цагийг (секунд) тохируулна
setTime (миллисекунд)Орон нутгийн цагаар тодорхой огнооны цагийг миллисекундээр тохируулна
setUTCDate(өдөр)Сарын өдрийг бүх нийтийн цагаар тохируулна
setUTCFullYear (жил)Жилийг Universal Time-д тохируулна
setUTCHours(цаг)Universal Time дахь цагийг (цаг) тохируулна
SetUTCMмиллисекунд(миллисекунд)Universal Time-д цагийг (миллисекунд) тохируулна
setUTCMinutes (минут)Universal Time дахь цагийг (минут) тохируулна
тохируулахUTCMсар(сар)Universal Time дахь цагийг (сар) тохируулна
setUTCSeconds (секунд)Universal Time дахь цагийг (секунд) тохируулна
тогтоосон жил(жил)Хуучирсан. Орон нутгийн цагаар жилийг тохируулдаг бөгөөд жилийн утгыг хоёр оронтой форматаар авах боломжтой
toGMTString()Хуучирсан. Огноог GMT цагтай харгалзах мөр болгон хувиргана
toLocaleString()Огноо, цагийг локал системийн тохиргоонд тохирох форматын мөр болгон буцаана
toLocaleDateString()Огноог локал системийн тохиргооны форматтай тохирох мөр болгон буцаана
toLocaleTimeString()Орон нутгийн системийн тохиргооны дагуу форматлагдсан мөр болгон цагийг буцаана
toSource()Огнооны объектыг шууд илэрхийллээр буцаана
toString()Мөр дүрслэл дэх огнооны объектыг буцаана
toUTCString()Огноог Universal Time форматын мөр болгон хувиргадаг
UTC(параметрүүд)1970 оны 1-р сарын 1-ээс хойш өнгөрсөн миллисекундын тоог бүх нийтийн цагаар буцаана. Параметрүүд нь жил, сар, өдөр, түүнчлэн (заавал биш) цаг, минут, секунд, миллисекунд зэргийг заана.
valueOf()Огноог үндсэн утга болгон буцаана

Ийм олон тооны аргуудыг үл харгалзан Date объекттой ажиллах нь маш энгийн: та аргуудыг нэрлэх зарчмыг ойлгох хэрэгтэй.

  • "set"-ээр эхэлсэн аргууд нь Date объектод огноо, цагийг тохируулахад зориулагдсан;
  • "авах"-аар эхэлсэн аргууд нь Date объектуудаас огноо, цаг эсвэл тэдгээрийн хэсгүүдийг татахад зориулагдсан;
  • "to"-оор эхэлсэн аргууд нь огноо, цагийг (эсвэл тэдгээрийн хэсгийг) мөрийн утга болгон буцаана;
  • "UTC" агуулсан аргууд нь ижил төстэй аргуудаас зөвхөн Universal Time форматтай ажилладагаараа ялгаатай байдаг (жишээлбэл, одоогийн цагийн бүстэй харьцуулахад офсетийг харгалзан Гринвичийн дундаж цагийг харуулдаг).

Тиймээс шаардлагатай бол UTC ашиглан хүссэн параметрээ авах эсвэл тохируулахын тулд огноо, цагийн шаардлагатай хэсгийн нэрийг авах эсвэл тохируулахын тулд нэмэх л үлдлээ. За, үр дүнг "хүний" хэлбэрээр авах шаардлагатай бол to аргуудыг ашигла. Та мөн онтой ажиллахын тулд зөвхөн бүрэн форматын функцуудыг үргэлж ашиглах ёстой гэдгийг санах хэрэгтэй (жишээ нь getFullYear эсвэл getUTCFullYear, харин getYear биш).

JavaScript дахь огнооны тэмдэгт мөр дараах форматтай байна:

Долоо хоногийн өдөр Сар Огноо Жил Цаг: Минут: Секунд GMT±Offset

Огнооны дүрслэлийг тодорхой харж, нэгэн зэрэг toString функцууд хэрхэн ажилладагийг авч үзэхийн тулд тэдгээр нь бүгд гаралт болгон юу буцаадаг болохыг харцгаая. Энэ тохиолдолд тодорхой функцийн ажиллагааг үзэхийн тулд хамгийн түрүүнд санаанд орж болох зүйл бол баримт бичигт текст гаралтыг ашиглах явдал юм.

Document.writeln(DateObject.toString()); document.writeln(DateObject.toGMTString()); // гэх мэт.

Гэхдээ үнэндээ олон функц байдаг тул ямар төрлийн үйлдэл хийснийг урьдчилан бичих нь зүйтэй болов уу.

Document.writeln("DateObject.toString()" + DateObject.toString());

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

Document.writeln("DateObject.toLocaleString()" + DateObject.toString());

Гэхдээ IBM-ийн уриа нь хүмүүс бодож, машин ажиллах ёстой. Тиймээс бид компьютерийг хэрхэн ажиллуулах талаар бодож, үүнтэй зэрэгцэн нэмэлт байт код оруулах шаардлагаас өөрийгөө аврахын тулд Жагсаалт 4.4-т хандъя.

Жагсаалт 4.4. Өөр өөр огнооны төрлүүд болон үнэлгээний функцийг гаргах

Огнооны объектын аргууд

Юуны өмнө энэ нь баримт бичигт огноог нэг юмуу өөр хэлбэрээр харуулдаг printDate функцийг тодорхойлдог. Илүү нарийвчлалтай хэлэхэд, энэ нь манай тохиолдолд огноог харуулдаг боловч зарчмын хувьд энэ нь хүлээн зөвшөөрөгдсөн аргумент нь JavaScript кодын бүрэн хэсэг байх үед юу ч гаргаж болно. Энэ тохиолдолд эхлээд кодыг байгаагаар нь харуулах болно (өөрөөр хэлбэл мөрийн хувьсагчийг анхны хэлбэрээр нь хэвлэсэн), дараа нь гүйцэтгэлийн үр дүнг харуулах бөгөөд үүнд үнэлэх функцийг ашигладаг. Үүний үр дүнд ийм функцийг нэг удаа бичсэний дараа та дараа нь бараг ижил текстийг хоёр удаа оруулах шаардлагаас өөрийгөө аварч, бүхэл бүтэн баримт бичигт хандаж болно.

Гаралтын функцийн дараа 2005 оны 3-р сар (4-р сар, 1-р сар тэг болсон), 1-р өдөр, 14 цаг, 30 минут, 45 секундын утгыг өгсөн Date төрлийн объектыг үүсгэнэ. Дараа нь баримт бичиг бичихээр нээгдэж, Date объектын 6 өөр аргад зориулж printDate функцийг дараалан дууддаг. Энэхүү скриптийн үр дүн нь аргын хос утгыг агуулсан 6 мөр ба түүний ажлын үр дүнг хоёр цэгээр тусгаарлана (Зураг 4.8).

Цагаан будаа. 4.8. Өөр өөр аргуудыг ашиглан ижил огноог гаргах

Програмын дотоод дүрслэлд огноог харуулсан toSource аргыг зөвхөн Mozilla хөтчүүд дэмждэг гэдгийг тэмдэглэх нь зүйтэй. Нэмж дурдахад, огноог бусад бүх аргаар харуулах формат нь өөр өөр хөтөч дээр бага зэрэг ялгаатай байж болно. Та ийм жишээг янз бүрийн үзэх програмууд руу ачаалж, тэд юу үйлдвэрлэж байгааг өөрөө харах боломжтой (огноо.html файл).

Функцийн объект

Урьдчилан тодорхойлсон Function объект нь функц болгон гүйцэтгэх ёстой JavaScript кодын мөрийг тодорхойлдог. Функцийн объектыг зарлахын тулд дараах синтаксийг ашиглана уу.

FunctionName = шинэ функц([аргумент1, аргумент2, ...аргументN], FunctionBody)

Энэ тохиолдолд аль ч хувьсагчийн нэр эсвэл одоо байгаа объектын шинж чанарыг функцийн нэр болгон ашиглаж болно. Мөн Function төрлийн объектыг тухайн объектын үйл явдал зохицуулагчийн утга болгон зааж өгөх боломжтой. Хэрэв бид "баримт бичиг ачаалж дууслаа" (document.onload) шиг өөрийн үйл явдал зохицуулагч болгохыг хүсвэл дараах зүйлийг бичиж болно гэж бодъё.

Document.onload = new Function([Аргумент1, ...аргументN], FunctionBody);

Энэ тохиолдолд аргументууд нь функцэд дамжуулагдсан параметрүүд бөгөөд функцийн бие нь энэ функцийн объект руу хандах үед гүйцэтгэх ёстой бодит код юм. Жишээлбэл, та тоог квадрат болгоход ашиглах объектын энэ хувилбарыг бичиж болно:

Var SquareObj = new Function("x", "return x*x");

Энд SquareObj нь хувьсагчийн нэр, x нь хүлээн авсан аргумент, "буцах x*x" нь функцийн бие юм. Функцийн үндсэн хэсэг төдийгүй хүлээн зөвшөөрөгдсөн аргументууд нь хашилтанд бичигдсэн байхаас гадна JavaScript-д заншсанаар объектын төрлүүдийн нэрийг том үсгээр бичсэн байхыг анхаарна уу (Функц) .

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

Var a = 5 + SquareObj(2); // 9 авна

Үнэн хэрэгтээ Function төрлийн объектыг үргэлж функцийн түлхүүр үг ашиглан зарласан ердийн функц хэлбэрээр төлөөлж болно. Тиймээс, хоёр дахь хүч рүү ижил өсөлтийг дараах байдлаар тодорхойлж болно.

SquareFunc(x) функц (х*х; буцаана)

Үүний дагуу та ийм аргаар зарласан функцийг (энэ тохиолдолд процедур биш харин "цэвэр" хэлбэрийн функц) ижил төстэй байдлаар ашиглаж болно.

Var a = 5 + SquareFunc(2); // бид бас 9-ийг авдаг

Тиймээс Function объектыг ашиглан хувьсагчдад утгыг функц болгон өгөх нь функцийг өөрөө зарлахтай адил юм. Гэхдээ үүнтэй зэрэгцэн эдгээр аргууд нь ялгаатай: хэрэв SquareObj нь хувьсагч бөгөөд түүний утга нь Function объект ашиглан үүсгэсэн объектын лавлагаа бол SquareFunc нь функцийн нэр юм. Үүний дагуу программыг гүйцэтгэх явцад тэдгээр нь өөр өөрөөр ажилладаг: функцийн төрлийн объектын хувьд тайлбарлагч хувьсагчтай (манай тохиолдолд SquareObj) таарах бүрт функцийн кодыг бүхэлд нь үнэлдэг бөгөөд ердийн аргаар зарласан функцүүдийн хувьд. кодыг зөвхөн эхний эгнээнд үнэлдэг Хэрэв функц нь нэг удаагийн ажил гүйцэтгэдэг бол энэ ялгаа нь чухал биш байж болох ч Function объектоос үүсгэсэн хувьсагчдыг ашиглах нь програмын давталтын үр ашгийг эрс бууруулдаг. Тиймээс практикт функциональ объектуудыг ашиглах нь маш ховор байдаг, гэхдээ заримдаа тэдгээр нь жишээлбэл, бусад объектуудад арга нэмэхэд тохиромжтой байж болно.

Функцийн объект нь стандарт JavaScript шинж чанаруудыг бүтээгч, прототиптэй бөгөөд өөрийн гэсэн хэд хэдэн шинж чанартай байдаг:

Аргументууд – функцийн параметрт тохирох массив arguments.callee – функцийн биед тохирно. arguments.caller (хуучирсан) – тухайн объектыг дуудсан функцын нэрийг заана; arguments.length – функцийн параметрийн тоог заана. урт – функцээс хүлээгдэж буй аргументуудын тоог заана (аргумент.length-ийн хувьд хүлээн авсан тоог биш);

АНХААР
Бүх аргументуудын шинж чанаруудыг зөвхөн функц дотроос нь харах боломжтой бөгөөд JavaScript 1.4-с эхлэн аргументууд нь Function объектын өмч байхаа больсон, харин ямар ч функцэд далд хэлбэрээр байдаг бие даасан локал хувьсагч юм. Үнэн хэрэгтээ, Функцийн хувьд зөвхөн 1 өөрийн өмч үлдсэн - урт.

Function объект нь шинж чанаруудаас гадна хэд хэдэн аргуудтай байдаг. Иймд хэрэглэх арга нь нэг объектын аргыг нөгөөд хэрэглэх боломжийг олгодог ба дуудлагын арга нь одоогийн байгаа объектын хүрээнд өөр объектын аргыг дуудах боломжийг олгодог. Харамсалтай нь эдгээр аргуудыг практикт хэрэгжүүлэх нь хүссэн зүйлээ орхиж байгаа нь тодорхой. Тиймээс зөвхөн Function объектод ашиглах боломжтой toString, toSource болон valueOf стандарт JavaScript аргуудыг дурдах л үлдлээ.

Математикийн объект

Математик нь үндсэн математикийн тогтмолууд, арга, шинж чанаруудын функцийг агуулсан JavaScript-ийн суурилагдсан объект юм. Жишээлбэл, Math объектын PI шинж чанар нь Pi (π)-ийн утгыг агуулдаг бөгөөд энэ нь ойролцоогоор 3.1416-тай тэнцүү байх ба sin арга нь заасан тооны синусыг буцаадаг.

Математик объект нь π тооноос гадна дараах шинж чанаруудтай.

  • E – натурал логарифмын суурь (ойролцоогоор 2.718)
  • LN10 – 10-ын натурал логарифм (ойролцоогоор 2.302)
  • LN2 – натурал логарифм 2 (ойролцоогоор 0.693)
  • LOG10E – E-ийн аравтын бутархай логарифм (ойролцоогоор 0.434)
  • LOG2E – Е-ийн хоёртын логарифм (ойролцоогоор 1.442)
  • SQRT1_2 – квадрат язгуур 0.5 (ойролцоогоор 0.707)
  • SQRT2 – 2-ын квадрат язгуур (ойролцоогоор 1.414)

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

Var CircleLength = диаметр * Math.PI;

Математик объект нь шинж чанаруудаас гадна математикийн үндсэн функцүүдэд тохирох аргуудыг тодорхойлдог. Бүгдийг 4.13-р хүснэгтэд жагсаав.

Хүснэгт 4.13. JavaScript математикийн аргууд Арга ба түүний синтакс Тодорхойлолт
abs(тоо)Аргументийн үнэмлэхүй утгыг буцаана
атан2(y, x)-?-ийн муж дахь тоог буцаана to?, x тэнхлэг ба (x,y) цэгийн хоорондох өнцгийг (радианаар) илэрхийлнэ. Эхний аргумент нь Y координат гэдгийг анхаарна уу
exp (тоо)E-г заасан чадал руу буцаана (экпоненциал логарифм)
тааз (тоо), шал (тоо)Хамгийн ойрын том (тааз) эсвэл жижиг (шал) бүхэл тоо болох утгыг буцаана
мин(тоо1, тоо2), хамгийн их(тоо1, тоо2)Харьцуулж буй хоёр аргументаас бага (мин) эсвэл том (хамгийн их) тоог буцаана уу
нүгэл(тоо),кос(тоо), тан(тоо),асин(тоо), acos(тоо),атан(тоо)Стандарт тригонометрийн функцүүдийн үр дүнг буцаана - синус, косинус, тангенс, арксинус, арккосин ба арктангенс
хүч (суурь, экспонент)Суурийг экспонентын түвшинд буцаана
Санамсаргүй()0-ээс 1 хүртэлх псевдор санамсаргүй тоог буцаана
дугуй (тоо)Хамгийн ойрын бүхэл тоо руу бөөрөнхийлсөн утгыг буцаана
sqrt(тоо)Тооны квадрат язгуурыг буцаана

Шинж чанаруудын нэгэн адил Математикийн объектын аргуудыг ашиглахын тулд та объектын хуулбараас илүүтэй өөрөө лавлах ёстой. Жишээлбэл, тойргийн талбай дээр үндэслэн диаметрийг буцаах функц бичье.

Функц CircleDiam(Square) ( Радиус = Math.sqrt(Square / Math.PI) ; )

Үүнийг практикт ашиглахын тулд та шуурхай, сэрэмжлүүлэх аргуудыг ашиглаж болно:

Var sq = prompt("Талбайг оруулна уу",1); var di = CircleDiam(кв); alert("Тойргийн диаметр: "+di);

Math объектын эдгээр болон бусад аргуудын ажиллагааг math.html файлаас харж болно.

Тооны объект

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

Шинэ дугаар(утга)

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

Хэрэв (x!=Тоо.NaN);

Энэ тохиолдолд x хувьсагч нь тоо агуулсан бол нөхцөл үнэн байх болно, учир нь үүнийг "тоо биш" гэсэн утгатай NaN гэсэн тусгай утгатай харьцуулдаг. NaN-ээс гадна та бусад тусгай утгуудыг ашиглаж болно - эдгээр нь бүгд Number объектын шинж чанарууд юм.

  • MAX_VALUE – боломжит дээд тоо
  • MIN_VALUE – боломжит хамгийн бага тоо
  • NaN - тоо биш
  • СӨРГӨГ_ХЯЗГААР – "сөрөг хязгааргүй", халих үед буцаах тусгай утга
  • POSITIVE_INFINITY – "эерэг хязгааргүй", халих үед буцаах тусгай утга

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

Мэдээжийн хэрэг Number объект нь шинж чанаруудаас гадна аргуудтай байдаг. Стандарт toSource, toString болон valueOf аргуудаас гадна JavaScript 1.5 нь Number объектын toExponential, toFixed, toPrecision гэсэн 3 шинэ эх аргыг нэвтрүүлсэн. Эдгээр нь бүгд нэг формат дээр үндэслэн тоонуудыг мөр болгон хөрвүүлэх зориулалттай. Тиймээс toExponential арга нь тоог индекстэй тоо болгон тэмдэгт мөр болгон хувиргадаг, toFixed арга нь тогтмол тооны аравтын оронтой тоо агуулсан мөр болгон хувиргадаг ба toPrecision арга нь эдгээр аргуудын аль нэгийг ашигладаг. тоо болон хуваарилагдсан аравтын бутархайн тоо.

Эдгээр аргуудын синтаксийг авч үзэхийн тулд илүү дэлгэрэнгүй авч үзье.

Арга([Тэмдэгтийн тоо])

Мэдээжийн хэрэг, бүх аргын хувьд цифрүүдийн тоо нь аравтын бутархайн тоог илэрхийлдэг боловч хэрэв toFixed аргын хувьд анхдагч утга (жишээ нь, юу ч заагаагүй бол) 0 байвал toExponential болон toPrecision-ийн хувьд энэ нь шаардлагатай аравтын бутархайн тоо юм. дугаарыг бүхэлд нь харуулах. Эдгээр бүх аргуудын үйл ажиллагаа, ялгааг илүү сайн ойлгохын тулд Жагсаалт 4.5-ын жишээг ашиглан тэдгээрийг харцгаая.

Жагсаалт 4.5. toExponential, toFixed болон toPrecision аргууд

Number объектын аргууд

Энд бид дахин (Жагсаалт 4.4-ийн адил) эхлээд илэрхийлэл, дараа нь түүний тайлбарын үр дүнг хэвлэдэг функцийг ашигласан боловч энэ тохиолдолд бид үүнийг printNumber гэж нэрлэсэн. Дараа нь тооцоолол хийх хувьсагчийн бодит мэдэгдэл ирдэг. Энэ тохиолдолд бид үүнийг Number төрлийн объект гэж зарласан боловч үнэн хэрэгтээ бид энгийн хувьсагчийн мэдэгдлээр хязгаарлагдаж болох байсан (x = 12.45678). Эцэст нь, баримт бичгийг бичихээр нээгдэж, х хувьсагчийн утгыг ямар ч тодорхой хөрвүүлэлтгүйгээр эхлээд хэвлэнэ (гэхдээ үнэндээ toString() аргыг энд автоматаар ашигладаг гэдгийг бид аль хэдийн мэдэж байгаа), үүний дараа бүх гурван аргыг ашигладаг. эхлээд тооны тэмдэгтүүдийг заахгүйгээр дуудагддаг ба дараа нь 2 ба 4-р параметрүүдээр дуудагдана. Энэ скриптийн үр дүн нь "илэрхийлэл: боловсруулалтын үр дүн" хосыг агуулсан 10 мөр болно (Зураг 4.9).

Цагаан будаа. 4.9.

Эцэст нь хэлэхэд эдгээр аргууд нь зөвхөн JavaScript 1.5 дээр гарч ирсэн бөгөөд үүний дагуу Netscape 4, MSIE 4/5 болон Opera хөтчүүдэд 7.0 хувилбар хүртэл ажиллахгүй гэдгийг дахин тэмдэглэх нь зүйтэй. Үүний зэрэгцээ тэдгээр нь гаралт дахь тоог форматлахад Math объектын round() аргаас илүү уян хатан байдлыг хангадаг.

2011-08-01 // Асуулт, санал, сэтгэгдэл байна уу? Чи чадна

XHTML/HTML4-ийн өдрүүдэд хөгжүүлэгчид DOM-тэй холбоотой дурын өгөгдлийг хадгалахад ашиглаж болох хэдхэн сонголттой байсан. Та өөрийн шинж чанаруудыг зохион бүтээж болох боловч энэ нь эрсдэлтэй байсан - таны код хүчин төгөлдөр бус, хөтөч таны өгөгдлийг үл тоомсорлож магадгүй бөгөөд нэр нь стандарт HTML шинж чанаруудтай таарч байвал асуудал үүсгэж болзошгүй.

Тиймээс ихэнх хөгжүүлэгчид нэмэлт мөрүүдийг хадгалах цорын ганц боломжийн арга байсан тул класс эсвэл rel шинж чанаруудыг дагаж мөрддөг. Жишээ нь, бид Twitter мессежийн цагийн хуваарь гэх мэт мессежийг харуулах виджет бүтээж байна гэж бодъё. Хамгийн тохиромжтой нь JavaScript кодыг дахин бичих шаардлагагүйгээр тохируулах боломжтой байх тул бид хэрэглэгчийн ID-г ангийн атрибутаар дараах байдлаар тодорхойлно.

Манай JavaScript код нь ID msglist бүхий элементийг хайх болно. Скриптийг ашиглан бид user_ -ээр эхэлсэн ангиудыг хайх бөгөөд бидний тохиолдолд "bob" нь хэрэглэгчийн ID байх бөгөөд бид тухайн хэрэглэгчийн бүх мессежийг харуулах болно.

Зургаан сараас дээш (180 хоног) мессежийг алгасах, мөн мессежийн дээд хэмжээг тогтоохыг хүсэж байна гэж бодъё:

Манай ангийн шинж чанар маш хурдан эмх замбараагүй болдог - энэ нь алдаа гаргахад илүү хялбар бөгөөд JavaScript дахь мөрүүдийг задлан шинжлэх нь улам хэцүү болж байна.

HTML5 өгөгдлийн шинж чанарууд

Аз болоход HTML5 нь тусгай шинж чанаруудыг ашиглах боломжийг нэвтрүүлсэн. Та data- гэсэн угтвар бүхий жижиг үсгийн нэрийг ашиглаж болно, жишээлбэл:

Тусгай өгөгдлийн шинж чанарууд:

  • Эдгээр нь мөрүүд - та тэдгээрт JSON гэх мэт стринг хэлбэрээр дүрслэх эсвэл кодлох боломжтой аливаа мэдээллийг хадгалах боломжтой. Төрөл дамжуулалтыг JavaScript ашиглан хийх ёстой
  • тохирох HTML5 элемент эсвэл шинж чанар байхгүй тохиолдолд ашиглах ёстой
  • зөвхөн хуудаснаас үзнэ үү. Микроформатаас ялгаатай нь хайлтын систем, мөлхөгч гэх мэт гадны системүүд тэдгээрийг үл тоомсорлох ёстой
JavaScript боловсруулах Жишээ №1: getAttribute болон setAttribute

Бүх хөтчүүд getAttribute болон setAttribute аргуудыг ашиглан өгөгдлийн шинж чанаруудыг авах, өөрчлөх боломжийг олгодог:

Var msglist = document.getElementById("msglist"); var show = msglist.getAttribute("өгөгдлийн жагсаалтын хэмжээ"); msglist.setAttribute("өгөгдлийн жагсаалтын хэмжээ", +шоу+3);

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

JavaScript дээр боловсруулалтын жишээ №2: jQuery номын сангийн data() арга

jQuery 1.4.3-аас эхлэн data() арга нь HTML5 өгөгдлийн шинж чанаруудыг зохицуулдаг. Та өгөгдлийн угтварыг тодорхой зааж өгөх шаардлагагүй тул иймэрхүү код ажиллах болно:

Var msglist = $("#msglist"); var show = msglist.data("жагсаалтын хэмжээ"); msglist.data("жагсаалтын хэмжээ", харуулах+3);

Гэсэн хэдий ч jQuery нь эдгээр шинж чанаруудын утгыг тохирох төрлүүдэд (boolean, тоо, объект, массив эсвэл null) хөрвүүлэхийг оролддог бөгөөд DOM-д нөлөөлнө гэдгийг анхаарна уу. setAttribute-аас ялгаатай нь data() арга нь data-list-size шинж чанарыг биечлэн орлохгүй - хэрэв та jQuery-ээс гадуур утгыг нь шалгавал энэ нь 5 хэвээр байх болно.

JavaScript боловсруулах жишээ №3: Өгөгдлийн багцтай ажиллах API

Эцэст нь бид DOMStringMap объектыг буцаадаг HTML5 өгөгдлийн багцтай ажиллах API-тай болсон. Өгөгдлийн шинж чанаруудыг өгөгдлийн угтваргүй объект руу буулгаж, нэрнээс зураасыг арилгаж, нэрийг нь camelCase болгон хөрвүүлдэг гэдгийг санах нь чухал. Жишээлбэл:

Аттрибутын нэр Өгөгдлийн багц API нэр
өгөгдөл хэрэглэгч хэрэглэгч
өгөгдлийн дээд хэмжээ дээд хэмжээ
өгөгдлийн жагсаалтын хэмжээ жагсаалтын хэмжээ

Манай шинэ код:

Var msglist = document.getElementById("msglist"); var show = msglist.dataset.listSize; msglist.dataset.listSize = +шоу+3;

Энэхүү API-г орчин үеийн бүх хөтчүүд дэмждэг боловч IE10 ба түүнээс доош хувилбаруудыг дэмждэггүй. Эдгээр хөтчүүдийг шийдвэрлэх арга зам байдаг ч хэрэв та хуучин хөтчүүдэд зориулж бичиж байгаа бол jQuery ашиглах нь илүү практик байж магадгүй юм.

JavaScript дээр огноо, цагтай ажиллахдаа Date объектыг ашигладаг. Та огноо, цагтай хэр олон удаа ажиллах ёстойг тайлбарлах шаардлагагүй гэж бодож байна. Мөн энэ нийтлэлээс та үүнийг JavaScript дээр хэрхэн хийхийг сурах болно.

Ердийнх шигээ Date объектын бүтээгчдээс эхэлцгээе. Тэдний дөрөв нь байдаг. Эхнийх нь параметргүй бүтээгч бөгөөд одоогийн цаг, огноог буцаана:

Var огноо = шинэ огноо();
баримт бичиг.бичих(огноо);

Үүний үр дүнд та иймэрхүү зүйлийг харах болно: "2010 оны 10-р сарын 14-ний өдрийн 11:42:06 GMT+0400".

Date объектын хоёр дахь байгуулагч нь нэг параметрт байгуулагч юм. Энэ параметр нь 01/01/1970 оноос хойш өнгөрсөн миллисекундын тоог агуулна (Юниксийн эрин үе төрсөн). Жишээлбэл, иймэрхүү:

Var огноо = шинэ огноо (135253235);
баримт бичиг.бичих(огноо);

Үүний үр дүнд та дараах зүйлийг харах болно: "1970 оны 1-р сарын 02-ны Баасан гараг 16:34:13 GMT+0300".

Дараах бүтээгч нь дараах параметрүүдтэй Date объектыг үүсгэх боломжийг олгоно: жил, сар, өдөр:

Var огноо = шинэ огноо (2010, 0, 12);
баримт бичиг.бичих(огноо);

Үр дүн: "2010 оны 1-р сарын 12-ны Мягмар гараг 00:00:00 GMT+0300 ". Мөн 0 сар 1-р сар, 11 сар бол 12-р сар гэдгийг анхаарна уу.

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

Var огноо = шинэ огноо (2010, 0, 12, 23, 45, 12);
баримт бичиг.бичих(огноо);

Та энэ мөрийг авах болно: "2010 оны 1-р сарын 12-ны Мягмар гараг 23:45:11 GMT+0300". Энэ бол хөгжүүлэгчдийн бидэнд өгсөн JavaScript Date объект бүтээгчид юм.

Date анги нь тусгай шинж чанаргүй тул шууд аргууд руу орцгооё. Яг адилхан ажилладаг боловч тус бүр өөрийн огноо, цагийн элементийг буцаадаг хэд хэдэн аргуудаас шууд эхэлцгээе:

Var огноо = шинэ огноо();
document.write("Жил - " + date.getFullYear() + "
");
document.write("Сар - " + date.getMonth() + "
");
document.write("Дугаар - " + date.getDate() + "
");
document.write("Долоо хоногийн өдөр - " + date.getDay() + "
");
document.write("Цаг - " + date.getHours() + "
");
document.write("Минут - " + date.getMinutes() + "
");
document.write("Second - " + date.getSeconds() + "
");
document.write("Миллисекунд - " + date.getMilliseconds() + "
");
document.write("01/01/1970 оноос хойш өнгөрсөн миллисекундын тоо - " + date.getTime() + "
");

Энэ скриптийг ажиллуулснаар та эдгээр аргууд тус бүр нь юу хийдгийг шууд ойлгох болно. Миний тэмдэглэхийг хүссэн цорын ганц зүйл бол долоо хоногийн өдрүүдийн дугаарлалт мөн тэгээс эхэлдэг. Түүгээр ч барахгүй Ням гараг 0, Бямба гариг ​​6 индекстэй байна.

Үүнтэй төстэй аргууд байдаг боловч огноо, цагийг Гринвичийн цагаар харуулдаг. Энэ кодыг бичье:

Var огноо = шинэ огноо();
document.write("Жил - " + date.getUTCFullYear() + "
");
document.write("Сар - " + date.getUTCMonth() + "
");
document.write("Дугаар - " + date.getUTCDate() + "
");
document.write("Долоо хоногийн өдөр - " + date.getUTCDay() + "
");
document.write("Цаг - " + date.getUTCHours() + "
");
document.write("Минут - " + date.getUTCMinutes() + "
");
document.write("Хоёр дахь - " + date.getUTCSeconds() + "
");
document.write("Миллисекунд - " + date.getUTCMilliseconds() + "
");

Энэ скриптийг ажиллуулснаар та Гринвич дэх одоогийн огноо, цагийг мэдэх болно.

get() аргуудын эсрэг тал нь set() аргууд юм. Хэрэв эхнийх нь тодорхой утгыг буцаадаг бол сүүлийнх нь эсрэгээр нь өөрчилнө. Үнэндээ би энэ скриптийг өгч чадаагүй, гэхдээ асуулт үлдэхгүйн тулд үүнийг хийцгээе:

Var огноо = шинэ огноо();
date.setFullYear(1990);
date.setMonth(11);
date.setDate(15);
date.setHours(9);
date.setMinutes(20);
date.setSeconds(0);
date.setMilliseconds(10);
баримт бичиг.бичих(огноо);

setDay() арга байхгүй гэдгийг та анзаарсан байх гэж найдаж байна. Жил, сар, огнооноос хамаарч долоо хоногийн өдрийг сонгоно гэсэн үг.

Гринвичтэй ижил төстэй аргууд бас байдаг. Жишээлбэл, setUTCMonth() аргыг ашигласан сарыг өөрчлөхийн тулд зөвхөн UTC угтварыг нэмдэг.

Хамгийн сүүлийн арга бол setTime() юм. 01/01/1970 оноос хойш өнгөрсөн миллисекундын тоог параметр болгон авна.

Date.setTime(39293012);
баримт бичиг.бичих(огноо);

Үүний үр дүнд та үүнийг харах болно: "1970 оны 1-р сарын 1-ний 13:54:53 GMT+0300".

Энэ бол JavaScript дахь Date объектын бүх бүтээгч, аргууд юм.

Хичээл нь Javascript объектуудын сэдвүүдийг хамрах болно. Бид захиалгат объектуудын талаар ярих болно: javaScript дээр объект үүсгэх, объектын шинж чанар, аргуудтай ажиллах, мөн JavaScript прототипүүд. Location, Navigator, Screen объектуудтай ажиллах талаар товч тайлбарлана


Сайтын зорилго нь хэрэглэгчдэд хэлтэй ажиллах практик ур чадвар олгох явдал юм. Нарийн төвөгтэй байдал нэмэгдэхийн хэрээр танилцуулж, тодорхой, шийдэгдсэн жишээнүүдээр дэмжигдсэн javaScript дээрх лабораторийн ажил нь судалж буй материалыг хялбархан ойлгож, "амьд", динамик вэб хуудсыг бие даан бүтээх аргад суралцах боломжийг олгоно.


JavaScript-д хэд хэдэн төрлийн объект байдаг:

  • суурилуулсан объектууд
  • хөтчийн объектууд
  • Программист бие даан үүсгэдэг объектууд (хэрэглэгчийн тодорхойлсон)

Баригдсан объектууд нь урьдчилан тодорхойлсон объектууд,... Тэдгээрийн ихэнхийг өмнөх хичээлүүдэд аль хэдийн авч үзсэн.

Бид дараагийн хичээлүүдэд javaScript дээр хөтчийн объектуудын талаар ярих болно.

Одоо javaScript дахь захиалгат объектуудтай танилцах цаг болжээ.

  • Обьект
  • Тоо (тоо боловсруулах)
  • Мөр (мөр боловсруулах)
  • Массив
  • Математик (математикийн томьёо, функц ба тогтмолууд)
  • Огноо (огноо, цагтай ажиллах)
  • RegExp
  • Глобал (түүний шинж чанарууд Infinity, NaN, тодорхойгүй)
  • Чиг үүрэг
JavaScript объект үүсгэх

Объект үүсгэх 2 арга байдаг:

  • Объект эхлүүлэгч ашиглах (эсвэл цуглуулгын объект үүсгэх)
  • Object Constructor() ашиглах
  • Цуглуулгын объект үүсгэх
  • var object_name = new Object(); object_name.property = утга;// цэгийн тэмдэглэгээ объект_нэр["проперти"] = утга;// хаалт тэмдэглэгээ

    Чухал: Та тоог утга болгон ашиглах боломжгүй гэдгийг тэмдэглэх нь зүйтэй: myObg.rost = 2 // БОЛОМЖГҮЙ! myObg.rost = "2" // боломжтой

    Жишээ: Properties нэртэй myBrowser объект үүсгэ (value ) болон хувилбар (утга " 9.0 »)


    ✍ Шийдэл 1:

      var myBrowser = new Object(); myBrowser.name= "Microsoft Internet Explorer"; myBrowser["хувилбар"]= "9.0";

    Жишээ: Өнгө, брэндийн шинж чанартай хоёр цуглуулгын объект (машин ба мото) үүсгэ. Үл хөдлөх хөрөнгийн үнэ цэнийг хэвлэх өнгөобъект дээр машинболон шинж чанарууд брэндобъект дээр мото.


    ✍ Шийдэл:
      var car = new Object(); car.color = "Цагаан" ; car.maxSpeed ​​= 220; car.brand = "Ниссан" ; document.write ("Машин нь өнгөтэй байна: " + car.color ); var moto = ( өнгө: "Цэнхэр", морины хүч: 130, брэнд: "Yamaha" ) ; document.write ("Мотоциклийг хийсэн: " + moto.brand );

      var car = new Object(); car.color = "Цагаан"; car.maxSpeed=220; car.brand = "Ниссан"; document.write("Машин нь өнгөтэй байна: " + машин.өнгө); var moto = (өнгө: "Цэнхэр", морины хүч: 130, брэнд: "Yamaha" ); document.write("Мотоцикл үйлдвэрлэгчтэй: " + moto.brand);

    Javascript дээр объекттой ажиллахдаа "For бүр" давталт

    Энэ дизайны талаар бага зэрэг аль хэдийн хэлсэн байдаг.
    Javascript дахь for in loop нь массив, цуглуулга, объектуудыг давтах зориулалттай.

    -д ашиглах жишээг харцгаая:

    1 2 3 4 5 6 7 8 var myBrowser = new Object(); myBrowser.name = "Microsoft Internet Explorer" ; myBrowser[ "хувилбар" ] = "9.0" ; for (var a in myBrowser) ( alert(a) ; // myBrowser объектын шинж чанаруудаар давтагдана. Нэр, хувилбарын дохио (myBrowser[ a] ) ; // шинж чанарын утгыг буцаана)

    var myBrowser = new Object(); myBrowser.name= "Microsoft Internet Explorer"; myBrowser["хувилбар"]= "9.0"; for (myBrowser дахь var a) ( alert(a); // myBrowser объектын шинж чанаруудаар давтагдана. Нэр, хувилбарын дохио (myBrowser[a]); // шинж чанарын утгыг буцаана)

  • Бүтээгч ангиудыг бий болгох
  • Бүтээгч ангиудыг үүсгэх нь хоёр үе шаттайгаар явагдана.

  • нэгдүгээрт, класс үүсгэгч ашиглан үүсгэгддэг;
  • дараа нь бүтээгч дээр тулгуурлан шинэ объект бий болно.
  • Бүтээгч ашиглан объектын анги үүсгэх (байгуулагч анги үүсгэх):

    функц Object_class_name(sv1, sv2)( this.sv1 = утга; this.sv2 = утга; )

    Объектын классын үүсгэгч дээр үндэслэн шинэ объект үүсгэх:

    var object_name = new class_name("stack_value1", "astaff_value2");

    var object_name =шинэ ангийн_нэр(); object_name.stv1="value_stv1"; object_name.stv2="value_stv2";

    Баригч ангийн нэрийг том үсгээр бичдэг заншилтай!


    Нэг жишээг харцгаая:

    Жишээ: Объектуудын ангид зориулж бүтээгч үүсгэх ба энэ класс дээр үндэслэн объект үүсгэх: шинж чанаруудын нэрээр myBrowser объект үүсгэнэ үү (утга). "Microsoft Internet Explorer") болон хувилбар (утга " 9.0 »)

    Нээлттэй шийдэл

    1 2 3 4 5 6 7 8 функц Хөтөч (нэр, хувилбар) ( энэ .нэр = нэр; энэ .хувилбар = хувилбар; ) var myBrowser = new Browser("Microsoft Internet Explorer" , "9.0" ) ; дохиолол (myBrowser.name); анхааруулга (myBrowser.version);

    функц Хөтөч (нэр, хувилбар)( this.name = нэр; this.version = хувилбар; ) var myBrowser = new Browser("Microsoft Internet Explorer","9.0"); анхааруулга(myBrowser.name); дохиолол (myBrowser.version);

    Тиймээс, объект үүсгэх эхний аргатай дахин харьцуулъя:

    // цуглуулгын объект var myBrowser = (нэр: "Microsoft Internet Explorer", хувилбар: "7.0"); анхааруулга(myBrowser.name); дохиолол (myBrowser.version); // дараах мөр буруу байна! var myBrowser1 = new myBrowser("MozillaFirefox","3.5"); // ХУДЛАА! !!

    Чухал: Цуглуулгын объект үүсгэх үед энэ нь анги биш тул та ангийн жишээг үүсгэх боломжгүй


    js даалгавар 6_1. Нэр, хэлтэс, утас, цалин зэрэг тодорхой компанийн ажилчдын талаарх мэдээллийг агуулсан Ажилтны объектыг үүсгэнэ үү (байгуулагч функц болон this түлхүүр үгийг ашиглана уу). Объектын жишээ үүсгэх

    JavaScript дахь объектын шинж чанаруудад хандах

    Объектын_нэр. өмчийн_нэр

    1 2 agent007.Name = "Бонд" ; alert(agent007.Name) ;

    agent007.Name = "Бонд"; дохиолол (agent007.Нэр);

    Өгөгдмөл шинж чанар гэж юу вэ

    Бүтээгч функц нь объектод өгөгдмөл шинж чанаруудыг өгөх боломжийг олгодог. Үүсгэсэн объектын жишээ бүр эдгээр шинж чанартай байх болно.

    1 2 3 4 5 6 7 8 9 10 функц Сурагч(нэр, утас) ( энэ .нэр = нэр; энэ .утас = "22-22-22" ; // анхдагч шинж чанар! ) var ivanov = new Student("Иван" , "33-33-33" ) ; сэрэмжлүүлэг (ivanov.name) ; // "Иван" дохиог гаргана (ivanov.phone ) ; // "22-22-22" харуулах болно ivanov.phone = "33-33-33" ; //өгөгдмөл шинж чанарын анхааруулгыг өөрчлөх (ivanov.phone ); // "33-33-33" гэж буцаана

    функц Оюутан(нэр, утас) ( this.name=name; this.phone="22-22-22"; // анхдагч шинж чанар! ) var ivanov = new Student("Иван","33-33-33" ) ; анхааруулга(ivanov.name); // "Иван" анхааруулга гаргах болно (ivanov.phone); // "22-22-22" харуулах болно ivanov.phone="33-33-33"; //өгөгдмөл шинж чанарын анхааруулгыг өөрчлөх (ivanov.phone); // "33-33-33" гэж буцаана

    Объектын ангилалд шинж чанарууд нэмэх

    Үл хөдлөх хөрөнгийн үнэ цэнийг нэмж болно:

    • объектын тодорхой жишээ;
    • объектын бүхэл бүтэн анги

    Шинж чанаруудыг нэмж байна тодорхой руу(жишээ) объект:

    объектын нэр. өмчийн_нэр = утга

    ivanov.biology = "маш сайн";

    Анхаарах зүйл: Жишээн дээр шинж чанарыг объектын ангилалд бус тодорхой объектод зориулж тохируулсан болно!

    Шинж чанаруудыг нэмж байна анги рууобъектууд:

    ангийн_нэр.прототип. өмчийн_нэр = утга

    Student.prototype.biology = "маш сайн";

    Анхаарах зүйл: Жишээн дээр өмчийг (анхдагчаар) объектын ангилалд тохируулсан болно! Үүнийг прототип ашиглан хийдэг; прототип - бүтцийг тодорхойлох объект

    1 2 Student.prototype.email = " [имэйлээр хамгаалагдсан]" ; alert(ivanov.email ); // харуулах болно " [имэйлээр хамгаалагдсан]"

    Student.prototype.email=" [имэйлээр хамгаалагдсан]"; alert(ivanov.email); // харуулах болно " [имэйлээр хамгаалагдсан]"

    Жишээ: Объектын бүх шинж чанарыг утгуудаар харуулах жишээ

    1 2 3 4 5 6 7 8 9 var summerTour= ( цацагт хяруул : 2000 , Испани : 3000 , Египет : 1000 ); var сонголт; for (зуны аялалын сонголт) ( document.write (сонголт + ":" + summerTour[ сонголт] + "
    " ) ; }

    var summerTour=( цацагт хяруул: 2000, Испани: 3000, египет: 1000 ); var сонголт; for (зуны аялалын сонголт)( document.write(сонголт + ":" + summerTour + "
    "); }

    Javascript прототипүүд (танилцуулга)

    Прототип ашиглан javascript ангиудыг хэрхэн бүтээдэг жишээг харцгаая

    Жишээ: Нэр (нэр), загвар (загвар), өнгө (өнгө) гэсэн гурван шинж чанартай Car (машин) объектын ангиллыг үүсгэ. Тодорхой өмчийн утгууд бүхий ангийн жишээг үүсгэ. Дараа нь үүсгэсэн жишээгээр дамжуулан нэмнэ үү анги руутодорхой өгөгдмөл утгатай өмчлөгчийн өмч ( Иванов). Үүсгэсэн жишээний бүх өмчийн утгыг хэвлэх

    функц Машин(нэр, загвар, өнгө) ( /* машины объект бүтээгч*/ энэ .нэр = нэр; энэ .загвар = загвар; энэ .өнгө = өнгө; ) var myCar= new Car; myCar.name = "Mers" ; myCar.model = "600" ; myCar.color = "ногоон"; Car.prototype .owner = "Иванов" ; /* шинэ өмч нэмэх*/ дохиолол(myCar.name + " " + myCar.model + " " + myCar.color + " " + myCar.owner );

    функц Машин(нэр, загвар, өнгө) ( /* машины объект бүтээгч*/ this.name = нэр; this.model = загвар; this.color = өнгө; ) var myCar=new Car; myCar.name="Мерседес"; myCar.model="600"; myCar.color = "ногоон"; Car.prototype.owner = "Иванов"; /* шинэ өмч нэмэх*/ дохиолол(myCar.name+" "+myCar.model+" "+myCar.color+" "+myCar.owner);

    js даалгавар 6_2. Ажилтны объектын үүсгэсэн жишээгээр дамжуулан js 6_1 даалгаврын хувьд объектын ангилалд хаягийн шинэ шинж чанарыг нэмнэ үү.

    JavaScript объектын аргууд

    Объектын аргыг бий болгох

    Жишээ: Хөтөчийн дэлгэцэн дээр энэ объектын шинж чанарын талаарх мэдээллийг харуулах хөтөчийн объект үүсгэгч дээр Browser-ийн талаар аргыг нэмнэ үү.

    1 2 3 4 5 6 7 8 9 10 11 12 13 функц showBrowser() ( document.write("Browser: " + this .name + " " + this .version ) ; ) function Browser(name, version) ( this .name = name; this .version = version; this .aboutBrowser = showBrowser ) var myBrowser= new Browser("Microsoft Internet Explorer" , 8.0 ); myBrowser.aboutBrowser();

    функц showBrowser() ( document.write("Browser: " + this.name + " " + this.version); ) function Browser(нэр, хувилбар) ( this.name = name; this.version = version; this.aboutBrowser = showBrowser; ) var myBrowser=new Browser("Microsoft Internet Explorer",8.0); myBrowser.aboutBrowser();

  • Объектын аргуудыг функц дээр үндэслэн үүсгэж, анги үүсгэгч дээр нэмдэг
  • функц Browser(нэр, хувилбар) ( this.name = name; this.version = version; this.aboutBrowser = function())( document.write("Browser: " + name + " " + version); ) ) var myBrowser = шинэ Browser("Microsoft Internet Explorer",8.0); myBrowser.aboutBrowser();

    js даалгавар 6_3. Аялал жуулчлалын компанийн үйл ажиллагааны объектын ангиллыг (Аялал) үүсгэнэ үү: Аяллын зардлыг тооцоолох аргачлалаар: хүний ​​тоо * хоногийн тоо * улсын тариф. Хөрөнгийн утгууд бүхий turkeyTour объектын жишээг үүсгэ. Дэлгэц дээр бүх объектын шинж чанарыг харуулах. Функц дээр суурилсан тооцооллын объектын аргыг бий болгох.

    Баригдсан объектуудын Javascript прототипүүд (Prototype).

    Суулгасан объектуудад шинж чанар, аргуудыг нэмэх (прототип)

    JavaScript бол прототип дээр суурилсан OOP (объект хандалтат програмчлалын) хэл юм.
    Прототип - бүтцийг тодорхойлох объект

    Жишээ ашиглан прототиптэй ажиллахыг харцгаая.

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 /* Прототипийг өөрчлөх */ // Суулгасан объектод анхдагч шинж чанарыг нэмэх String .prototype .color = "black" ; // Суулгасан объектод арга нэмэх (өөрчлөх) String .prototype .write = stringWrite; функц stringWrite() ( document.write ("" ) ; document.write (энэ .toString () ) ; document.write ("" ) ; ) // өөрчилсөн ангиллыг ашиглана var s = new String ("Энэ бол мөр юм " ); s.color = "улаан" ; s.write();

    /* Прототипийг өөрчлөх */ // Суулгасан объектод анхдагч шинж чанарыг нэмэх String.prototype.color = "хар"; // Суурилуулсан объектод арга нэмэх (өөрчлөх) String.prototype.write = stringWrite; функц stringWrite())( document.write(""); document.write(this.toString()); document.write(""); ) // өөрчилсөн ангиллыг ашиглах var s = new String("Энэ бол мөр"); s.color = "улаан"; s.write();

    Чухал: Та Math объектод шинж чанар эсвэл аргыг нэмэх боломжгүй.


    js даалгавар 6_4. Даалгаврыг дуусгахын тулд програмын кодыг нэмнэ үү: Уг үгийг хэвлэдэг String ангид printMe() аргыг нэмнэ үү. "Хөөе!"толгой (h... таг), хэрэглэгчийн тодорхойлсон түвшин ().
    Толгойн түвшинг (1, 2...6) String ангийн өмч болгон нэмж болно.
    HTML дээр гарчгийн шошгууд ямар байх ёстойг санацгаая:

    Гарчиг

    Кодоо бөглөнө үү:

    1 2 3 4 5 6 7 8 String .prototype .uroven = "1" ; ... функц printZagolovok () ( ... ... ) var s= new ...; ...

    String.prototype.uroven="1"; ... функц printZagolovok ()( ... ... ) var s=new ...; ...

    Дүгнэлт: JavaScript дээр захиалгат объект ашиглах хоёр сонголтыг дахин харьцуулъя:

  • Цуглуулгын объект үүсгэх
  • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 var myBook= new Object () ; myBook.title = "book" ; myBook.price = "200" ; alert(myBook[ "title" ] ) ; // 1-й вариант обращения к свойствам alert(meBook.price ) ; // 2-й вариант обращения к свойствам function myBookShow() { for (var i in myBook) { document.write (i+ ": " + myBook[ i] + "!}
    " ); // шинж чанаруудаар дамжуулан давтах ) ) myBook.show = myBookShow; myBook.show ();

    var myBook=new Object(); myBook.title="book"; myBook.price="200"; alert(myBook["title"]); // 1-й вариант обращения к свойствам alert(meBook.price); // 2-й вариант обращения к свойствам function myBookShow() { for (var i in myBook) { document.write(i+": "+myBook[i]+"!}
    "); // шинж чанаруудаар дамжуулан давтах ) ) myBook.show=myBookShow; myBook.show();

  • Бүтээгч ангиудыг бий болгох
  • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 функц myBook(гарчиг, үнэ) ( // шинж чанарыг тодорхойлох нь энэ . гарчиг = гарчиг; энэ . үнэ = үнэ; // аргыг тодорхойлох нь энэ .show = харуулах; функцийг харуулах() ( document.write ("Гарчиг: " + энэ гарчиг ) document.write ( "Үнэ: " + энэ .үнэ ) ) var book = new myBook ( "Ном" , 200 ); book.show();

    функц myBook(гарчиг, үнэ)( // шинж чанарыг тодорхойлох this.title = title; this.price = price; // аргыг тодорхойлох this.show = show; function show() ( document.write("Title: " + this . document.write("Price: " + this.price var book = new myBook("Book", 200); book.show();> Нүүр хуудас руу очих ......

  • Нүүр хуудас руу оч
  • ...
  • ...
  • *Цогцолбор: цэсийн тоо, тэдгээрийн нэр, urlхэрэглэгчээс хүсэлт гаргах ёстой

    Зөвлөмж: show() аргаар дэлгэцэн дээр мөрийг харуулахын тулд document.write() аргыг ашиглана уу

    javaScript Байршил, Navigator, Screen JavaScript Navigator объектууд

    Жишээ ашиглан javaScript дээр Navigator объектыг ашиглахыг харцгаая.

    Жишээ: Дараахыг харуулах функц бичнэ үү.

    • хөтөчийн нэр
    • хөтчийн хэл
    • OS нэр
    • күүки идэвхжүүлсэн байна
    • хэрэглэгч интернетэд холбогдсон уу?
    • Дэлгэцийн нягтрал
    • өнгөний гүн
    • ачаалагдсан хуудасны хаяг
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var сонголт; // навигаторын объектын бүх шинж чанарыг харуулах (navigator дахь сонголт) ( document.write (сонголт + " : " + navigator[ сонголт] + "
    " ); ) // userDetails () ( document.write (") объектын навигатор функцийн тодорхой шинж чанарыг олох функц

    Хөтөчийн нэр: "+navigator.userAgent+"
    " ); document.write ("Хөтчийн хэл: " + navigator.language + "
    " ); document.write("Үйлдлийн системийн нэр: " + navigator.oscpu + "
    " ); document.write (" Күүки идэвхжсэн үү: " + navigator.cookieEnabled + "
    " ); document.write ("Интернэт холбогдсон уу: " + navigator.nLine + "
    " ); ) userDetails();

    var сонголт; // навигаторын объектын бүх шинж чанарыг харуулах (navigator дахь сонголт)( document.write(option + " : " + navigator+ "
    "); ) // userDetails ()( document.write(") объектын навигатор функцийн тодорхой шинж чанарыг олох функц

    Хөтөчийн нэр: "+navigator.userAgent+"
    "); document.write("Хөтчийн хэл: " + navigator.language + "
    "); document.write("OS нэр: " + navigator.oscpu + "
    "); document.write("Күүки идэвхжсэн үү: " + navigator.cookieEnabled + "
    "); document.write("Интернэт холбогдсон уу: " + navigator.nLine + "
    "); ) userDetails();

    JavaScript дэлгэцийн объект

    Жишээ ашиглан JavaScript дээр Screen объектыг ашиглахыг харцгаая.

    function userDetails ()( document.write("Тогтоол: " + screen.width + " x " + screen.height + "
    "); document.write("Өнгөний гүн: " + screen.colorDepth + " x " + screen.height + "
    "); ) userDetails();

    javascript байршлын объект

    Жишээ ашиглан javaScript дээр Location объектыг ашиглахыг харцгаая.

    1 2 3 4 function userDetails() ( document.write("Ачаалагдсан хуудасны хаяг: " + байршил.href + "
    " ); ) userDetails();

    function userDetails ()( document.write("Ачаалагдсан хуудасны хаяг: " + байршил.href + "
    "); ) userDetails();

    Дүгнэлт:

    • Шинэ түлхүүр үг бүхий илэрхийлэлүүдийг ашигласнаар та объектуудын жишээг, өөрөөр хэлбэл тэдгээрийн тодорхой жишээг үүсгэж болно.
    • Нэмж дурдахад, javascript прототипийн шинж чанарын ачаар хэрэглэгчийн зохион бүтээсэн, анхны суулгасан объектуудад байхгүй байсан объектуудад шинэ шинж чанар, аргуудыг нэмэх боломжтой.
    • Өгөгдлийн санг үүсгэхийн тулд объект үүсгэх боломжтой.