Обьектууд

ES6 -д обьектод ямар өөрчлөлтүүд орсонг хичээлд үзэх болно. Кодод

const name = 'e-surgalt.com';
const age = 30;

хувьсагчид байгаад эдгээрийг хувьсагчийн нэртэй ижилхэн обьектын талбарт олгоё гэвэл ES5

const obj = {
    name: name,
    age: age
};

гэж бичдэг. Одоо обьектыг консолд

console.log(obj);

гэж харуулъя.

Терминалаас webpack -ийг ажлуулаад хуудсаа хөтөч дээр нээгээд консолын цонхыг харвал

age, name талбаруудтай обьектыг үзүүлнэ. Кодод обьектын талбарууд түүнд утга олгож буй хувьсагчдын нэрүүд ижилхэн байгааг анхаарна уу. Үүнийг ES6 -д илүү хураангуйгаар

const obj = {
    name,
    age
};

гэж бичиж болдог. Өөрчлөлтөө хадгалаад хуудсаа шинэчилбэл өмнөхтэй яг адил үр дүнг авна. webpack нэгтгэсэн файлд ямар код гаргасанг харвал

өмнө нь бичсэнтэй ижил кодын генерац хийгдсэн байгаа.
Эндээс ES6 -д обьектын талбарууд түүнд утга олгох хувьсагчдын нэрүүд давхцаж байвал const obj = {name, age }; гэж зөвхөн обьектын талбаруудыг бичин өгч болно. Бусдыг интерпретатор өөрөө ойлгон хөрвүүлнэ.
Асуудлыг илүү ойлгох үүднээс арай өөр жишээн дээр авч үзье.

const createPerson = (name, surname) => {
    const fullname = surname + ' ' + name;
    return fullname;
};

console.log(createPerson('Дондог', 'Дулмаа'));

Хүний нэр, овгийг аваад бүтэн нэрийг буцаах createPerson функцийг үүсгэе. Хуудсыг шинэчилбэл консолд

гэж харуулна. createPerson функцээс fullname, surname, name талбаруудтай обьектыг авах хэрэгтэй болсон гэвэл кодыг

const createPerson = (name, surname) => {
    const fullname = surname + ' ' + name;
    return {
        fullname: fullname,
        surname: surname,
        name: name
    };
};

console.log(createPerson('Дондог', 'Дулмаа'));

гэж өөрчлөн хадгалаад хуудсаа шинэчилбэл

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

const createPerson = (name, surname) => {
    const fullname = surname + ' ' + name;
    return { fullname, surname, name };
};

console.log(createPerson('Дондог', 'Дулмаа'));

гэж хураангуйлж бичээд өөрчлөлтийг хадгалаад хуудсаа шинэчилбэл өмнөхтэй яг ижил үр дүнд хүрнэ. ES6 -гийн обьектын бичлэгт орсон дээрх өөрчлөлт таны кодын хэмжээг ихээхэн багасган өгнө.
createPerson функцээс fullname, surname, name талбаруудаас гадна тухайн хүний ажлыг агуулсан талбарыг буцаах хэрэгтэй боллоо гэе. Үүнийг функцээр

const createPerson = (name, surname) => {
    const fullname = surname + ' ' + name;
    return {
        fullname,
        surname,
        name,
        getJob: function () {
            return 'Программист';
        }
    };
};

console.log(createPerson('Дондог', 'Дулмаа'));

авахаар хэрэгжүүлээд хуудсаа шинэчилбэл консолд

үзүүлэх обьектод ажлыг функцээр авна гэдэг нь харагдана. Тухайн хүний ажлыг авахын тулд createPerson функцээс буцаах обьектыг хувьсагчид хадгалаад түүний арга буюу getJob функцийг

const person = createPerson('Дондог', 'Дулмаа');
console.log(person.getJob());

гэж дуудна. Өөрчлөлтөө хадгалаад хуудсаа шинэчлээд консолыг харвал

гэж үзүүлнэ. Хүний ажлыг авч буй дээрх бичлэгийг ES6 -д хураангуйлан

const createPerson = (name, surname) => {
    const fullname = surname + ' ' + name;
    return {
        fullname,
        surname,
        name,
        getJob() {
            return 'Программист';
        }
    };
};

