JavaScript. Өгөгдлийн төрөл ба операторууд. Javascript өгөгдлийн төрлүүд нь хувьсагчийн төрлийг тохируулдаг

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

Хувьсагчийг зарлах (бүтээх) нь var түлхүүр үг ашиглан хийгддэг.

// мессеж - хувьсагчийн нэр var message;

Хувьсагч үүсгэх үед та түүнд шууд утгыг оноож болно.

Хувьсагчдад утга оноохдоо “=” оператор ашиглан гүйцэтгэнэ.

// жишээ нь хувьсах имэйл үүсгээд түүнд " стринг оноох" [имэйлээр хамгаалагдсан]"var email =" [имэйлээр хамгаалагдсан]"; // и-мэйл хувьсагчийг шинэ утгыг имэйлээр тохируулах = " [имэйлээр хамгаалагдсан]";

Хувьсагчийн утгыг авахын тулд нэрээр нь л лавлана.

// жишээ нь, цахим шуудангийн хувьсагчийн утгыг хөтчийн консол руу гарга: console.log(email);

Нэг var түлхүүр үг ашиглан нэгээс олон хувьсагчийг зарлахын тулд та таслалыг ашиглах ёстой.

Var үнэ = 78.55, тоо хэмжээ = 10, мессеж;

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

Var гаралт = "амжилт"; // хувьсагч нь мөр өгөгдлийн төрөлтэй гаралт = 28; // ижил хувьсагч, гэхдээ аль хэдийн "тоо" өгөгдлийн төрлийн гаралт = үнэн; // ижил хувьсагч, гэхдээ аль хэдийн Boolean утгыг хадгалж байна

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

// насны хувьсагч үүсгэгдсэн var age; // хувьсагчийн нас 67 нас = 67 гэсэн утгыг өгсөн; // хувьсах насыг "Тэтгэвэрт гарах нас" гэж тогтоосон нас = "Тэтгэвэрт гарах нас"; // хувьсах насыг 55 нас = 55 гэж тохируулсан;

Үйлчлүүлэгчийн програмуудыг хөгжүүлэх сайн туршлага бол өгөгдсөн хувьсагчид зөвхөн нэг өгөгдлийн төрлийг ашиглах явдал юм. Өөр өөр төрлийн өгөгдлийн утгыг хувьсагчид бичиж болохгүй. Хувьсагчаас ямар төрлийн өгөгдөл хүлээж байх ёстойг ойлгохын тулд хувьсагч үүсгэхдээ үүнийг тодорхой утгаараа нэн даруй эхлүүлэхийг зөвлөж байна.

Хувьсагчийн нэр нь үсэг, тоо, $ ба _ тэмдэгтүүдээс бүрдэж болно. Энэ тохиолдолд хувьсагчийн эхний тэмдэгт нь тоо байх ёсгүй. Нэмж дурдахад та нөөцлөгдсөн үгсийг хувьсагчийн нэр болгон ашиглах боломжгүй.

// хоёр хувьсагч үүсгэх, эхний хувьсагчийг утас гэж нэрлэсэн, хоёр дахь хувьсагчийг хэмжүүр; утас, мессеж;

Хувьсагчийн нэр дэх үсгүүдийн тохиолдол чухал. Жишээлбэл, утас болон утас нь хоёр өөр хувьсагч юм.

Хэрэв хатуу горим ашиглаагүй бол var түлхүүр үггүйгээр анхны утгатай хувьсагч үүсгэж болно.

Үнэ = 250.00; // хувьсагч үүсгээд 250.00 хувь = "20%" гэсэн тоогоор эхлүүлсэн; // хувьсагч үүсгээд "20%" мөрөөр эхлүүлсэн.

Гэхдээ ийм байдлаар хувьсагч үүсгэхийг зөвлөдөггүй.

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

JavaScript-д өгөгдлийн төрлүүдийг үндсэн болон объект гэж хувааж болно.

Анхдагч өгөгдлийн төрлүүдийг агуулсан хувьсагчид өөрсдийн утгыг тодорхой хадгалдаг.

JavaScript-д 5 анхдагч өгөгдлийн төрөл байдаг:

  • тоо;
  • мөр;
  • логикийн төрөл (бүлийн);
  • null;
  • тэмдэглэгдээгүй.

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

Var x = 77, y = x; x = 55; y; // 77

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

Хэрэв нэг хувьсагч нь объект агуулсан өөр нэг хувьсагчийн утгыг (түүнтэй холбогдох холбоос) оноож өгсөн бол тэр хувьсагчийн холбоосыг хүлээн авах болно. Энэ үйлдлийн үр дүнд эдгээр хоёр хувьсагч нь нэг объектын лавлагааг агуулна.

// жишээ 1 (өгөгдлийн төрөл "объект"-тэй) var coord1 = (x: 77, y: 100), coord2 = coord1; коорд1.х = 55; // объектын x шинж чанарыг шинэ утгаар тохируулах coord2.x; // 55, учир нь coord1 болон coord2 нь ижил объектын лавлагааг агуулж байна // жишээ 2 (массив өгөгдлийн төрөлтэй) var coord1 = , coord2 = coord1; коорд1 = 55; // 0 индекстэй элементийг coord2 шинэ утга болгон тохируулах; // 55, учир нь coord1 ба coord2 нь ижил объектын лавлагааг агуулж байна // жишээ 3 (өгөгдлийн төрөл "огноо"-той) var date1 = new Date(2018,00,01), date2 = date1; date2 = date2.setDate(date2.getDate()+7); // огноог 7 хоногоор нэмэгдүүлэх огноо1; // 01/07/2018, учир нь огноо1 ба огноо2 нь ижил объектын лавлагааг агуулна

Тоо

JavaScript дахь тоон өгөгдлийн төрөл нь ерөнхий юм. Энэ нь бүхэл ба бутархай аль алиныг нь илэрхийлэхэд хэрэглэгддэг.

Var int = 5; // бүхэл тоо var float = 5.98; // бутархай тоо

JavaScript дээр тоог илэрхийлэх формат нь IEEE 754-2008 стандартын дагуу байна.

JavaScript дахь бүхэл тоог зөвхөн дотор нь зааж өгөхгүй аравтын системтооллын систем, мөн наймт (0) эсвэл арван зургаатын тооллын системд (0x) хаалтанд заасан угтварыг ашиглан:

Var int = 010; // 8 int = 055; // 45 int = 0xFF; //255 int = 0xB8; // 184

Тоонуудыг экспоненциал хэлбэрээр бичих боломжтой:

Var num = 2e3; // 2*10^3 тооны экспоненциал тэмдэглэгээ (2000) num = 2e-3; // 2*10^-3 тооны экспоненциал тэмдэглэгээ (0.002) num = 3.2e3; // 3200 тоо = 1.5e-2; // 0.015

Тоон өгөгдлийн төрөл нь тооноос гадна тусгай тоон утгыг агуулдаг:

  • Хязгааргүй байдал (эерэг хязгааргүй);
  • -Хязгааргүй (сөрөг хязгааргүй);
  • NaN (Тоо биш).

Тусгай утга Infinity нь маш том эерэг тоо, i.e. Хэт том учир JavaScript-д дүрслэх боломжгүй тоо.

Тусгай утга -Хязгааргүй байдал нь эсрэгээрээ маш том сөрөг тоо, i.e. Энэ нь бас хэтэрхий том тул JavaScript-ээр илэрхийлэх боломжгүй тоо.

Тооцооллын үр дүнд тусгай тоон утгыг буцаах илэрхийллийн жишээ:

5/0; // Infinity -5/0; // -Infinity Math.pow(10,399); // Infinity (10-аас 399-ийн зэрэглэлд) Math.pow(10,399); // -Хязгааргүй (-10-аас 399 хүртэл)

