У чым розніца паміж аператарамі "==" і "===" у Javascript?
адказ 1:
==
дапушчальнае значэнне роўнасці
===
меншае дапушчальнае значэнне equit
Прыклады
- Просты прыклад:
1 == '1' // вяртае ісціну 1 === '1' // вяртанне ілжывае
- Больш складана:
false == undefined // false false == null // false
Транзітыўнасць
null == undefined // Праўда
==
JavaScript: Кніга добрых дэталяў
Крыніца:
- Ці важна, які аператар (== vs ===) выкарыстоўваю для параўнання JavaScript? JavaScript: Добрае дачыненне
адказ 2:
Ды класічная блытаніна ў JavaScript! : D
Гэта на самай справе не непрыемнасць, гэта асаблівасць!
Па змаўчанні JavaScript спрабуе няяўна змяніць тып дадзеных зменных для параўнання. Гэта значыць, робіцца спроба не кідаць памылкі, калі яна сустракаецца з пераменнымі розных тыпаў дадзеных, якія параўноўваюцца. Замест гэтага тып дадзеных аўтаматычна мяняецца і параўноўваецца.
Такім чынам, калі вы толькі параўнайце "==", рухавік JavaScript няяўна спрабуе пераўтварыць адну з пераменных у той жа тып, што і іншую, і правярае падабенства. (Звычайна гэта прыводзіць да вялікай блытаніны і зусім не рэкамендуецца!)
Аднак, калі вы выкарыстоўваеце строгае параўнанне "===", рухавік JavaScript больш не мяняе любы тып дадзеных, але параўноўвае фактычныя значэнні з такімі, якія яны ёсць! Гэта дае дакладныя вынікі, як можна было чакаць! Гэта заўсёды павінна выкарыстоўвацца замест "==".
Вось прыклад кода:
няхай a = 10 // Тып дадзеных колькасці! хай b = '10' // радок тыпу дадзеных! if (a == b) {// Правядзіце свабодны тэст! console.log ("правяраецца няяўна і ПРАЎДА!: O"); } if (a === b) {// правядзіце строгую праверку! console.log ('недаступны код!'); } else {console.log ('строга правярайце, а значыць і ЛЕГКА!: D'); } ПЫТАННЕ: // Праверана неяўна і ПРАЎДА! : Ö // Правярайце строга і ЛЕГКА! : D
Спадзяюся, што гэта ачысціць вашу блытаніну!
Удачы на вашым шляху!
адказ 3:
'===' Правярае строгую роўнасць, правярае значэнні і тыпы, абодва значэння павінны быць аднолькавымі, і толькі '===' вяртае ісціну.
'==' параўноўвае толькі значэнні і вяртае ісціннае альбо ілжывае, калі таксама выконваецца TYPE COERCION.
Напр
0 == false // Праўда
0 === false // false, таму што яны рознага тыпу
1 == "1" // праўда, аўтаматычнае пераўтварэнне тыпу
1 === "1" // false, таму што яны рознага тыпу
адказ 4:
Аператар "==" ажыццяўляе пераўтварэнні неабходных тыпаў да параўнання роўнасці.
Аднак аператар '===' правярае строгае роўнасць, каб пераўтварэнне тыпу не ажыццяўлялася. Калі два значэння не супадаюць у параўнанні, вяртаецца false.
Напрыклад:
У тры разы адно і тое ж
5 === 5
// Праўда
5 === '5'
// няправільны
Двойчы аднолькавыя
5 == 5
// Праўда
5 == "5"
// Праўда
адказ 5:
Аператар "==" ажыццяўляе пераўтварэнні неабходных тыпаў да параўнання роўнасці.
Аднак аператар '===' правярае строгае роўнасць, каб пераўтварэнне тыпу не ажыццяўлялася. Калі два значэння не супадаюць у параўнанні, вяртаецца false.
Напрыклад:
У тры разы адно і тое ж
5 === 5
// Праўда
5 === '5'
// няправільны
Двойчы аднолькавыя
5 == 5
// Праўда
5 == "5"
// Праўда
адказ 6:
Аператар "==" ажыццяўляе пераўтварэнні неабходных тыпаў да параўнання роўнасці.
Аднак аператар '===' правярае строгае роўнасць, каб пераўтварэнне тыпу не ажыццяўлялася. Калі два значэння не супадаюць у параўнанні, вяртаецца false.
Напрыклад:
У тры разы адно і тое ж
5 === 5
// Праўда
5 === '5'
// няправільны
Двойчы аднолькавыя
5 == 5
// Праўда
5 == "5"
// Праўда
адказ 7:
Аператар "==" ажыццяўляе пераўтварэнні неабходных тыпаў да параўнання роўнасці.
Аднак аператар '===' правярае строгае роўнасць, каб пераўтварэнне тыпу не ажыццяўлялася. Калі два значэння не супадаюць у параўнанні, вяртаецца false.
Напрыклад:
У тры разы адно і тое ж
5 === 5
// Праўда
5 === '5'
// няправільны
Двойчы аднолькавыя
5 == 5
// Праўда
5 == "5"
// Праўда
адказ 8:
Аператар "==" ажыццяўляе пераўтварэнні неабходных тыпаў да параўнання роўнасці.
Аднак аператар '===' правярае строгае роўнасць, каб пераўтварэнне тыпу не ажыццяўлялася. Калі два значэння не супадаюць у параўнанні, вяртаецца false.
Напрыклад:
У тры разы адно і тое ж
5 === 5
// Праўда
5 === '5'
// няправільны
Двойчы аднолькавыя
5 == 5
// Праўда
5 == "5"
// Праўда
адказ 9:
Аператар "==" ажыццяўляе пераўтварэнні неабходных тыпаў да параўнання роўнасці.
Аднак аператар '===' правярае строгае роўнасць, каб пераўтварэнне тыпу не ажыццяўлялася. Калі два значэння не супадаюць у параўнанні, вяртаецца false.
Напрыклад:
У тры разы адно і тое ж
5 === 5
// Праўда
5 === '5'
// няправільны
Двойчы аднолькавыя
5 == 5
// Праўда
5 == "5"
// Праўда
адказ 10:
Аператар "==" ажыццяўляе пераўтварэнні неабходных тыпаў да параўнання роўнасці.
Аднак аператар '===' правярае строгае роўнасць, каб пераўтварэнне тыпу не ажыццяўлялася. Калі два значэння не супадаюць у параўнанні, вяртаецца false.
Напрыклад:
У тры разы адно і тое ж
5 === 5
// Праўда
5 === '5'
// няправільны
Двойчы аднолькавыя
5 == 5
// Праўда
5 == "5"
// Праўда
адказ 11:
Аператар "==" ажыццяўляе пераўтварэнні неабходных тыпаў да параўнання роўнасці.
Аднак аператар '===' правярае строгае роўнасць, каб пераўтварэнне тыпу не ажыццяўлялася. Калі два значэння не супадаюць у параўнанні, вяртаецца false.
Напрыклад:
У тры разы адно і тое ж
5 === 5
// Праўда
5 === '5'
// няправільны
Двойчы аднолькавыя
5 == 5
// Праўда
5 == "5"
// Праўда
адказ 12:
Аператар "==" ажыццяўляе пераўтварэнні неабходных тыпаў да параўнання роўнасці.
Аднак аператар '===' правярае строгае роўнасць, каб пераўтварэнне тыпу не ажыццяўлялася. Калі два значэння не супадаюць у параўнанні, вяртаецца false.
Напрыклад:
У тры разы адно і тое ж
5 === 5
// Праўда
5 === '5'
// няправільны
Двойчы аднолькавыя
5 == 5
// Праўда
5 == "5"
// Праўда