гэж бичиж болно. Бид өмнөх бичлэгээс : function хэсгийг хассанаар функцийн бичлэг програмчлалын бусад хэлүүдийнхтэй төстэй болон ирнэ. Өөрчлөлтөө хадгалаад хуудсаа шинэчлээд консолыг харвал өмнөхтэй ижил үр дүнг авна. Кодын ажиллагаа яг зөв хийгдэж байгаад итгэхийн тулд консолд үзүүлэх текстийг өөрчлөн шалгаарай. 
ES6 -д обьекттой ажиллах ажиллагааг эвтэйхэн болгосон чухал өөрчлөлтийг ойлгохын тулд кодыг

const person = createPerson('Дондог', 'Дулмаа');
console.log(person);

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

const createPerson = (name, surname, fieldName) => {
    const fullname = surname + ' ' + name;
    const person = {
        fullname,
        surname,
        name,
        getJob() {
            return 'Программист 1';
        }
    };
    person[fieldName] = 'Toyota';
    return person
};

const person = createPerson('Дондог', 'Дулмаа', 'car');
console.log(person);

кодоор тайлбарлая. createPerson функцээс буцаах обьектод нэмэгдэх car талбарын нэрийг параметрээр дамжуулна. Функц дотроо мэдэгдэж байгаа талбаруудаар person обьектыг үүсгээд дараа нь параметрээр ирсэн талбарыг person[fieldName] гэж обьектод нэмэн оруулна. Өөрчлөлтийг хадгалаад хуудсаа шинэчилбэл консолд үзүүлэх обьектод

car талбар нэмэгдсэн байгаа. Тэгвэл createPerson функцээс буцаах обьектод хоёр параметрээр бүрдэх талбарыг нэмнэ гэвэл ES5

const createPerson = (name, surname, fieldName, fieldPostfix) => {
    const fullname = surname + ' ' + name;
    const person = {
        fullname,
        surname,
        name,
        getJob() {
            return 'Программист 1';
        }
    };
    let finalFieldName = fieldName + fieldPostfix;
    person[finalFieldName] = 'Toyota';
    return person
};

const person = createPerson('Дондог', 'Дулмаа', 'car', '-name');
console.log(person);

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

хоёр параметрээр үүсгэсэн талбар орж ирнэ. ES5 -д ийм ажиллагааг хийх нь ажил ихтэйгээс кодын харагдах байдал сайнгүй нь илэрхий. Үүнийг EcmaScript 6

const createPerson = (name, surname, fieldName, fieldPostfix) => {
    const fullname = surname + ' ' + name;
    return {
        fullname,
        surname,
        name,
        getJob() {
            return 'Программист 1';
        },
        [fieldName + fieldPostfix]: 'Toyota'
    };
};

const person = createPerson('Дондог', 'Дулмаа', 'car', '-model');
console.log(person);

гэж бичдэг. Кодод ердөө [fieldName + fieldPostfix]: 'Toyota' мөрийг нэмсэн. [fieldName + fieldPostfix] бичлэг обьект дотор талбарын нэрийг шууд үүсгэн өгөх болно. Кодын ажиллагааг шалгахын тулд хоёрдахь параметрийн нэрийг -model болгон өөрчилсөн. Өөрчлөлтийг хадгалаад хуудсаа шинэчилбэл консолд үзүүлэх обьектод

параметрүүдээр үүсгэгдсэн талбар бий болсон байна. Дээрх ажиллагааг ES6 -д ямар амархан хийж байгааг анхаарна уу. Кодыг webpack утилит ES5 - руу хөрвүүлсэнг харвал

Обьектыг _defineProperty гэсэн функцээр дамжуулан гаргаж байгаа нь харагдана. Ажиллагааг ES5 - д универсал байдлаар хийх гэвэл нилээд төвөгтэй функцийг бичэхээр харагдаж байгаа нь bundle.js файлын кодоос тодорхой. Харин ES6 -д үүнийг ердөө ганцхан мөрөөр шийдвэрлэнэ.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 1393 Нийтийн

