ÐдебÑлÑÑого опеÑаÑоÑи Ñа ÑÑнкÑÑÑ Ð°Ð²ÑомаÑиÑно пеÑеÑвоÑÑÑÑÑ Ð·Ð½Ð°ÑеннÑ, ÑÐºÑ Ñм надаÑÑÑÑÑ, на поÑÑÑбний Ñип.
ÐапÑиклад, alert авÑомаÑиÑно пеÑеÑвоÑÑÑ Ð±ÑдÑ-Ñке знаÑÐµÐ½Ð½Ñ Ð² ÑÑдок, Ñоби показаÑи його. ÐаÑемаÑиÑÐ½Ñ Ð¾Ð¿ÐµÑаÑÑÑ Ð¿ÐµÑеÑвоÑÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ Ð½Ð° ÑиÑла.
Ð Ñакож випадки, коли нам Ð½ÐµÐ¾Ð±Ñ Ñдно Ñвно пеÑеÑвоÑиÑи знаÑÐµÐ½Ð½Ñ Ð½Ð° оÑÑкÑваний Ñип.
У ÑÑÐ¾Ð¼Ñ ÑоздÑÐ»Ñ Ð¼Ð¸ не бÑдемо Ð¾Ñ Ð¾Ð¿Ð»ÑваÑи обâÑкÑи. Ðоки Ñо ми поговоÑимо ÑÑлÑки пÑо пÑимÑÑиви.
ÐÑзнÑÑе, пÑÑÐ»Ñ Ð¾Ð·Ð½Ð°Ð¹Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· обâÑкÑами, ми ÑозглÑнемо ÑÑ Ð½Ñ Ð¿ÐµÑеÑвоÑÐµÐ½Ð½Ñ Ð² ÑоздÑÐ»Ñ ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð¾Ð±âÑкÑÑв в пÑимÑÑиви.
ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° ÑÑдок
ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° ÑÑдок вÑдбÑваÑÑÑÑÑ, коли нам поÑÑÑбне знаÑÐµÐ½Ð½Ñ Ñ ÑоÑÐ¼Ñ ÑÑдка.
ÐапÑиклад, alert(value) ÑобиÑÑ Ñе, Ñоби показаÑи знаÑеннÑ.
Також ми можемо викликаÑи ÑÑнкÑÑÑ String(value) Ð´Ð»Ñ Ð¿ÐµÑеÑвоÑÐµÐ½Ð½Ñ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ Ð² ÑÑдок:
let value = true;
alert(typeof value); // boolean
value = String(value); // ÑÐµÐ¿ÐµÑ value - Ñе ÑÑдок "true"
alert(typeof value); // string
ÐеÑеÑвоÑÐµÐ½Ð½Ñ ÑÑдкÑв здебÑлÑÑого оÑевидне. false ÑÑÐ°Ñ "false", null ÑÑÐ°Ñ "null" ÑоÑо.
ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° ÑиÑло
ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° ÑиÑла вÑдбÑваÑÑÑÑÑ Ð² маÑемаÑиÑÐ½Ð¸Ñ ÑÑнкÑÑÑÑ Ñ Ð²Ð¸ÑÐ°Ð·Ð°Ñ Ð°Ð²ÑомаÑиÑно.
ÐапÑиклад, коли дÑÐ»ÐµÐ½Ð½Ñ / заÑÑоÑовÑÑÑÑÑÑ Ð´Ð¾ неÑиÑловиÑ
знаÑенÑ.
alert( "6" / "2" ); // 3, ÑÑдки пеÑеÑвоÑÑÑÑÑÑÑ Ð½Ð° ÑиÑла
Ðи можемо викоÑиÑÑовÑваÑи ÑÑнкÑÑÑ Number(value) Ð´Ð»Ñ Ñвного пеÑеÑвоÑÐµÐ½Ð½Ñ value на ÑиÑло:
let str = "123";
alert(typeof str); // string
let num = Number(str); // ÑÑÐ°Ñ ÑиÑлом 123
alert(typeof num); // number
Явне пеÑеÑвоÑÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð²Ð¸Ñай поÑÑÑбно, коли ми ÑиÑаÑмо знаÑÐµÐ½Ð½Ñ Ð· джеÑела на оÑÐ½Ð¾Ð²Ñ ÑÑдка, подÑбно ÑекÑÑовÑй ÑоÑмÑ, але оÑÑкÑÑмо, Ñо бÑде введено ÑиÑло.
ЯкÑо ÑÑдок не Ñ Ð´ÑйÑним ÑиÑлом, ÑезÑлÑÑаÑом Ñакого пеÑеÑвоÑÐµÐ½Ð½Ñ Ñ NaN. ÐапÑиклад:
let age = Number("довÑлÑний ÑÑдок замÑÑÑÑ ÑиÑла");
alert(age); // NaN, помилка пеÑеÑвоÑеннÑ
ÐÑавила пеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° ÑиÑла:
| ÐнаÑÐµÐ½Ð½Ñ | РезÑлÑÑÐ°Ñ |
|---|---|
undefined |
NaN |
null |
0 |
true Ñа false |
1 Ñа 0 |
string |
ÐÑобÑлÑÐ½Ñ Ñимволи (пÑобÑли, Ñимволи ÑабÑлÑÑÑÑ \t, Ñимволи нового ÑÑÐ´ÐºÑ \n ÑоÑо) на поÑаÑÐºÑ Ñа з кÑнÑÑ Ð²Ð¸Ð´Ð°Ð»ÑÑÑÑÑÑ. ЯкÑо ÑÑдок, Ñо залиÑивÑÑ Ð² ÑезÑлÑÑаÑÑ, поÑожнÑй, Ñо ÑезÑлÑÑаÑом Ñ 0. Ð ÑнÑÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ ÑиÑло âÑиÑаÑÑÑÑÑâ з ÑÑдка. Ðомилка Ð´Ð°Ñ NaN. |
ÐÑиклади:
alert( Number(" 123 ") ); // 123
alert( Number("123z") ); // NaN (помилка ÑиÑÐ°Ð½Ð½Ñ ÑиÑла на мÑÑÑÑ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ "z")
alert( Number(true) ); // 1
alert( Number(false) ); // 0
ÐвеÑнÑÑÑ ÑвагÑ, Ñо null Ñа undefined ÑÑÑ Ð¿Ð¾Ð²Ð¾Ð´ÑÑÑÑÑ Ð¿Ð¾-ÑÑзномÑ: null ÑÑÐ°Ñ Ð½Ñлем, а undefined ÑÑÐ°Ñ NaN.
ÐÑлÑÑÑÑÑÑ Ð¼Ð°ÑемаÑиÑÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑоÑÑв Ñакож виконÑÑÑÑ ÑÐ°ÐºÑ Ð¿ÐµÑеÑвоÑеннÑ. Ðи ÑозглÑнемо ÑÑ Ð² наÑÑÑÐ¿Ð½Ð¾Ð¼Ñ ÑоздÑлÑ.
ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° бÑлевий Ñип
ÐÑлеве пеÑеÑвоÑÐµÐ½Ð½Ñ Ñ Ð½Ð°Ð¹Ð¿ÑоÑÑÑÑим.
Ðоно вÑдбÑваÑÑÑÑÑ Ð² логÑÑниÑ
опеÑаÑÑÑÑ
(пÑзнÑÑе ми познайомимоÑÑ Ð· Ñмовними пеÑевÑÑками Ñа ÑнÑими подÑбними конÑÑÑÑкÑÑÑми), але Ñакож може бÑÑи виконане Ñвно за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑ Boolean(value).
ÐÑавила пеÑеÑвоÑеннÑ:
- ÐнаÑеннÑ, ÑÐºÑ ÑнÑÑÑÑивно âпоÑожнÑâ, ÑÐ°ÐºÑ Ñк
0, поÑожнÑй ÑÑдок,null,undefinedÑаNaN, ÑÑаÑÑÑfalse. - ÐнÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ ÑÑаÑÑÑ
true.
ÐапÑиклад:
alert( Boolean(1) ); // true
alert( Boolean(0) ); // false
alert( Boolean("вÑÑаÑ") ); // true
alert( Boolean("") ); // false
"0" Ñ trueÐеÑÐºÑ Ð¼Ð¾Ð²Ð¸ (а Ñаме PHP) ÑозглÑдаÑÑÑ "0" Ñк false. Ðле Ñ JavaScript непÑÑÑий ÑÑдок завжди true.
alert( Boolean("0") ); // true
alert( Boolean(" ") ); // пÑобÑли, Ñакож true (бÑдÑ-ÑÐºÑ Ð½ÐµÐ¿ÑÑÑÑ ÑÑдки Ñ true)
ÐÑдÑÑмки
ТÑи найпоÑиÑенÑÑÑ Ð¿ÐµÑеÑвоÑÐµÐ½Ð½Ñ ÑипÑв â Ñе пеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° ÑÑдок, на ÑиÑло Ñа на бÑлевий Ñип.
ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° ÑÑдок â ÐÑдбÑваÑÑÑÑÑ, коли ми ÑоÑÑ Ð²Ð¸Ð²Ð¾Ð´Ð¸Ð¼Ð¾. Ðоже бÑÑи виконане за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ String(value). ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° ÑÑдок звиÑайно оÑевидне Ð´Ð»Ñ Ð¿ÑимÑÑивниÑ
знаÑенÑ.
ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° ÑиÑло â ÐÑдбÑваÑÑÑÑÑ Ð² маÑемаÑиÑниÑ
опеÑаÑÑÑÑ
. Ðоже бÑÑи виконане з Number(value).
ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð´Ð¾ÑÑимÑÑÑÑÑÑ Ð¿Ñавил:
| ÐнаÑÐµÐ½Ð½Ñ | РезÑлÑÑÐ°Ñ |
|---|---|
undefined |
NaN |
null |
0 |
true / false |
1 / 0 |
string |
Ð Ñдок ÑиÑаÑÑÑÑÑ âÑк Ñâ, пÑобÑлÑÐ½Ñ Ñимволи (пÑобÑли, Ñимволи ÑабÑлÑÑÑÑ \t, Ñимволи нового ÑÑÐ´ÐºÑ \n ÑоÑо) з обоÑ
ÑÑоÑÑн ÑгноÑÑÑÑÑÑÑ. ÐÑÑÑий ÑÑдок ÑÑÐ°Ñ 0. Ðомилка Ð´Ð°Ñ NaN. |
ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð° бÑлевий Ñип â ÐÑдбÑваÑÑÑÑÑ Ð² логÑÑниÑ
опеÑаÑÑÑÑ
. Ðоже виконÑваÑиÑÑ Ð·Ð° Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ Boolean(value).
ÐоÑÑимÑÑÑÑÑÑ Ð¿Ñавил:
| ÐнаÑÐµÐ½Ð½Ñ | РезÑлÑÑÐ°Ñ |
|---|---|
0, null, undefined, NaN, "" |
false |
| бÑдÑ-ÑÐºÑ ÑнÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ | true |
ÐÑлÑÑÑÑÑÑ Ñз ÑÐ¸Ñ Ð¿Ñавил легко зÑозÑмÑÑи й запамâÑÑаÑи. ÐÑимÑÑними винÑÑками, де лÑди зазвиÑай ÑоблÑÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, Ñ:
undefinedÑNaNÑк ÑиÑло, а не0."0"Ñ ÑÑдки, Ñо маÑÑÑ ÑÑлÑки пÑобÑли, ÑÐ°ÐºÑ Ñк" ", ÑtrueÑк бÑÐ»ÐµÐ²Ñ Ð·Ð½Ð°ÑеннÑ.
ÐбâÑкÑи ÑÑÑ Ð½Ðµ Ð¾Ñ Ð¾Ð¿Ð»ÐµÐ½Ñ. Ðи повеÑнемоÑÑ Ð´Ð¾ Ð½Ð¸Ñ Ð¿ÑзнÑÑе в ÑоздÑÐ»Ñ ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð¾Ð±âÑкÑÑв в пÑимÑÑиви, Ñкий пÑиÑвÑÑений виклÑÑно обâÑкÑам, пÑÑÐ»Ñ Ñого, Ñк ми дÑзнаÑмоÑÑ Ð¿Ñо бÑлÑÑ Ð±Ð°Ð·Ð¾Ð²Ñ ÑеÑÑ Ð² JavaScript.
ÐоменÑаÑÑ
<code>, Ð´Ð»Ñ ÐºÑлÑÐºÐ¾Ñ ÑÑдкÑв â обгоÑнÑÑÑ ÑÑ Ñегом<pre>, Ð´Ð»Ñ Ð¿Ð¾Ð½Ð°Ð´ 10 ÑÑдкÑв â викоÑиÑÑовÑйÑе пÑÑоÑниÑÑ (plnkr, jsbin, codepenâ¦)