ШАРҲ. Усулҳое, ки барои чунин тағирот масъуланд, одатан дар прототипҳои волидайни объект татбиқ карда мешаванд, арзишиOf и toString. арзишиOf ҳангоми табдили ададӣ ва ҳамеша пеш аз усул даъват карда мешавад toString. Усул арзишиOf бояд арзишҳои ибтидоиро баргардонанд, вагарна натиҷаи он сарфи назар карда мешавад.
Метод дар объект даъват карда мешавад арзишиOF. Агар он ёфт нашавад ё арзиши ибтидоиро барнагардонад, усул даъват карда мешавад toString. Агар усул toString ёфт нашуд, ҷустуҷӯ арзишиOf дар прототипи объект ва ҳама чиз такрор карда мешавад, то коркарди арзиш ба итмом расад ва ҳамаи арзишҳои ифода ба як намуд партофта шаванд. Агар объект усулеро ба амал барорад toString, ки арзиши ибтидоиро бармегардонад, пас маҳз он барои табдили сатр истифода мешавад.Аммо, натиҷаи татбиқи ин усул ҳатман сатр нест.
Масалан, агар барои объекти 'объект' усул муайян карда шудааст toString,
`var obj = { toString() { return "200" }}`
Усул toString маҳз сатрро бармегардонад ва ҳангоми илова кардани сатр бо рақам, мо сатри часпакро мегирем:
`obj + 1 // '2001'`
`obj + 'a' // ‘200a'`
Аммо агар шумо аз нав нависед toString, ба тавре ки усул ададро бармегардонад, вақте ки объект илова карда мешавад, амалиёти математикӣ бо табдили ададӣ иҷро карда мешавад ва натиҷаи ҷамъи математикӣ ба даст меояд.
Иҷрои скрипт, ба шарте ки тағирёбанда ба 3 баробар бошад ва он низ ба 4 баробар бошад.
Ҳангоми муқоиса бо cast (==), усул ҳар дафъа иҷро карда мешавад toString бо функсияи афзоиши арзиш. Мутаносибан, бо ҳар як муқоисаи минбаъда, арзиш меафзояд. Инро метавон бо истифода аз муқоисаи ғайрирасмӣ пешгирӣ кард (===).
Муқоиса бидуни кастинги навъи
ШАРҲ. Муқоисаи Castро бе зарурат истифода набаред.
Барои скриптҳои мураккаб, аз қабили Webhooks бо мантиқи мураккаб, ки муқоиса бо casting навъиро талаб мекунанд, тавсия дода мешавад, ки чекҳоро барои арзишҳое, ки тағирёбандаҳоро бармегардонанд ва номувофиқатӣ ва хатогиҳоро коркард мекунанд, пешакӣ нависед.
Media Webhook
Дар охири соли 2019 ва аввали соли 2020, дастаи ҳамгироии Zabbix фаъолона Webhooks ва ҳамгироии берун аз қуттӣ, ки бо тақсимоти Zabbix меояд, таҳия кардааст.
Пештар, мо ашёе меофаридем, ки ҳароратро дар дараҷаҳои Фаренгейт ҷамъ мекунад. Пас аз он, як ҷузъи дигари маълумот (ҳисобшуда), ки бо истифода аз формула Фаренгейтро ба Celsius табдил медиҳад.
Масъалаҳо:
Барои такрор кардани унсурҳои додаҳо ва нигоҳ доштани ҳама арзишҳо дар базаи маълумот зарур аст.
Дар ECMAScript5 date.parse() санаро дар формати ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) қабул мекунад. Ба он сатрро дар формати ММ ДД ЙЙЙ СС:мм:сс ЗЗ партофтан лозим аст.
проблема: Қимати моҳ ҳамчун рақам ифода карда мешавад, на ҳамчун рақам. Маълумот дар ин формат аз ҷониби Duktape қабул карда намешавад.
Мисоли ҳалли масъала:
Пеш аз ҳама, тағирёбанда эълон карда мешавад, ки арзиш мегирад (тамоми скрипт эъломияи тағирёбандаҳост, ки бо вергул ҷудо карда шудаанд).
Дар сатри аввал мо санаро дар параметр мегирем арзиши ва бо истифода аз усул онро бо фосила ҷудо кунед Зада шикастан. Ҳамин тариқ, мо массив мегирем, ки дар он ҳар як элементи массив аз индекси 0 сар карда, ба як элементи санаи пеш ва баъд аз фосила мувофиқат мекунад. тақсим (0) - моҳ, тақсим (1) - рақам, тақсим (2) - сатр бо вақт ва ғайра. Баъд аз ин, ба ҳар як унсури сана тавассути индекс дар массив дастрас шудан мумкин аст.
`var split = value.split(' '),`
Ҳар моҳ (бо тартиби хронологӣ) ба индекси мавқеи он дар массив (аз 0 то 11) мувофиқат мекунад. Барои табдил додани арзиши матн ба арзиши ададӣ, як ба индекси моҳ илова карда мешавад (зеро моҳҳо аз 1 сар карда рақамгузорӣ карда мешаванд). Дар ин маврид ифода бо иловаи як дар қавс гирифта мешавад, зеро дар акси ҳол адад не, сатр ба даст меояд. Дар охир мо мекунем бурида () - массивро аз охир буред, то танҳо ду аломат боқӣ монад (ки барои моҳҳо бо рақами ду рақам муҳим аст).