Компонентыг бүртгүүлэх хичээлд компонентийн нэрийг 'my-counter' гэж мөр төрлөөр бичин өгсөн. Энэ нь зарим тохиолдолд асуудал үүсгэдэг. Жишээ нь та төсlлийн кодыг бичиж буй засварлагчид кодыг цэвэр байлгах ямар нэгэн хэрэгсэл /linter/ ашиглаж байвал нэрэнд хашилтыг хэрэглэвэл төслийн хэвээс хасагддаг тул үүнийг ашиглахгүй байх нь дээр. Иймээс VueJs -д компонентийн нэрийг үүсгэх өөр аргачлал байдаг. Компонентийн нэрийг өгөхдөө

            new Vue({
                el: '#app',
                components: {
                    'my-counter': component
                }
            });

хашилтанд my-counter гэж html кодод ашиглах тегийн нэрийг өгсөн байгаа.

  Нээгдсэн тоо: 465 Төлбөртэй

vuex сан төслийн компонентуудын ажиллагаануудын хоорондын хамааралыг арилган бие даан ажиллах боломжийг бүрдүүлдэг. Getters -ийг ашиглах хичээлд vuex сангийн state, getters талбаруудыг ашиглан Counter , SecondCounter компонентуудыг бусад компонентуудаас хамааралгүйгээр ажилладаг болгосон. Counter , SecondCounter компонентууд одоо зөвхөн store -той харьцан ажиллах болсноор төслийн компонент хоорондын хамаарал багасан програмын ажиллагааны логик ойлгомжтой хөнгөн болохын дээр компонентуудыг дахин ашиглах боломж бүрдсэн.

  Нээгдсэн тоо: 3292 Төлбөртэй

JavaScript –д массивыг обьект байдлаар үүсгэж болдог. Энэ аргаар массив үүсгэхэд конструкторт зөвхөн ганцхан тоон төрлийн параметр (массивын элементийн тоо) хэрэгтэй болно. Хэрвээ нэгээс илүү болон тоон бус төрлийн нэг параметр дамжуулбал эдгээрийг массивын элемент гэж үзэх бөгөөд хооронд нь таслалаар зааглана. Мөн түүнчлэн нэг ч параметр дамжуулахгүй байж болно. Тэгвэл хоосон массив үүснэ. Энэ обьектыг стандарт аргаар үүсгэнэ.

<массивын_нэр> = new Array(<элементийн тоо>);
<массивын_нэр> = new Array(<массивын элементүүд>);

Массив үүсгэх жишээнүүд

  Нээгдсэн тоо: 1710 Төлбөртэй

RxJs санг ашиглан стримээс тараах өгөгдлүүдээс сонголтыг маш эвтэйхэн зохион байгуулах аргын талаар энэ хичээлээр үзнэ. Үүний тулд of аргаар энгийн Observable /ажиглагч/ -ийг

Rx.Observable.of(1, 5, 'Hello', 'World')
    .first()
    .subscribe(createSubscribe('first'));

index.js файлд үүсгэн өгье. Код RxJs сангийн Observable классын of аргаар Observable /ажиглагч/ -ийг үүсгээд түүнд subscribe аргаар бүртгүүлсэн. Аргад өөрсдийн зохиосон туслах createSubscribe функцийг дамжуулна.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 391

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 486

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 463

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 535

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 599

 

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

Нээгдсэн тоо : 597

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 745

 

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

Нээгдсэн тоо : 891

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 876

 
Энэ долоо хоногт

олон гишүүнтийн язгуурууд x1, x2, x3 (x1<x2<x3) бол
1.
2. x1, x2, x3 арифметик прогрес үүсгэх бол
3. Уул прогрессын ялгавар
4.

Нээгдсэн тоо : 1343

 

sin90 -ийг олно уу.

Жич: Хатуу самар даа. Сурагчид барна гэхэд хүнд болов уу. ЕБС-ийн хүрээний аргаар л бодолтыг хийж байгаа тул бодолтыг харвал гайгүй ч юм шиг санагдаж магадгүй гоё бодлого.

Нээгдсэн тоо : 553

 

тэгшитгэлийг бод.

Жич: Бодох арга орж ирж байна уу. Найз нөхөд, багштайгаа хамжаад үзээрэй. Иймэрхүү бодлогууд сэтгэлгээг хөгжүүлэх, арга техникт суралцахад тустай. 

Нээгдсэн тоо : 820