JavaScript тооцоолох боломжгүй математик үйлдлүүдийн үр дүнд NaN утгыг буцаана.

5 - "Сайн уу"; // NaN (5 дугаараас мөр хасах) 1000 / "20px"; // NaN (мөртөөр хуваагдсан тоо) үнэн * "1rem"; // NaN (бүлийн утгыг мөрөөр үржүүлсэн үнэн)

Хамгийн сонирхолтой нь JavaScript дахь NaN-ийн утга нь өөртэй нь тэнцүү биш юм.

NaN == NaN; // худал NaN === NaN; // худал

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

Boolean нь үнэн ба худал гэсэн хоёр л утгатай энгийн өгөгдлийн төрөл юм.

Var a = үнэн; var b = худал;

Мөр

Мөр нь текстийг илэрхийлэхийн тулд JavaScript-д ашиглагддаг өгөгдлийн төрөл юм.

JavaScript стринг нь 0 буюу түүнээс бүрдэж болно илүүтэмдэгтүүд.

JavaScript үргэлж Юникодыг мөр формат болгон ашигладаг.

Мөр (string literal) үүсгэх нь текстийг дан эсвэл дотор хавсаргах замаар хийгддэг давхар хашилт.

"JavaScript"; "ECMAScript";

JavaScript дээр дан болон давхар хашилтын хооронд ямар ч ялгаа байхгүй.

Гэхдээ зарим тохиолдолд давхар хашилтын оронд нэг хашилтыг ашиглах нь утга учиртай байдаг.

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

""ECMAScript""; // зугтахгүйгээр (дан ишлэл ашиглан) "\"ECMAScript\""; // зугтах

JavaScript дахь мөр нь тусгай тэмдэгт агуулж болно. Жишээ нь, \n (мөрийн тэжээл), \t (tab), \r (тээвэр буцах) гэх мэт.

"Энэ бол өгүүлбэр.\nЭнэ бол бас өгүүлбэр, гэхдээ энэ нь шинэ мөрөөс эхэлнэ.";

Мөртүүдийн тусламжтайгаар та нэмэх (нэгдэл) эсвэл өөрөөр хэлбэл холбох үйлдлийг гүйцэтгэж болно. Үүний тулд "+" операторыг ашигладаг. Энэ үйлдлийн утга нь эхний мөрийн төгсгөлд хоёр дахь мөрийг нэмэх явдал юм.

"Би хайртай" + "JavaScript"; // Би JavaScript-д дуртай

Утга нь "тодорхойгүй"

undefined нь тодорхойгүйтэй тэнцүү нэг утгатай тусгай анхдагч өгөгдлийн төрөл юм.

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

Var num; // тэмдэглэгдээгүй

Мөн объектын байхгүй шинж чанарт хандах үед тодорхойгүй утгыг буцаана.

Var obj = (); // хоосон объект obj.prop; // тэмдэглэгдээгүй

"цэг" утга

null нь null-тай тэнцүү нэг утгатай тусгай команд өгөгдлийн төрөл юм.

null бол зүгээр л "юу ч биш" эсвэл "үл мэдэгдэх утга" гэсэн утгатай тусгай утга юм, i.e. юу ч гэсэн үг биш гэдэг нь тодорхой.

Обьект

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

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

(нэр_1: утга_1, нэр_2: утга_2, нэр_3: утга_3, ... )

Таны харж байгаагаар нэр нь хоёр цэгийг ашиглан утгаасаа тусгаарлагдаж, хосуудыг таслал ашиглан бие биенээсээ тусгаарладаг.

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

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

Var person = (нэр: "Виталий", нас: 27, getAge: функц () ( "Нас: " + this.age; буцаана ) )

Объектын шинж чанарт хандахдаа цэгээр эсвэл хаалт тэмдэглэгээ ашиглан хийдэг.

// хөтчийн консол дээр насны шинж чанарын утгыг харуулах // 1-р арга (цэгээр) console.log(хүн. нас); // Арга 2 (хаалт ашиглан) console.log(хүн["нас"]); // getAge аргыг дуудах; буцаах утгыг console.log(person.getAge()) руу гаргана;

төрлийн оператор

Typeof оператор нь илэрхийллийн өгөгдлийн төрлийн талаарх мэдээллийг мөр хэлбэрээр авахад ашиглагддаг.

Typeof операторын синтакс (хаалтгүй сонголт):

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

Операторын синтаксийн төрөл (хашилт ашиглан):

Төрөл(илэрхийлэл)

Нэр, нас = 37, имэйл = " [имэйлээр хамгаалагдсан]", isLicense = үнэн, сонирхол: null, lastExperience: (хугацаа: "2011 оны 6-р сар - 2018 оны 6-р сар", газар: "ISACA, Москва", албан тушаал: "Вэб дизайнер" ), getExperience: function() ( lastExperience.period буцаана + " ("+ lastExperience.position + " - " + lastExperience.place + ")" ; // "тоо" төрлийн сонирхлын тухай // "обьект" typeof; / "функц" (2) /* (1) - энэ нь нийцтэй байдлыг хадгалахын тулд хэл дээр гарч ирсэн алдаа бөгөөд null нь анхдагч өгөгдөл юм; төрөл, энэ нь объект биш юм */ /* (2) - typeof оператор нь функцуудыг тусад нь салгах нь маш тохиромжтой, гэхдээ JavaScipt дахь функц нь мөн дараах бүтцийг гүйцэтгэх замаар хялбархан шалгаж болно; */ typeof getExperience.__proto__.__proto__ // "объект" (прототип функц нь объект)

Тогтмолууд

ECMAScript 6-г гаргаснаар тогтмолуудыг үүсгэх боломжтой болсон. Үүнийг const түлхүүр үг ашиглан хийдэг.

Const COLOR_RED = "#ff0000";

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

Const COLOR_RED = "#ff0000"; COLOR_RED = "#f44336"; // Баригдаагүй TypeError: Тогтмол хувьсагчид оноох.

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

Const COLORS = ( улаан: "#ff0000", ногоон: "#00ff00", цэнхэр: "#00ff00" ) COLORS = ["#ff0000","#00ff00","#00ff00"]; // Баригдаагүй TypeError: Тогтмол хувьсагчид оноох. COLORS.green = "#4caf50";

Өгөгдлийн төрлүүд нь програмчлалын хэл дээрх өгөгдлийн ангиллыг бий болгоход тусалдаг. Жишээлбэл, тоо болон тэмдэгтийн мөр нь өөр өөр төрлийн өгөгдөл бөгөөд JavaScript өөр өөрөөр харьцах болно.

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

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

Тайлбар: Энэхүү гарын авлагын мэдээлэл нь бүрэн гүйцэд биш боловч JavaScript-н үндсэн сонголтуудын тоймыг танд өгөх болно.

Динамик бичих

JavaScript бол динамик хэл юм. Энэ нь өгөгдлийн төрлийг шалгах нь хөрвүүлэлтийн үед биш харин ажиллах үед хийгддэг гэсэн үг юм.

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

Жишээ нь var түлхүүр үгээр тодорхойлогдсон t хувьсагч нь өөр өөр төрлийн өгөгдлийг хадгалах боломжтой; Үүнийг мөн эхлүүлж болох боловч тодорхойгүй орхиж болно:

var t = 16; // t нь тоо юм
var t = "Тереза"; // t нь мөр юм
var t = үнэн; // t нь Буль
var t; // t тодорхойгүй байна

Бүх t хувьсагч нь өөр өөр JavaScript өгөгдлийн төрлийг агуулна. JavaScript дээр та хувьсагчийн өгөгдлийн төрлийг ашиглахаасаа өмнө тодорхой зааж өгөх шаардлагагүй.

Тоонууд

JavaScript нь бүхэл тоо болон хөвөгч цэгийн тоог ялгахгүй ганц тоон өгөгдлийн төрөлтэй. Тиймээс JavaScript дахь тоог аравтын оронтой эсвэл аравтын оронгүйгээр бичиж болно:

var num1 = 93;
var num2 = 93.00;

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

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

var num3 = 987e8; // 98700000000
var num4 = 987e-8; // 0.00000987

JavaScript-д тоонуудыг 15 хүртэлх оронтой гэж үздэг. Энэ нь 16 дахь оронтой тоонд хүрсний дараа тоонууд дугуйрна гэсэн үг юм.

var num5 = 999999999999999; // 999999999999999 хэвээр байна
var num6 = 9999999999999999; // 1000000000000000 хүртэл дугуйрсан

Мөн JavaScript дахь тоонууд нь гурван бэлгэдлийн утгатай:

Хязгааргүй байдал - тоон утга, энэ нь хязгааргүйд ойртож буй эерэг тоо юм.

Хязгааргүй гэдэг нь хязгааргүйд ойртож буй сөрөг тоог илэрхийлдэг тоон утга юм.

NaN – Тоо биш, хөвөгч цэгийн тооны тусгай төлөв.

JavaScript-д боломжтой хамгийн дээд тооноос давсан тоог тоолох үед Infinity болон -Infinity-ийг буцаана. Тэд мөн тэгээр хуваах гэх мэт тодорхойгүй утгуудыг тоолох үед гарч ирдэг:

var num7 = 5/0; // Хязгааргүй байдал
var num8 = -5 / 0; // -Хязгааргүй

Техникийн хувьд, тоо нь JavaScript-н дээд хязгаар болох 1.797693134862315E+308-аас их байвал Infinity-г буцаана.

Үүний нэгэн адил, -1.797693134862316E+308 доод хязгаараас хэтэрсэн үед -Хязгааргүй байдал гарч ирнэ.

Хязгааргүйн тоог мөн гогцоонд ашиглаж болно:

while (num9 != Infinity) (
// Энд байгаа кодыг num9 = Infinity-ээр гүйцэтгэнэ
}

Тодорхойгүй тоонуудын хувьд NaN хэвлэнэ. Хэрэв та тоо болон тоон бус утга дээр математикийн үйлдэл хийхийг оролдвол NaN авна. Жишээлбэл:

var x = 20 / "Акул"; // x нь NaN байх болно

20-ыг Shark тэмдэгт мөрөөр хувааж болохгүй тул x-ийн утга NaN болно.

Гэсэн хэдий ч хэрэв мөрийг тоон утга болгон үнэлэх боломжтой бол JavaScript математик илэрхийллийг үнэлэх болно:

var y = 20 / "5"; // y нь 4 болно

JavaScript нь 5-ыг тоон утга гэж үзэж болох тул 5 нь математикийн хуваах оператортой ажиллах болно.

Хэрэв илэрхийлэлд нэг хувьсагчийг NaN гэж тохируулсан бол хоёр дахь операнд нь тоо байсан ч үр дүн нь NaN болно.

var a = NaN;
var b = 37;
var c = a + b; // c нь NaN байх болно

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

Мөр

Мөр нь нэг буюу хэд хэдэн тэмдэгтийн дараалал (үсэг, тоо болон бусад тэмдэгтүүд) юм. Мөр нь текст өгөгдлийг илэрхийлдэг.

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

var singleQuotes = "Энэ бол дан хашилт доторх мөр юм.";
var doubleQuotes = "Энэ бол давхар хашилт доторх мөр юм.";

Та дан эсвэл давхар хашилтыг ашиглаж болох боловч нэг төрлийн ишлэлийг нэг код дотор тогтмол ашиглах ёстой.

Хөтөлбөр "Сайн уу, Дэлхий!" Компьютерийн програмчлалд мөрүүдийг хэрхэн ашигладаг болохыг харуулж байна. Үндсэндээ, in энэ жишээндМөр нь “Сайн уу, Дэлхий!” гэсэн хэллэгийг бүрдүүлдэг тэмдэгтүүдийн дараалал юм. дохиололд ().





функц helloFunction() (
alert("Сайн уу, Дэлхий!");
}



Намайг дар



Кодоо ажиллуулаад "Намайг дар" товчийг дарснаар та дараах бичвэр бүхий цонхыг харах болно.

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

var hw = "Сайн уу, Дэлхий!";

Дараа нь та хувьсагчийг дуудаж мөрийг харуулж болно:

...

var hw = "Сайн уу, Дэлхий!";
функц helloFunction() (
дохиолол (hw);
}

...
Сайн уу, Дэлхий!

Мөрүүд нь мэдээллийг хэрэглэгч рүү дамжуулж, програм руу буцаах боломжийг олгодог.

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

Boolean (эсвэл Boolean) өгөгдлийн төрөл нь үнэн ба худал гэсэн хоёр утгаас бүрдэнэ.

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

Тайлбар: Энэ өгөгдлийн төрлийг математикч Жорж Булийн нэрээр нэрлэсэн.

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

Илүү их:

  • 500 > 100 үнэн
  • 1 > 5 худал

Түүнээс бага:

  • 200 < 400 true
  • 4 < 2 false
  • 5 = 5 үнэн
  • 500 = 400 худал

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

var myBool = 5 > 8; // худал

5 нь 8-аас ихгүй тул myBool нь худал болно.

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

Массив

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

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

Массивууд нь дөрвөлжин хаалтаар тодорхойлогддог.

Мөрний массив дараах байдлаар харагдаж байна.

var загас = ["акул", "загас", "алиалагч загас", "загас"];

Загасны хувьсагчийг дуудсанаар та дараах үр дүнг авах болно.

["акул", "загас", "алиалагч загас", "загас"]

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

Объектууд

JavaScript дахь объект нь key:value хосуудаас бүрдэнэ.

Объектын синтакс нь түлхүүр:утга хосоос бүрдэнэ. Объектыг хоёр талдаа буржгар хаалтаар тусгаарлана (()).

Объект дахь хосууд нь зайгаар тусгаарлагдана:

var sammy = (нэр: "Wally", овог нэр: "Акул", өнгө: "цэнхэр", байршил: "далайн");

Объектыг олон мөрөнд бичиж болно (энэ нь ялангуяа том объектуудад үнэн юм).

var Wally = (
нэр: "Wally",
овог нэр: "Акул",
өнгө: "цэнхэр",
байршил: "Далай"
};

Олон төрлийн өгөгдлийн төрлүүдтэй ажиллах

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

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

Хэрэв та холбох хувьсагч үүсгэвэл JavaScript нь элемент бүрийг мөр болгон тайлбарлах болно.

var o = "Далай" + 5 + 3;

o хувьсагчийг дуудсанаар та дараах үр дүнг авах болно.

Гэсэн хэдий ч, хэрэв мөр нь эхлээд тоо, дараа нь тэмдэгт мөр агуулсан бол + оператор нэмэх ба дараа нь холбох үйлдлийг гүйцэтгэнэ:

var p = 5 + 3 + "Далай";
8 Далай

Үр дүн нь урьдчилан таамаглах боломжгүй тул нэг төрлийн өгөгдлийн төрөлд үйлдлүүд болон аргуудыг гүйцэтгэх нь илүү тохиромжтой. Гэсэн хэдий ч JavaScript бусад програмчлалын хэл шиг өгөгдлийн төрлийг холих үед алдаа гаргадаггүй.

Дүгнэлт

Та одоо JavaScript өгөгдлийн төрлүүдийг мэддэг болсон. Энд жагсаасан төрөл бүр нь JavaScript программ бичихэд чухал ач холбогдолтой.

Шошго: Хувьсагч нь утга өгөгдсөн танигч юм. Хөтөлбөрт хувьсагч руу хандах боломжтой бөгөөд ингэснээр түүнд өгөгдсөн утгатай ажиллах боломжтой.

JavaScript хувьсагч нь өөрөө түүнд хадгалагдах утгын төрлийн мэдээллийг агуулдаггүй. Энэ нь жишээ нь хувьсагч руу мөр бичих замаар дараа нь тоо бичиж болно гэсэн үг юм. Ийм үйлдэл нь програмд ​​алдаа гаргахгүй. Тийм ч учраас JavaScript-г заримдаа "төрөлгүй" хэл гэж нэрлэдэг.

Хувьсагчийг ашиглахаас өмнө var эсвэл let түлхүүр үгээр зарлах ёстой. Хэрэв бид тогтмолын тухай ярьж байгаа бол const түлхүүр үгийг ашиглана. Та эдгээр түлхүүр үгсийг ашиглахгүйгээр хувьсагчийг зарлаж, түүнд утга оноож болно, гэхдээ үүнийг хийхийг зөвлөдөггүй.

Түлхүүр үг var ES2015 стандартаас өмнө var түлхүүр үгийг ашигладаг байсан цорын ганц арга замхувьсах мэдэгдлүүд.

Var a = 0
Хэрэв та энэ бүтцэд var-г орхих юм бол утгыг зарлаагүй хувьсагчид онооно. Энэ үйлдлийн үр дүн нь програмыг гүйцэтгэх горимоос хамаарна.

Тиймээс, хэрэв хатуу горим гэж нэрлэгддэг горим идэвхжсэн бол энэ нь алдаа гаргах болно. Хэрэв хатуу горимыг идэвхжүүлээгүй бол хувьсагчийг далд хэлбэрээр зарлаж, глобал объект руу хуваарилах болно. Ялангуяа энэ нь функцэд ийм байдлаар зарласан хувьсагч нь функц дууссаны дараа боломжтой хэвээр байх болно гэсэн үг юм. Дүрмээр бол функцэд зарласан хувьсагч нь хамрах хүрээнээсээ "цаашрахгүй" байх ёстой. Энэ нь дараах байдалтай харагдаж байна.

Функц notVar() ( bNotVar = 1 //үүнийг хийхгүй байсан нь дээр) notVar() console.log(bNotVar)
1 консол дээр гарч ирэх болно bNotVar = 1 илэрхийлэл нь ямар нэг хувьсагчийг зарлах, эхлүүлэх оролдлого мэт харагдахгүй, харин программаас гаднах хамрах хүрээнд байрлах хувьсагч руу хандах оролдлого мэт харагдах болно; функц (энэ нь нэлээд хэвийн). Үүний үр дүнд далд хувьсагчийн мэдэгдлүүд нь кодыг уншиж буй хүмүүст төөрөгдүүлж, програмын гэнэтийн үйлдэлд хүргэж болзошгүй юм. Дараа нь бид функц болон хамрах хүрээний талаар ярих болно, гэхдээ одоохондоо илэрхийллийн утга нь хувьсагчийг зарлах үед тусгай түлхүүр үгсийг ашиглахыг хичээх болно. Хэрэв энэ жишээн дээр функцийн биеийг var bNotVar = 1 гэж дахин бичсэн бол дээрх кодын фрагментийг ажиллуулахыг оролдоход алдааны мэдэгдэл гарах болно (та үүнийг хөтчийн консол дээрээс харж болно).

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

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

Var a //typeof a === "тодорхойгүй"
var түлхүүр үгээр зарласан хувьсагчдыг дахин олон удаа зарлаж, тэдэнд шинэ утгыг оноож болно (гэхдээ энэ нь код уншиж байгаа хүнд төөрөгдүүлж болзошгүй).

Var a = 1 var a = 2
Та нэг илэрхийлэлд олон хувьсагчийг зарлаж болно:

Var a = 1, b = 2
Хувьсагчийн хамрах хүрээ нь энэ хувьсагч хандах боломжтой (харагдахуйц) програмын талбар юм.

Функцийн гаднах var түлхүүр үгээр эхлүүлсэн хувьсагчийг глобал объектод онооно. Энэ нь дэлхийн хэмжээний цар хүрээтэй бөгөөд програмын хаанаас ч хандах боломжтой. Хэрэв хувьсагчийг функц доторх var түлхүүр үгээр зарласан бол энэ нь зөвхөн тухайн функц дотор харагдах бөгөөд үүнд локал хувьсагч болно.

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

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

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

▍Let түлхүүр үг Let түлхүүр үгийг ES2015-д нэвтрүүлсэн бөгөөд хялбаршуулсан байдлаар var -ын "блок" хувилбар гэж нэрлэж болно. Let түлхүүр үгээр зарласан хувьсагчдыг зарласан блок, мэдэгдэл эсвэл илэрхийлэл болон үүрлэсэн блокуудад хамрах хүрээг хамарна.

Хэрэв "зөвшөөрөх" гэдэг үг нь өөрөө тийм ч тодорхой биш юм бол оронд нь "зөвшөөрөх" гэсэн үгийг ашиглаж болно гэж төсөөлж болно. Дараа нь let color = "red" гэсэн хэллэгийг англи хэл рүү "өнгө улаан байх болтугай", орос хэл рүү "өнгө улаан өнгөтэй" гэж орчуулж болно.

Let түлхүүр үгийг ашигласнаар var түлхүүр үгтэй хамт ирдэг тодорхой бус байдлаас зайлсхийх боломжтой (жишээ нь, let-г ашиглан нэг хувьсагчийг хоёр удаа зарлах боломжгүй). Функцийн гаднах let-г ашиглах нь давталтыг эхлүүлэх үед глобал хувьсагч үүсгэхгүй.

Жишээлбэл, энэ код нь алдаа гаргах болно:

Учир нь (i = 0; i< 5; i++) { console.log(i) } console.log(i)
Хэрэв давталтыг эхлүүлэх үед i тоолуурыг var түлхүүр үгээр зарласан бол i нь ажлаа дуусгасны дараа давталтын гадна байх болно.

Орчин үеийн стандартад суурилсан JS программуудыг боловсруулахад var-аас бүрмөсөн татгалзаж, зөвхөн let, const гэсэн түлхүүр үгсийг ашиглах бүрэн боломжтой болсон.

▍Const түлхүүр үг Var эсвэл let түлхүүр үг ашиглан зарласан хувьсагчдын утгыг дарж бичиж болно. Хэрэв эдгээр түлхүүр үгсийн оронд const ашигласан бол түүний тусламжтайгаар зарлаж, эхлүүлсэн тогтмолыг шинэ утга өгөх боломжгүй.

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

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

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

Const obj = () console.log(obj.a) obj.a = 1 //works console.log(obj.a) //obj = 5 //алдаа үүсгэж байна
Эхлэх үед obj тогтмол дээр шинэ хоосон объект бичигдэнэ. Байхгүй байгаа a өмчид хандах оролдлого нь алдаа гаргахгүй. Консол тодорхойгүй болно. Үүний дараа бид объектод шинэ өмч нэмж, дахин хандахыг оролдоно. Энэ удаад энэ өмчийн утга нь консол дээр 1 байна. Хэрэв та жишээний сүүлчийн мөрөнд тайлбарыг арилгавал энэ кодыг ажиллуулах оролдлого нь алдаа гарах болно.

const түлхүүр үг нь let -тэй маш төстэй, ялангуяа блок хамрах хүрээтэй.

Орчин үеийн нөхцөлд үнэ цэнийг нь өөрчлөхөөр төлөвлөөгүй бүх байгууллагыг зарлахын тулд const түлхүүр үгийг ашиглах нь бүрэн боломжтой бөгөөд зөвхөн онцгой тохиолдлуудад л зөвшөөрнө. Яагаад? Хамгийн гол нь програмыг хүндрүүлэхгүй байх, алдаа гаргахгүйн тулд боломжтой хамгийн энгийн бүтцийг ашиглахыг хичээх нь зүйтэй юм.

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

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

▍Анхан шатны өгөгдлийн төрлүүд Энд JavaScript анхдагч өгөгдлийн төрлүүдийн жагсаалт байна:
  • тоо
  • мөр
  • логик (логийн утга)
  • null (тусгай утга null)
  • тодорхойгүй (тусгай утга тодорхойгүй)
  • тэмдэг (тусгай тохиолдлуудад хэрэглэгддэг тэмдэг, ES6-д танилцуулсан)
Энд өгөгдлийн төрлүүдийн нэрийг typeof оператор буцаасан байдлаар өгсөн болно.

Энэ жагсаалтаас хамгийн түгээмэл хэрэглэгддэг өгөгдлийн төрлүүдийн талаар ярилцъя.

Тооны төрөл JavaScript дахь төрлийн дугаарын утгууд нь 64 битийн давхар нарийвчлалтай хөвөгч цэгийн тоогоор илэрхийлэгддэг.

Кодод тоон литералийг аравтын бутархай тооллын системд бүхэл тоо, бутархай хэлбэрээр илэрхийлнэ. Та тоо бичих өөр аргыг ашиглаж болно. Жишээлбэл, тоон үсгийн эхэнд 0x угтвар байгаа бол энэ нь арван зургаатын тэмдэглэгээгээр бичигдсэн тоо гэж ойлгогдоно. Тоонуудыг мөн экспоненциал тэмдэглэгээгээр бичиж болно (ийм тоон дотор е үсгийг олж болно).

Бүхэл тоо бичих жишээ энд байна:

10 5354576767321 0xCC // арван зургаатын тоо
Энд бутархай хэсгүүд байна.

3.14 .1234 5.2e4 //5.2 * 10^4
Тоон утгууд (энэ нь бусад анхдагч төрлүүдийн хувьд ч мөн адил байдаг) тэдгээрийг объект болгон ашиглахыг оролдох үед үйл ажиллагааны туршид автоматаар "объект боодол" гэж нэрлэгддэг харгалзах объектууд болж хувирдаг. Энэ тохиолдолд бид Number объектын боодлын тухай ярьж байна.

Жишээлбэл, тоон утга агуулсан a хувьсагч руу хандах оролдлого нь Google Chrome консол дахь объект шиг харагдаж байна.

Тоон объектын боодлын зөвлөмж

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

A.toString()
Аргын нэрний ард давхар хаалтанд тэмдэглэнэ үү. Хэрэв та тэдгээрийг нийлүүлэхгүй бол систем нь алдаа гаргахгүй, харин хүлээгдэж буй гаралтын оронд та консол дээр 5-ын тоон тэмдэгттэй огт адилгүй зүйлийг харах болно.

Глобал Number объектыг бүтээгч болгон ашиглаж, түүний тусламжтайгаар шинэ тоо үүсгэх боломжтой (гэхдээ энэ хэлбэрээр үүнийг бараг хэзээ ч ашигладаггүй), мөн жишээг (өөрөөр хэлбэл тодорхой тоонууд) үүсгэхгүйгээр бие даасан нэгж болгон ашиглаж болно. түүний тусламжтайгаар төлөөлдөг). Жишээлбэл, түүний Number.MAX_VALUE шинж чанар нь JavaScript-д илэрхийлэх хамгийн их тоон утгыг агуулна.

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

"Мөр" "Өөр нэг мөр"
Мөрний утгыг урвуу зураасаар олон хэсэгт хувааж болно.

"A\string"
Мөр нь консол руу гарах үед тайлбарлагддаг зугтах дарааллыг агуулж болно. Жишээ нь, \n дараалал нь шинэ мөрийн тэмдэгт гэсэн үг. Урвуу налуу зураасыг мөн ижил хашилт дотор байгаа мөрүүдэд хашилт нэмэхэд ашиглаж болно. Ишлэлийн тэмдэгтээс \-тэй зайлсхийснээр систем үүнийг тусгай тэмдэгт гэж үзэхгүй болно.

"Би хөгжүүлэгч"
Мөрүүдийг + оператор ашиглан холбож болно.

"А" + "мөр"

Template literals ES2015-д загвар литералууд буюу загвар мөрүүд гарч ирэв. Эдгээр нь арын ишлэлд (`) хавсаргасан тэмдэгт мөрүүд бөгөөд зарим сонирхолтой шинж чанаруудтай.

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

`$(ямар нэг зүйл)-тэй мөр` `$(ямар нэг зүйл+өөр нэг зүйл)-тай мөр`` `$(obj.something())-тай мөр``
Буцах ишлэл ашиглах нь олон мөрөнд стринг бичихэд хялбар болгодог:

`$(ямар нэгэн зүйл) бүхий мөр`

Boolean төрлийн JavaScript нь логикийн утгуудтай ажиллахад хэрэглэгддэг хос нөөц үгстэй: үнэн ба худал. == , === гэх мэт харьцуулах операторууд< , >, үнэн эсвэл худал гэж буцаана.

Хөтөлбөрийн урсгалыг удирдахад туслах зорилгоор if, while гэх мэт хэллэгүүдэд логик илэрхийлэлүүдийг ашигладаг.

Үнэн эсвэл худал утгыг хүлээж байгаа тохиолдолд та хэлээр автоматаар үнэн (үнэн) эсвэл худал (худал) гэж үнэлэгддэг бусад утгуудыг ашиглаж болно гэдгийг тэмдэглэх нь зүйтэй.

Тодруулбал, дараах нь худал утгууд юм.

0 -0 NaN тодорхойгүй null "" //хоосон мөр
Үлдсэн утгууд нь үнэн юм.

Null төрлийн JavaScript нь null гэсэн тусгай утгатай бөгөөд энэ нь утга байхгүй байгааг илтгэнэ. Үүнтэй төстэй утгыг бусад хэл дээр ашигладаг. Тодорхойгүй төрөл Тодорхой хувьсагч руу бичигдсэн тодорхойгүй утга нь энэ хувьсагчийг эхлүүлээгүй бөгөөд үүнд ямар ч утга байхгүй байгааг илтгэнэ.

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

Тодорхойгүй утгыг шалгахын тулд та дараах бүтцийг ашиглаж болно.

Хувьсагчийн төрөл === "тодорхойгүй"

▍Объектууд Бүх анхдагч бус утгууд нь объектын төрлийнх байна. Бид функц, массив, "объект" гэж нэрлэдэг зүйл болон бусад олон объектуудын тухай ярьж байна. Эдгээр бүх өгөгдлийн төрлүүд нь объектын төрөл дээр суурилдаг бөгөөд тэдгээр нь бие биенээсээ олон талаараа ялгаатай боловч нийтлэг зүйл ихтэй Илэрхийлэл Илэрхийлэл нь гүйцэтгэсэн тооцоололд үндэслэн боловсруулж, олж авах боломжтой кодын хэсэг юм тодорхой үнэ цэнэ. JavaScript-д хэд хэдэн төрлийн илэрхийллүүд байдаг.

1/2 i++ i -= 2 i * 2

Мөр илэрхийлэл Ийм илэрхийллийг үнэлсний үр дүн нь мөр юм.

"А " + "мөр" "А " += "мөр"

Анхдагч илэрхийлэл Литерал, тогтмол тоо, танигчтай холбоотой ишлэлүүд энэ ангилалд багтана.

2 0.02 "ямар нэг зүйл" үнэн худал энэ //гүйцэтгэх контекст, одоогийн объектын лавлагаа тодорхойгүй i // энд i нь хувьсагч эсвэл тогтмол
Үүнд мөн зарим JavaScript түлхүүр үг, бүтэц орно.

Функцийн ангийн функц* //гарц үүсгэгч //генераторын өгөөжийг түр зогсоох/үргэлжлүүлэх команд* //өөр давталт эсвэл генераторын асинх функц руу шилжүүлэх* //асинхрон функциональ илэрхийлэл хүлээж байна //асинхрон функцийг гүйцэтгэхийг хүлээх зохион байгуулалт /загвар /би // тогтмол илэрхийлэл() // бүлэглэх

Массив болон объектын эхлэлийн илэрхийллүүд //массив литерал () //объект литерал (a: 1, b: 2) (a: (b: 1)) Логик илэрхийллүүд Логик илэрхийллүүдийн хэрэглээ логик операторууд, тэдгээрийн тооцооллын үр дүн нь логик утгууд юм.

A && b a || б!а

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

Object.property //объект объектын шинж чанарыг (эсвэл аргыг) дуудах["проперти"]

Объект үүсгэх илэрхийллүүд new object() new a(1) new MyRectangle("name", 2, (a: 4)) Function delaration expressions function() () function(a, b) ( return a * b ) (a, b) => a * b a => a * 2 () => ( буцах 2 ) Илэрхийлэлийг дуудах Ийм илэрхийлэл нь объектын функц эсвэл аргуудыг дуудахдаа хэрэглэгддэг.

A.x(2) window.resize()

Объектуудтай ажиллах Бид дээр дурдсан объектуудтай аль хэдийн таарч, объектын литералуудын тухай ярьж, тэдгээрийн аргуудыг дуудаж, шинж чанаруудад нь хандсан. Энд бид объектуудын талаар илүү дэлгэрэнгүй ярих болно, тухайлбал бид эх загвар өв залгамжлалын механизм болон класс түлхүүр үгийн ашиглалтыг авч үзэх болно.▍Прототип өв залгамжлал JavaScript нь орчин үеийн програмчлалын хэлнүүдийн дунд прототип удамшлыг дэмждэг гэдгээрээ ялгардаг. . Ихэнх объект хандалтат хэлүүд ангид суурилсан өв залгамжлалын загварыг ашигладаг.

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

Бидэнд объектын шууд утгыг ашиглан үүсгэсэн объект байна гэж бодъё.

Const car = ()
Эсвэл бид Object бүтээгчийг ашиглан объект үүсгэсэн.

Const car = шинэ объект()
Эдгээр тохиолдлын аль нэгэнд машины объектын загвар нь Object.prototype байх болно.

Хэрэв та мөн объект болох массив үүсгэвэл түүний загвар нь Array.prototype объект болно.

Const list = //эсвэл const list = new Array()
Та үүнийг дараах байдлаар шалгаж болно.

Машин.__прото__ == Объект.прототип //жинхэнэ машин.__прото__ == шинэ Объект().__прото__ //жинхэнэ жагсаалт.__прото__ == Объект.прототип //худал жагсаалт.__прото__ == Массив.прототип //жинхэнэ жагсаалт.__прото__ == new Array().__proto__ //үнэн
Энд бид __proto__ өмчийг ашигласан; энэ нь хөгжүүлэгчийн ашиглах боломжтой байх албагүй, гэхдээ ихэвчлэн хандах боломжтой. Илүү их гэдгийг тэмдэглэх нь зүйтэй найдвартай аргаарОбъектын прототипийг авахын тулд getPrototypeOf() аргыг глобал ашиглана Обьект.

Object.getPrototypeOf(шинэ Объект())
Прототипийн бүх шинж чанар, аргууд нь тухайн загвартай объектод боломжтой. Жишээ нь, массивын хувьд тэдний жагсаалт хэрхэн харагдахыг энд харуулав.


Массив зөвлөмж

Бүх объектын үндсэн загвар нь Object.prototype юм.

Массив.прототип.__прото__ == Объект.прототип
Object.prototype-д прототип байхгүй.

Бидний дээр үзсэн зүйл бол прототип гинжин хэлхээний жишээ юм.

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

Шинэ оператор болон объект эсвэл массивын литерал ашиглан объект үүсгэхээс гадна Object.create() аргыг ашиглан объектын жишээг үүсгэж болно. Энэ аргад дамжуулсан эхний аргумент нь түүний үүсгэсэн объектын прототип болох объект юм.

Const car = Object.create(Object.prototype)
Та isPrototypeOf() аргыг ашиглан объект нь өөр объектын прототип гинжин хэлхээний нэг хэсэг эсэхийг шалгаж болно.

Const жагсаалт = Array.prototype.isPrototypeOf(жагсаалт)

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

Чиг үүрэг Хүн(нэр) ( this.name = нэр ) Person.prototype.hello = function() ( console.log(this.name) ) let person = new Person("Flavio") person.hello() console.log( Person.prototype.isPrototypeOf(хүн))
Энд бид бүтээгч функцийг үүсгэнэ. Дуудлага хийх үед энэ нь үүсдэг шинэ объект, энэ нь түлхүүрээр тэмдэглэгдсэн байдаг энэ үгбүтээгчийн биед. Бид энэ объектод нэрийн шинж чанарыг нэмж, түүнд байгуулагч руу дамжуулсан зүйлийг бичнэ. Энэ объектыг бүтээгчээс автоматаар буцаана. Бүтээгч функцийг ашигласнаар та олон объектыг үүсгэж болно, тэдгээрийн нэрний шинж чанар нь бүтээгчид нь үүсгэгдсэн үед дамжуулагдсан зүйлийг агуулсан болно.

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

▍Ангиуд ES6 стандартад JavaScript нь “анги” гэсэн ойлголтыг нэвтрүүлсэн.

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

Ангийн тунхаглал Ангийн тунхаглал ийм харагдаж байна.

Ангийн хүн ( constructor(name) ( this.name = name ) hello() ( "Сайн уу, би байна " + this.name + "." буцаана ) )
Анги нь шинэ ClassIdentifier() бүтцийг ашиглан шинэ объект үүсгэхэд ашиглаж болох танигчтай.

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

Та ангид аргуудыг зарлаж болно. Манай тохиолдолд hello() нь класс дээр үндэслэн үүсгэсэн бүх объектоор дуудагдах арга юм. Person классыг ашиглан шинэ объект үүсгэх нь иймэрхүү харагдаж байна.

Const flavio = шинэ хүн("Flavio") flavio.hello()

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

Хэрэв өөр анги (тухайн ангийн дэд анги) өргөтгөж буй анги нь эх ангийнхтай ижил нэртэй аргатай бол уг арга нь анхныхаас давуу болно.

Class Programmer extensions Person ( hello() ( буцах super.hello() + " Би программист." ) ) const flavio = new Programmer("Flavio") flavio.hello()
Дээрх жишээн дэх hello() аргыг дуудах нь Сайн байна уу, би Флавио гэсэн мөрийг буцаана. Би программист хүн.

Ангиудад хувьсагч байхгүй (шинжүүд нь классуудыг ашиглан үүсгэсэн объектуудын шинж чанарыг тохируулагч дээр тохируулагдсан байх ёстой);

Анги дотор та супер түлхүүр үг ашиглан эцэг эхийн ангид хандах боломжтой.

Статик аргууд Ангид тайлбарласан аргуудыг ангиас үүсгэсэн объектуудад хандах замаар дуудаж болох боловч тухайн ангид хандах замаар биш. Ангид шууд хандах замаар статик аргуудыг дуудаж болно Private Methods JavaScript-д хувийн аргуудыг зарлах боломжийг олгодог суурилуулсан механизм байдаггүй. Энэ хязгаарлалтыг жишээ нь, Getters болон setters ашиглан даван туулах боломжтой. Энэ нь таныг ангид үндэслэн үүсгэсэн объектын шинж чанаруудад хандах хандалтыг хянахад ашигладаг хүлээн авагч ба тохируулагчийг үүсгэх боломжийг олгоно. Хуурамч шинж чанарын утгыг уншихыг оролдох үед хүлээн авагчийг дууддаг бол түүнд шинэ утга бичихийг оролдох үед тохируулагчийг дууддаг.

Ангийн хүн ( constructor(name) ( this.userName = name ) set name(утга) (thhis.userName = value ) get name() ( this.userName буцаана ) )

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

Эрхэм уншигчид! Хэрэв та JS дээр удаан хугацаагаар бичиж байгаа бол тухайн хэл дээрх class түлхүүр үгийн харагдах байдлын талаар ямар сэтгэгдэлтэй байгаагаа хэлээрэй.

Энэ зааварт бид маш чухал ойлголт болох JavaScript өгөгдлийн төрлийг танилцуулах болно. Энэ үзэл баримтлалд анхаарлаа хандуулахыг зөвлөж байна - хэрэв та үүнийг анхнаасаа ойлгоогүй бол өөрийн бүтээсэн програмын хачирхалтай үйлдэлтэй тулгарах хэрэгтэй болно.

Динамик бичих

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

JavaScript дээр өгөгдлийн төрлийг энгийн (мөн анхдагч гэж нэрлэдэг) төрөл ба нийлмэл (бас лавлагаа эсвэл объект гэж нэрлэдэг) гэсэн хоёр ангилалд хувааж болно.

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

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

ECMAScript® стандарт нь дараах өгөгдлийн төрлүүдийг тодорхойлдог.

  • Энгийн (мөн анхдагч гэж нэрлэдэг) төрлүүд:
    • Boolean - заримдаа үнэн ба худал гэж нэрлэгддэг хоёр боломжит утгыг авч болно;
    • null – null утга нь ихэвчлэн байхгүй эсвэл буруу объект эсвэл хаяг руу чиглэсэн лавлагааг илэрхийлдэг;
    • тодорхойгүй – тодорхойгүй утгаар эхлүүлсэн урьдчилан тодорхойлсон глобал хувьсагчийг илэрхийлнэ;
    • тоон (Англи тоо) – 64 битийн давхар нарийвчлалтай хөвөгч цэгийн формат дахь тоон өгөгдлийн төрөл;
    • string (Англи хэл) – текстийг илэрхийлэх тэмдэгтүүдийн дараалал;
    • тэмдэг (eng. Symbol) нь өгөгдлийн төрөл бөгөөд жишээ нь өвөрмөц бөгөөд өөрчлөгддөггүй. (ECMAScript 6-д шинэ).
  • Объект нь ихэвчлэн объектын шинж чанарууд гэж нэрлэгддэг нэрлэсэн утгуудын цуглуулга юм.
Анхдагч ба нийлмэл төрлүүдийн ялгаа

Өгөгдлийн төрөл бүрийг харахын өмнө эхлээд typeof оператортой танилцъя. Typeof оператор нь хувьсагчийн өгөгдлийн төрлийг тодорхойлсон мөрийг буцаана.
Дараах жишээг ашиглан энэ нь хэрхэн ажилладагийг харуулъя.

Жишээ скрипт нь хувьсагчдыг зарлаж, тэдгээрийг эхлүүлж (утга оноож), дараа нь хувьсагч бүрийн төрлийг хэвлэдэг.

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

Хувьсагчд энгийн төрлийн утга оноох үед тухайн утга нь өөрөө (жишээ нь тоо) хувьсагчид бичигдэнэ. Бид энгийн төрлийн хувьсагчийг нөгөөд оноох үед энэ нь утгыг хуулдаг. Үүний үр дүнд хувьсагч бүр өөрийн гэсэн утгатай байх ба аль нэг хувьсагчийн өөрчлөлт нь нөгөө хувьсагчийн утгад ямар нэгэн байдлаар нөлөөлөхгүй.

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

Анхдагч төрлүүд

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

Програмын ажиллах боломжтой хамгийн энгийн өгөгдлийг литерал гэж нэрлэдэг. Литерал нь JavaScript дахь утгыг илэрхийлэхэд хэрэглэгддэг тоо эсвэл мөр юм. Өгөгдсөн мэдээлэл нь маш олон янз байж болох тул утга нь өөр өөр байдаг янз бүрийн төрөл. JavaScript дахь хамгийн энгийн өгөгдлийн төрлүүдийг үндсэн өгөгдлийн төрлүүд гэж нэрлэдэг: тоо, мөр, логик. Бүгдийг нь "анхны" гэж ангилдаг.

Boolean (логик) төрөл "boolean"

Логик буюу логик утгууд (зохион бүтээгчийн нэрийн дараа - Boolean) нь үнэн (үнэн) эсвэл худал (худал) гэсэн хоёр утгын зөвхөн нэгийг агуулж болно. Үнэн үнэ цэнээсвэл худал нь ихэвчлэн харьцуулалт эсвэл логик үйлдлүүдэд гарч ирдэг.

Дараах програм нь Boolean хувьсагчийг үүсгэж, дараа нь if/else хэллэг ашиглан утгыг нь шалгадаг.

Аливаа илэрхийллийг харьцуулах илэрхийлэл болгон ашиглаж болно. 0, null, тодорхойгүй эсвэл хоосон мөрийг буцаадаг аливаа илэрхийллийг худал гэж тайлбарлана. Өөр ямар ч утгыг тодорхойлсон илэрхийллийг үнэн гэж тайлбарлана.

Тайлбар: Булийн утгыг бичихдээ хашилтанд оруулахгүй: var myVar = true;
Үүний зэрэгцээ var myVar = "true" гэж зарласнаар мөр хувьсагч үүсдэг.

Тооны өгөгдлийн төрөл

JavaScript-д бүхэл тоо болон хөвөгч цэгийн тоо хоёрын хооронд ямар ч ялгаа байхгүй - үндсэндээ JavaScript нь бүх тоог хөвөгч цэгийн утга хэлбэрээр илэрхийлдэг.

JavaScript нь тоонуудыг илэрхийлэхийн тулд IEEE-754 стандартаар тодорхойлсон 64 битийн форматыг ашигладаг. Энэ формат нь ±1.7976931348623157 × 10308-аас ±5 × 10 -324 хүртэлх тоонуудыг илэрхийлэх чадвартай.

Програмын кодонд шууд олдсон тоог тоон литерал гэж нэрлэдэг. Аравтын бүхэл тооны литералуудаас гадна JavaScript арван арван тоот утгыг хүлээн зөвшөөрдөг.
Арван арвантын тоонд 0-ээс 9 хүртэлх тоонуудын аль ч дараалал, а-аас f хүртэлх үсэг багтаж болох бөгөөд энэ нь "0x" тэмдэгтийн дарааллаар эхлэх ёстой.

Var a = 255; var b = 0xFF; // 16-тын тооллын 255 дугаар

Нэмж хэлэхэд, JavaScript нь тусгай тоон утгыг агуулдаг:

  • NaN (тоо эсвэл тооцооллын алдаа биш). Энэ нь мөр эсвэл тодорхойгүй утга гэх мэт хүчингүй өгөгдөл дээр буруу математик үйлдлийн үр дүн юм.
  • Хязгааргүй байдал (эерэг хязгааргүй байдал). Эерэг тоо нь JavaScript дээр дүрслэгдэхэд хэтэрхий том байх үед ашиглагддаг.
  • -Хязгааргүй (сөрөг хязгааргүй). Сөрөг тоо нь JavaScript-д дүрслэгдэхэд хэтэрхий том үед ашиглагддаг.
  • ±0 (эерэг ба сөрөг 0). JavaScript нь эерэг ба сөрөг тэгийг ялгадаг.
Мөр өгөгдлийн төрөл

Мөрний төрөл нь 16 битийн утгуудын хувиршгүй, эрэмбэлэгдсэн дараалал бөгөөд тус бүр нь Юникод тэмдэгтийг (үсэг, тоо, цэг таслал, тусгай тэмдэгт, хоосон зай) илэрхийлдэг. Мөр нь хоосон эсвэл нэг буюу хэд хэдэн тэмдэгтээс бүрдэж болно. Мөрүүдийг давхар (") эсвэл ганц (") хашилт ашиглан үүсгэнэ. Хос дан хашилтаар тусгаарлагдсан тэмдэгт мөр нь давхар хашилтыг ашиглаж болох ба эсрэгээр, хос хашилтаар тусгаарлагдсан мөр дотор ганц хашилтыг ашиглаж болно:

JavaScript-д давхар ба дан хашилтын хооронд ямар ч ялгаа байхгүй, гэхдээ мөрийн эхэн ба төгсгөлд байгаа ишлэлүүд өөр байх ёсгүй. Жишээлбэл, үүнтэй төстэй илэрхийлэл нь синтаксийн алдааг үүсгэдэг:

var firstName = "Макс"; // синтакс алдаа - өөр ишлэл

Жич: JavaScript-д C, C++, Java хэл дээрх char гэх мэт ганц тэмдэгтээс бүрдэх тусгай өгөгдлийн төрөл байдаггүй. Нэг тэмдэгтийг нэгж урттай тэмдэгт мөрөөр төлөөлдөг.

Null өгөгдлийн төрөл Null төрөл нь нэг тусгай утгыг агуулна — null.

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

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

Тодорхойгүй өгөгдлийн төрөл

Тодорхойгүй төрөл нь өөрийн гэсэн төрлийг бүрдүүлдэг бөгөөд энэ нь нэг тусгай утгыг агуулдаг - тодорхойгүй. Энэ нь var операторыг ашиглан зарласан хувьсагчийн утга боловч эхлүүлээгүй байна:

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

Тодорхойгүй утга бүхий хувьсагч нь огт тодорхойлогдоогүй хувьсагчаас ялгаатай гэдгийг тэмдэглэх нь зүйтэй.

Энэ жишээнд alert() арга нь тодорхойгүй насны хувьсагчийн утгыг харуулдаг. Хоёрдахь тохиолдолд зарлагдаагүй машины хувьсагчийг alert() арга руу шилжүүлэх бөгөөд энэ нь алдаа гарахад хүргэдэг.

Дараах жишээ нь шинэхэн програмистуудын хувьд зарим талаараа ойлгомжгүй байж магадгүй, учир нь... Typeof оператор нь эхлээгүй болон зарлагдаагүй хувьсагчийн хувьд тодорхойгүй буцаана:

Дээрх жишээнд нас хувьсагчийг зарласан боловч түүнд юу ч бичигдээгүй тул утга нь тодорхойгүй байна. Машины хувьсагчийг зарлаагүй - үнэндээ энэ нь байхгүй. Гэхдээ typeof нь хоёр тохиолдолд тодорхойгүй мөрийг буцаана. Энэ нь мэдээжийн хэрэг зарим нэг утга учиртай, учир нь эдгээр хувьсагчтай ямар ч үйлдэл хийх боломжгүй, гэхдээ тэдгээр нь техникийн хувьд огт өөр юм.

Тайлбар: Зарлагдсан хувьсагчийг үргэлж эхлүүлэхийг зөвлөж байна. Энэ тохиолдолд та хувьсагчийг эхлүүлээгүйгээс биш зарлаагүй учраас typeof оператор тодорхойгүй буцдаг гэдгийг мэдэх болно.

Тодорхойгүй утга нь null -аас үүсэлтэй тул ECMA-262-д == эквивалент оператор тэдгээрийг тэнцүү гэж үздэг:

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

Програмд ​​null ба тодорхойгүй утгыг ялгахын тулд та identity операторыг ашиглаж болно === :

Өгөгдлийн төрөл Тэмдэг

Тэмдэгт нь ECMAScript-ийн 6-р хувилбараас хойш JavaScript-д шинээр нэмэгдсэн тэмдэг юм. Тэмдэг нь өвөрмөц танигч үүсгэхэд хэрэглэгддэг өвөрмөц, өөрчлөгддөггүй, анхдагч утга юм.

Тэмдэг үүсгэхийн тулд Symbol функцийг дуудах хэрэгтэй:

var mySymbol = Symbol();

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

Symbol функц нь нэмэлт параметртэй байдаг - тэмдэгтийг тайлбарлах тэмдэгт мөр:

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

IN JavaScript объектуудхоёр синтаксийн аль нэгийг ашиглан үүсгэж болно:

1. var obj = (); // объектын literal ашиглах 2. var obj = new Object(); // constructor хэмээх аргыг ашиглан

Объектын literal ашиглан объект үүсгэх нь ердийн хувьсагчийг тодорхойлохоос эхэлдэг. Энэ мэдэгдлийн баруун талд объектыг шууд утгаар бичдэг - энэ нь таслалаар тусгаарлагдсан, буржгар хаалтанд () хавсаргасан хосуудын жагсаалт юм. "нэр-үнэ цэнэ", буржгар хаалтанд хавсаргасан. Үл хөдлөх хөрөнгийн нэр болон утгыг хоёр цэгээр тусгаарлана:

var cat = ( "хөл": 4, "нэр": "Мурзик", "өнгө": "Улаан" )

Объект үүсгэх хоёр дахь арга бол Object() бүтээгчийг ашиглах явдал юм. Энэ тохиолдолд эхлээд шинэ Object() илэрхийлэл ашиглагдаж, дараа нь үүссэн объектын шинж чанаруудыг тодорхойлж, эхлүүлнэ:

  • Бид нэг хувьсагчийг (түүний утга нь нийлмэл утгын лавлагааг агуулсан) өөр хувьсагчид оноох үед нийлмэл утгын лавлагааг хуулна. Үүний үр дүнд хоёр хувьсагч нь ижил нийлмэл утгыг илэрхийлдэг бөгөөд нэг хувьсагчийн утгын өөрчлөлт нь нөгөө хувьсагчид нөлөөлнө.
  • 0, null, тодорхойгүй эсвэл хоосон мөрийг буцаадаг аливаа илэрхийллийг худал гэж тайлбарлана.
  • Мөрүүдийг давхар (") эсвэл ганц (") хашилт ашиглан үүсгэнэ. Хос дан хашилтаар тусгаарлагдсан тэмдэгт мөр нь давхар хашилтыг ашиглаж болох ба эсрэгээр хос хашилтаар тусгаарлагдсан мөрөнд нэг хашилтыг ашиглаж болно.
  • null утга нь "хоосон" объектын лавлагаа бөгөөд тусгай зорилготой - энэ нь ихэвчлэн дараа нь утга оноох хувьсагчийг эхлүүлэхэд ашиглагддаг.
  • Утга (тодорхойгүй) нь var операторыг ашиглан зарласан хувьсагч боловч эхлүүлээгүй байна.
  • JavaScript дээр объектуудыг хоёр аргын аль нэгээр үүсгэж болно:
    • объектын шууд утгыг ашиглах
    • байгуулагч гэж нэрлэгддэг аргыг ашиглан
  • Объект нь шинж чанаруудын эрэмблэгдээгүй цуглуулгыг агуулдаг бөгөөд тус бүр нь нэр, утгыг агуулдаг. Та хүссэн үедээ объектод шинэ нэрлэсэн утгыг нэмэх эсвэл байгаа утгыг устгах боломжтой.