ЧиÑла и даÑÑ
ÐаннÑй Ñаздел пÑедÑÑавлÑÐµÑ Ñобой введение в ÑабоÑÑ Ñ ÑиÑлами и даÑами в JavaScript.
ЧиÑла
Ð JavaScript вÑе ÑиÑла ÑвлÑÑÑÑÑ ÑиÑлами двойной ÑоÑноÑÑи в ÑооÑвеÑÑÑвии Ñ 64-биÑнÑм двоиÑнÑм ÑоÑмаÑом IEEE 754 (Ñ.е. ÑиÑлами, пÑинадлежаÑими Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ Ð¼ÐµÐ¶Ð´Ñ -(253 -1) и 253 -1). ЦелÑе ÑиÑла не ÑаÑÑмаÑÑиваÑÑÑÑ ÐºÐ°Ðº оÑделÑнÑй Ñип ÑиÑел. Рдополнение к ÑиÑлам Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей запÑÑой, к ÑиÑÐ»Ð¾Ð²Ð¾Ð¼Ñ ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
оÑноÑÑÑÑÑ Ñакже ÑÑи ÑимволÑнÑе велиÑинÑ: +беÑконеÑноÑÑÑ, -беÑконеÑноÑÑÑ, и NaN (не-ÑиÑло). Ð Ñазделе ÑÐ¸Ð¿Ñ Ð¸ ÑÑÑÑкÑÑÑÑ Ð´Ð°Ð½Ð½ÑÑ
в JavaScript ÑиÑловой Ñип даннÑÑ
опиÑан в конÑекÑÑе Ñ Ð´ÑÑгими пÑимиÑивнÑми Ñипами в JavaScript.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑеÑÑÑе Ñипа ÑиÑловÑÑ Ð»Ð¸ÑеÑалов: деÑÑÑиÑнÑй, двоиÑнÑй, воÑÑмеÑиÑнÑй и ÑеÑÑнадÑаÑеÑиÑнÑй.
ÐеÑÑÑиÑнÑе ÑиÑла
1234567890;
42;
// ÐÑдÑÑе внимаÑелÑÐ½Ñ Ð¿Ñи иÑполÑзование нÑлей в наÑале ÑиÑел:
0888; // 888 обÑабаÑÑваеÑÑÑ ÐºÐ°Ðº деÑÑÑиÑное
0777; // обÑабаÑÑваеÑÑÑ ÐºÐ°Ðº воÑÑмеÑиÑное в неÑÑÑогой ÑоÑме (511 в деÑÑÑиÑной)
ÐбÑаÑиÑе внимание, ÑÑо деÑÑÑиÑнÑе лиÑеÑÐ°Ð»Ñ Ð¼Ð¾Ð³ÑÑ Ð½Ð°ÑинаÑÑÑÑ Ñ Ð½ÑÐ»Ñ (0) за коÑоÑÑм ÑледÑÐµÑ Ð´ÑÑÐ³Ð°Ñ Ð´ÐµÑÑÑиÑÐ½Ð°Ñ ÑиÑÑа, но еÑли ÑледÑÑÑÐ°Ñ Ð·Ð° нÑлÑм ÑиÑÑа менÑÑе 8, Ñо ÑиÑло обÑабаÑÑваеÑÑÑ ÐºÐ°Ðº воÑÑмеÑиÑное.
ÐвоиÑнÑе ÑиÑла
СинÑакÑÐ¸Ñ Ð´Ð²Ð¾Ð¸ÑнÑÑ
ÑиÑел иÑполÑзÑÐµÑ Ð²ÐµÐ´ÑÑий 0 за коÑоÑÑм ÑледÑÐµÑ Ð»Ð°ÑинÑÐºÐ°Ñ Ð±Ñква "B" в веÑÑ
нем или нижнем ÑегиÑÑÑе (0b or 0B). ÐÑли ÑиÑÑÑ Ð¿Ð¾Ñле 0b не ÑвлÑÑÑÑÑ 0 или 1, Ñо бÑÐ´ÐµÑ ÑгенеÑиÑованно SyntaxError Ñ ÑообÑением: "Missing binary digits after 0b".
var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648
var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
var FLT_MANTISSA = 0b00000000011111111111111111111111; // 8388607
ÐоÑÑмеÑиÑнÑе ÑиÑла
СинÑакÑÐ¸Ñ Ð²Ð¾ÑÑмеÑиÑнÑÑ ÑиÑел иÑполÑзÑÐµÑ Ð½Ð¾Ð»Ñ Ð² наÑале. ÐÑли ÑиÑÑÑ Ð¿Ð¾Ñле 0 не Ð²Ñ Ð¾Ð´ÑÑ Ð² диапазон Ð¾Ñ 0 до 7, ÑиÑло бÑÐ´ÐµÑ Ð¸Ð½ÑеÑпÑеÑиÑовано как деÑÑÑиÑное.
var n = 0755; // 493
var m = 0644; // 420
ШеÑÑнадÑаÑеÑиÑнÑе ÑиÑла
СинÑакÑÐ¸Ñ ÑеÑÑнадÑаÑеÑиÑнÑÑ
ÑиÑел иÑполÑзÑÐµÑ Ð²ÐµÐ´ÑÑий 0 за коÑоÑÑм ÑледÑÐµÑ Ð»Ð°ÑинÑÐºÐ°Ñ Ð±Ñква "X" в веÑÑ
нем или нижнем ÑегиÑÑÑе (0x or 0X). ÐÑли ÑиÑÑÑ Ð¿Ð¾Ñле 0x не вÑ
одÑÑ Ð² диапазон (0123456789ABCDEF), Ñо бÑÐ´ÐµÑ ÑгенеÑиÑованно SyntaxError Ñ ÑообÑением: "Identifier starts immediately after numeric literal".
0xfffffffffffffffff; // 295147905179352830000
0x123456789abcdef; // 81985529216486900
0xa; // 10
ÐбÑÐµÐºÑ Number
У ÑÑого вÑÑÑоенного обÑекÑа Number еÑÑÑ ÑвойÑÑва Ð´Ð»Ñ ÑелоÑиÑленнÑÑ
конÑÑанÑ, ÑакиÑ
как макÑималÑное ÑиÑло, не-ÑиÑло и беÑконеÑноÑÑÑ. ÐÑ Ð½Ðµ можеÑе измениÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑÑиÑ
ÑвойÑÑв, и Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ Ð¸Ñ
ÑледÑÑÑим обÑазом:
var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negInfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;
Ðак видно из пÑимеÑа вÑÑе, Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеÑиÑленнÑÑ
знаÑений, нÑжно обÑаÑаÑÑÑÑ Ðº ÑвойÑÑвам пÑедопÑеделÑнного глобалÑного обÑекÑа Number. Тогда как Ñ ÑкземплÑÑа ÑÑого обÑекÑа, Ñозданного вами пÑи ÑабоÑе пÑогÑаммÑ, ÑÑиÑ
ÑвойÑÑв не бÑдеÑ.
Ð ÑледÑÑÑей ÑаблиÑе пÑиведÑн ÑпиÑок ÑвойÑÑв обÑекÑа Number.
| СвойÑÑво | ÐпиÑание |
|---|---|
Number.MAX_VALUE |
ÐаиболÑÑее ÑиÑло из возможнÑÑ Ð´Ð»Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ |
Number.MIN_VALUE |
ÐаименÑÑее ÑиÑло из возможнÑÑ Ð´Ð»Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ |
Number.NaN |
СпеÑиалÑное "Ðе ÑиÑловое" ("not a number") знаÑение |
Number.NEGATIVE_INFINITY |
СпеÑиалÑное знаÑение "ÐинÑÑ Ð±ÐµÑконеÑноÑÑÑ"; возвÑаÑаеÑÑÑ Ð¿Ñи пеÑеполнении |
Number.POSITIVE_INFINITY |
СпеÑиалÑное знаÑение "ÐлÑÑ Ð±ÐµÑконеÑноÑÑÑ"; возвÑаÑаеÑÑÑ Ð¿Ñи пеÑеполнении |
Number.EPSILON |
РазниÑа Ð¼ÐµÐ¶Ð´Ñ ÐµÐ´Ð¸Ð½Ð¸Ñей и наименÑÑим знаÑением, болÑÑим единиÑÑ, коÑоÑое Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑедÑÑавлено Ñипом Number. |
Number.MIN_SAFE_INTEGER |
ÐинималÑное Ñелое, безопаÑное ÑиÑло в JavaScript. |
Number.MAX_SAFE_INTEGER |
ÐакÑималÑное Ñелое, безопаÑное ÑиÑло в JavaScript. |
| ÐеÑод | ÐпиÑание |
|---|---|
Number.parseFloat() |
ÐÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑÑÐ¾ÐºÑ ÐºÐ°Ðº аÑгÑменÑ, и возвÑаÑÐ°ÐµÑ ÑиÑловое знаÑение Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой, коÑоÑое ÑдалоÑÑ ÑаÑпознаÑÑ. Тоже Ñамое ÑÑо и глобалÑÐ½Ð°Ñ ÑÑнкÑÐ¸Ñ parseFloat(). |
Number.parseInt() |
ÐÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑÑÐ¾ÐºÑ ÐºÐ°Ðº аÑгÑменÑ, и возвÑаÑÐ°ÐµÑ ÑелоÑиÑленное знаÑение в заданной ÑиÑÑеме иÑÑиÑлениÑ, коÑоÑое ÑдалоÑÑ ÑаÑпознаÑÑ. Тоже Ñамое ÑÑо и глобалÑÐ½Ð°Ñ ÑÑнкÑÐ¸Ñ parseInt(). |
Number.isFinite() |
ÐпÑеделÑеÑ, ÑвлÑеÑÑÑ Ð»Ð¸ ÑиÑло, пеÑеданное в каÑеÑÑве аÑгÑменÑа, конеÑнÑм. |
Number.isInteger() |
ÐпÑеделÑеÑ, ÑвлÑеÑÑÑ Ð»Ð¸ ÑиÑло, пеÑеданное в каÑеÑÑве аÑгÑменÑа, ÑелÑм. |
Number.isNaN() |
ÐпÑеделÑеÑ, ÑвлÑеÑÑÑ Ð»Ð¸ ÑиÑло, пеÑеданное в каÑеÑÑве аÑгÑменÑа, NaN (не ÑиÑлом). ÐналогиÑнÑй, но более надÑжнÑй меÑод Ñем глобалÑÐ½Ð°Ñ ÑÑнкÑÐ¸Ñ isNaN(). |
Number.isSafeInteger() |
ÐпÑеделÑеÑ, ÑвлÑеÑÑÑ Ð»Ð¸ .ÑиÑло, пеÑеданное в каÑеÑÑве аÑгÑменÑа, ÑелÑм и безопаÑнÑм. |
ÐÑоÑоÑип Number пÑедоÑÑавлÑÐµÑ ÑÑд меÑодов, Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑиÑла в ÑазлиÑнÑÑ
ÑоÑмаÑаÑ
. Ð ÑледÑÑÑей ÑаблиÑе пеÑеÑиÑÐ»ÐµÐ½Ñ Ð¼ÐµÑодÑ, доÑÑÑпнÑе ÑеÑез Number.prototype.
| ÐеÑод | ÐпиÑание |
|---|---|
toExponential() |
ÐозвÑаÑÐ°ÐµÑ ÑÑÑокÑ, пÑедÑÑавлÑÑÑÑÑ ÑиÑло в ÑкÑпоненÑиалÑном пÑедÑÑавлении. |
toFixed() |
ÐозвÑаÑÐ°ÐµÑ ÑÑÑокÑ, пÑедÑÑавлÑÑÑÑÑ ÑиÑло Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм колиÑеÑÑвом ÑазÑÑдов поÑле запÑÑой. |
toPrecision() |
ÐозвÑаÑÐ°ÐµÑ ÑÑÑокÑ, пÑедÑÑавлÑÑÑÑÑ ÑиÑло Ñ Ñказанной ÑоÑноÑÑÑÑ. |
ÐбÑÐµÐºÑ Math
ÐÑÑÑоеннÑй глобалÑнÑй обÑÐµÐºÑ Math ÑодеÑÐ¶Ð¸Ñ ÑвойÑÑва и меÑÐ¾Ð´Ñ Ð´Ð»Ñ Ð¼Ð°ÑемаÑиÑеÑкиÑ
конÑÑÐ°Ð½Ñ Ð¸ ÑÑнкÑий. ÐапÑимеÑ, ÑвойÑÑво обÑекÑа Math PI ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°Ñение маÑемаÑиÑеÑкой конÑÑанÑÑ "Ðи" (3.141...), коÑоÑÑе Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð² пÑогÑамме как
Math.PI;
ÐодобнÑм обÑазом, маÑемаÑиÑеÑкие ÑÑнкÑии ÑвлÑÑÑÑÑ Ð¼ÐµÑодами обÑекÑа Math. Ðни вклÑÑаÑÑ ÑÑигономеÑÑиÑеÑкие, логоÑиÑмиÑеÑкие, ÑкÑпоненÑиалÑнÑе и дÑÑгие ÑÑнкÑии. ÐапÑимеÑ, еÑли Ð²Ñ Ñ
оÑиÑе иÑполÑзоваÑÑ ÑÑигономеÑÑиÑеÑкÑÑ ÑÑнкÑÐ¸Ñ ÑинÑÑа, Ð²Ñ Ð½Ð°Ð¿Ð¸ÑеÑе ÑледÑÑÑий код
Math.sin(1.56);
ÐамеÑÑÑе, ÑÑо вÑе ÑÑигономеÑÑиÑеÑкие меÑÐ¾Ð´Ñ Ð¾Ð±ÑекÑа Math пÑинимаÑÑ Ð°ÑгÑменÑÑ Ð² ÑадианаÑ
.
Ð ÑледÑÑÑей ÑаблиÑе пеÑеÑиÑÐ»ÐµÐ½Ñ Ð¼ÐµÑÐ¾Ð´Ñ Ð¾Ð±ÑекÑа Math.
| ÐеÑод | ÐпиÑание |
|---|---|
abs() |
ÐозвÑаÑÐ°ÐµÑ Ð°Ð±ÑолÑÑное знаÑение (модÑлÑ) аÑгÑменÑа |
sin(), cos(), tan() |
СÑандаÑÑнÑе ÑÑигономеÑÑиÑеÑкие ÑÑнкÑии; пÑинимаÑÑ Ð°ÑгÑменÑÑ Ð² ÑÐ°Ð´Ð¸Ð°Ð½Ð°Ñ |
asin(), acos(), atan(), atan2() |
ÐбÑаÑнÑе ÑÑигономеÑÑиÑеÑкие ÑÑнкÑии; возвÑаÑаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² ÑÐ°Ð´Ð¸Ð°Ð½Ð°Ñ |
sinh(), cosh(), tanh() |
ÐипеÑболиÑеÑкие ÑÑигономеÑÑиÑеÑкие ÑÑнкÑии; пÑинимаÑÑ Ð°ÑгÑменÑÑ Ð² гипеÑболиÑеÑÐºÐ¸Ñ ÑÐ³Ð»Ð°Ñ |
asinh(), acosh(), atanh() |
ÐбÑаÑнÑе гипеÑболиÑеÑкие ÑÑигономеÑÑиÑеÑкие ÑÑнкÑии; возвÑаÑаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² гипеÑболиÑеÑÐºÐ¸Ñ ÑÐ³Ð»Ð°Ñ |
pow(), exp(), expm1(), log10(), log1p(), log2() |
ÐкÑпоненÑиалÑнÑе и логоÑиÑмиÑеÑкие ÑÑнкÑии |
floor(), ceil() |
ÐозвÑаÑаÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑÑее/наименÑÑее Ñелое, коÑоÑое менÑÑе/болÑÑе или Ñавно Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ |
min(), max() |
ÐозвÑаÑаÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑÑее или наименÑÑее (ÑооÑвеÑÑÑвенно) из Ð²Ñ Ð¾Ð´Ð½ÑÑ ÑиÑловÑÑ Ð·Ð½Ð°Ñений, пеÑеÑиÑленнÑÑ ÑеÑез запÑÑÑÑ |
random() |
ÐозвÑаÑÐ°ÐµÑ ÑлÑÑайное ÑиÑло Ð¾Ñ 0 до 1 |
round(), fround(), trunc(), |
ФÑнкÑии окÑÑÐ³Ð»ÐµÐ½Ð¸Ñ Ð¸ оÑÑеÑÐµÐ½Ð¸Ñ Ð´Ñобной ÑаÑÑи |
sqrt(), cbrt(), hypot() |
ÐоÑÐµÐ½Ñ ÐºÐ²Ð°Ð´ÑаÑнÑй, коÑÐµÐ½Ñ ÐºÑбиÑеÑкий, коÑÐµÐ½Ñ ÐºÐ²Ð°Ð´ÑаÑнÑй из ÑÑÐ¼Ð¼Ñ ÐºÐ²Ð°Ð´ÑаÑов аÑгÑменÑов |
sign() |
Ðнак ÑиÑла, показÑÐ²Ð°ÐµÑ ÑвлÑеÑÑÑ Ð»Ð¸ Ð²Ñ Ð¾Ð´Ð½Ð¾Ðµ ÑиÑло позиÑивнÑм, негаÑивнÑм или ÑавнÑм нÑÐ»Ñ |
clz32(), imul() |
ÐолиÑеÑÑво пеÑвÑÑ Ð½ÑлевÑÑ Ð±Ð¸Ñ Ð² 32-биÑном двоиÑном пÑедÑÑавлении. ÐозвÑаÑÐ°ÐµÑ ÑезÑлÑÑÐ°Ñ Ð¡Ð¸-подобного 32-биÑного ÑелоÑиÑленного ÑÐ¼Ð½Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð²ÑÑ Ð°ÑгÑменÑов. |
РоÑлиÑии Ð¾Ñ Ð±Ð¾Ð»ÑÑинÑÑва дÑÑгиÑ
обÑекÑов, вам не нÑжно ÑоздаваÑÑ Ñвои ÑкземплÑÑÑ Ð¾Ð±ÑекÑа Math. ÐÑегда ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑй обÑÐµÐºÑ Math непоÑÑедÑÑвенно.
ÐбÑÐµÐºÑ Date
JavaScript не Ð¸Ð¼ÐµÐµÑ Ð¾ÑделÑного Ñипа даннÑÑ
Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ñ. Ðднако, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¾Ð±ÑÐµÐºÑ Date и его меÑÐ¾Ð´Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð´Ð°Ñами и вÑеменем в ваÑем пÑиложении. ÐбÑÐµÐºÑ Date Ð¸Ð¼ÐµÐµÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво меÑодов Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи, ÑÑÐµÐ½Ð¸Ñ Ð¸ опеÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ñой и вÑеменем, а ÑвойÑÑв не Ð¸Ð¼ÐµÐµÑ Ð½Ð¸ одного.
JavaScript опеÑиÑÑÐµÑ Ð´Ð°Ñами во многом аналогиÑно ÑзÑÐºÑ Java. ÐÐ»Ñ ÑабоÑÑ Ñ Ð´Ð°Ñой ÑÑи два ÑзÑка имеÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво одинаковÑÑ Ð¼ÐµÑодов, и оба они Ñ ÑанÑÑ Ð´Ð°ÑÑ ÐºÐ°Ðº колиÑеÑÑво миллиÑекÑнд, пÑоÑедÑÐ¸Ñ Ñ 00:00:00 1 ЯнваÑÑ 1970 года.
ÐеÑиод знаÑений, коÑоÑÑе Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ Data, пÑоÑÑиÑаеÑÑÑ Ð¾Ñ -100 000 000 до100 000 000 дней, оÑноÑиÑелÑно 1 ЯнваÑÑ 1970 года.
ЧÑÐ¾Ð±Ñ ÑоздаÑÑ Ñвой ÑкземплÑÑ Ð¾Ð±ÑекÑа Date иÑполÑзÑйÑе Ñакой код:
var dateObjectName = new Date([parameters]);
где dateObjectName ÑÑо Ð¸Ð¼Ñ Ð¿ÐµÑеменной, коÑоÑой бÑÐ´ÐµÑ Ð¿ÑиÑвоено Ñозданное знаÑение Ñ Ñипом Date; вмеÑÑо ÑÑой пеÑеменной, пÑиÑвоиÑÑ Ñозданное знаÑение можно как ÑвойÑÑво, лÑÐ±Ð¾Ð¼Ñ ÑÑÑеÑÑвÑÑÑÐµÐ¼Ñ Ð¾Ð±ÑекÑÑ.
ÐÑзов Date как ÑÑнкÑии, без клÑÑевого Ñлова new, возвÑаÑÐ°ÐµÑ ÑекÑÑÑÑ Ð´Ð°ÑÑ Ð¸ вÑÐµÐ¼Ñ Ð² виде ÑекÑÑовой ÑÑÑоки.
СодеÑжимÑм блока parameters в коде пÑедÑÑавленном вÑÑе, могÑÑ Ð²ÑÑÑÑпаÑÑ Ð»ÑÐ±Ð°Ñ Ð¸Ð· ÑледÑÑÑиÑ
конÑÑÑÑкÑий:
- ÐÑÑÑо: ÑоздаÑÑ ÑекÑÑÑÑ Ð´Ð°ÑÑ Ð¸ вÑемÑ. ÐÑимеÑ:
today = new Date();. - ТекÑÑÐ¾Ð²Ð°Ñ ÑÑÑока, ÑодеÑжаÑÐ°Ñ Ð´Ð°ÑÑ Ð¸ вÑÐµÐ¼Ñ Ð² ÑледÑÑÑем ÑоÑмаÑе: "ÐеÑÑÑ Ð´ÐµÐ½Ñ, год ÑаÑÑ:минÑÑÑ:ÑекÑндÑ". ÐапÑимеÑ:
var Xmas95 = new Date("December 25, 1995 13:30:00"). ÐÑли не ÑказаÑÑ ÑекÑндÑ, минÑÑÑ Ð¸Ð»Ð¸ ÑаÑÑ, Ñо Ð¸Ñ Ð·Ð½Ð°Ñение бÑÐ´ÐµÑ Ð¿ÑинÑÑо за 0. - ÐÐ°Ð±Ð¾Ñ ÑелоÑиÑленнÑÑ
знаÑений Ð´Ð»Ñ Ð³Ð¾Ð´Ð°, меÑÑÑа и днÑ. ÐапÑимеÑ:
var Xmas95 = new Date(1995, 11, 25). - ÐÐ°Ð±Ð¾Ñ ÑелоÑиÑленнÑÑ
знаÑений Ð´Ð»Ñ Ð³Ð¾Ð´Ð°, меÑÑÑа, днÑ, ÑаÑов, минÑÑ Ð¸ ÑекÑнд. ÐапÑимеÑ:
var Xmas95 = new Date(1995, 11, 25, 9, 30, 0);.
ÐолÑÑение даÑÑ Ð² ÑÑÑÑкоÑзÑÑном ÑоÑмаÑе
new Date().toLocaleString('ru',
{
day: 'numeric',
month: 'long',
year: 'numeric'
});
// ÑекÑÑÐ°Ñ Ð´Ð°Ñа в ÑоÑмаÑе: '10 ÑнваÑÑ 2019 г.'
ÐеÑÐ¾Ð´Ñ Ð¾Ð±ÑекÑа Date
ÐеÑÐ¾Ð´Ñ Ð¾Ð±ÑекÑа Date Ð´Ð»Ñ ÑабоÑÑ Ñ Ð´Ð°Ñой и вÑеменем делÑÑÑÑ Ð½Ð° ÑледÑÑÑие каÑегоÑии:
- "set" меÑодÑ, ÑлÑÐ¶Ð°Ñ Ð´Ð»Ñ ÑÑÑановки паÑамеÑÑов обÑекÑа
Date. - "get" меÑодÑ, ÑлÑÐ¶Ð°Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов обÑекÑа
Date. - "to" меÑодÑ, ÑлÑÐ¶Ð°Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¾Ð±ÑекÑа
Dateв ÑекÑÑовом виде. - "parse" и UTC меÑодÑ, ÑлÑÐ¶Ð°Ñ Ð´Ð»Ñ ÑаÑÐ¿Ð¾Ð·Ð½Ð°Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ñ Ð¸ вÑемени из ÑекÑÑового ÑоÑмаÑа.
ÐÑи помоÑи меÑодов гÑÑпп "get" и"set", Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе полÑÑиÑÑ Ð¸ ÑÑÑановиÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑекÑнд, минÑÑ, ÑаÑов, Ð´Ð½Ñ Ð¼ÐµÑÑÑа, Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸, меÑÑÑа и года по оÑделÑноÑÑи. ÐÑделÑно вÑделим меÑод getDay, коÑоÑÑй возвÑаÑÐ°ÐµÑ Ð´ÐµÐ½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸, однако ÑооÑвеÑÑÑвÑÑÑего ÐµÐ¼Ñ Ð¼ÐµÑода setDay не ÑÑÑеÑÑвÑеÑ, поÑомÑ-ÑÑо Ð´ÐµÐ½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ вÑÑÑиÑÑваеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки. ÐÑе ÑÑи меÑÐ¾Ð´Ñ Ð¸ÑполÑзÑÑÑ Ð² Ñвоей ÑабоÑе ÑелоÑиÑленнÑе знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑледÑÑÑим пÑавилам:
- СекÑÐ½Ð´Ñ Ð¸ минÑÑÑ: Ð¾Ñ 0 до 59
- ЧаÑÑ: Ð¾Ñ 0 до 23
- Ðни недели: Ð¾Ñ 0 (ÐоÑкÑеÑенÑе) до 6 (СÑббоÑа)
- Ðни меÑÑÑа: Ð¾Ñ 1 до 31
- ÐеÑÑÑÑ: Ð¾Ñ 0 (ЯнваÑÑ) до 11 (ÐекабÑÑ)
- Ðод: год оÑноÑиÑелÑно 1900 года.
ÐапÑимеÑ, пÑедположим, ÑÑо Ð²Ñ Ð¾Ð¿Ñеделили даÑÑ ÑледÑÑÑим обÑазом:
var Xmas95 = new Date("December 25, 1995");
Тогда Xmas95.getMonth() веÑнÑÑ 11, а Xmas95.getFullYear() веÑнÑÑ 1995.
ÐеÑÐ¾Ð´Ñ getTime и setTime могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñ Ð¿Ñи ÑÑавнении даÑ. ÐеÑод getTime возвÑаÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво миллиÑекÑнд, пÑоÑедÑиÑ
Ñ 00:00:00 1 ЯнваÑÑ, 1970 года.
ÐÐ»Ñ Ð¿ÑимеÑа ÑаÑÑмоÑÑим ÑледÑÑÑий код, показÑваÑÑий колиÑеÑÑво дней оÑÑавÑÐ¸Ñ ÑÑ Ð´Ð¾ конÑа ÑекÑÑего года:
var today = new Date(); // ÐолÑÑаем ÑекÑÑÑÑ Ð´Ð°ÑÑ
var endYear = new Date(1995, 11, 31, 23, 59, 59, 999); // УÑÑанавливаем меÑÑÑ Ð¸ Ð´ÐµÐ½Ñ Ð½Ð° ÐºÐ¾Ð½ÐµÑ Ð³Ð¾Ð´Ð°
endYear.setFullYear(today.getFullYear()); // УÑÑанавливаем ÑекÑÑий год
var msPerDay = 24 * 60 * 60 * 1000; // ÐолиÑеÑÑво миллиÑекÑнд в одниÑ
ÑÑÑкаÑ
var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay;
var daysLeft = Math.round(daysLeft); // возвÑаÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво дней, оÑÑавÑиÑ
ÑÑ Ð´Ð¾ конÑа года
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ ÑоздаÑÑ Ð¾Ð±ÑÐµÐºÑ Date названнÑй today, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ ÑекÑÑÑÑ Ð´Ð°ÑÑ Ð¸ вÑемÑ. ÐаÑем, ÑоздаÑÑÑÑ Ð²ÑпомогаÑелÑнÑй Date обÑекÑ, названнÑй endYear, коÑоÑÐ¾Ð¼Ñ ÑÑÑанавливаÑÑÑÑ Ð·Ð½Ð°ÑениÑ, ÑказÑваÑÑие на ÐºÐ¾Ð½ÐµÑ Ð³Ð¾Ð´Ð°. ÐоÑле ÑÑого, пÑи помоÑи ÑаÑÑÑиÑанного колиÑеÑÑва миллиÑекÑнд в ÑÑÑкаÑ
, вÑÑиÑлÑеÑÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво дней Ð¼ÐµÐ¶Ð´Ñ today и endYear, ÐÑи ÑÑом иÑполÑзÑÑÑÑÑ Ð¼ÐµÑод getTime и окÑÑгление, Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва полнÑÑ
дней.
ÐеÑод parse полезен Ð´Ð»Ñ Ð¿ÑиÑÐ²Ð¾ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñений ÑÑÑеÑÑвÑÑÑим обÑекÑам Date из ÑекÑÑового ÑоÑмаÑа. ÐапÑимеÑ, ÑледÑÑÑий код иÑполÑзÑÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ parse и setTime ÑÑÐ¾Ð±Ñ ÑÑÑановиÑÑ Ð·Ð½Ð°Ñение пеÑеменной IPOdate:
var IPOdate = new Date();
IPOdate.setTime(Date.parse("Aug 9, 1995"));
ÐÑимеÑ
Ð ÑледÑÑÑем пÑимеÑе пÑиведена ÑÑнкÑÐ¸Ñ JSClock(), коÑоÑÐ°Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð²ÑÐµÐ¼Ñ Ð² ÑоÑмаÑе ÑлекÑÑоннÑÑ
ÑаÑов:
function JSClock() {
var time = new Date();
var hour = time.getHours();
var minute = time.getMinutes();
var second = time.getSeconds();
var temp = "" + (hour > 12 ? hour - 12 : hour);
if (hour == 0) temp = "12";
temp += (minute < 10 ? ":0" : ":") + minute;
temp += (second < 10 ? ":0" : ":") + second;
temp += hour >= 12 ? " P.M." : " A.M.";
return temp;
}
ÐеÑвÑм делом, ÑÑнкÑÐ¸Ñ JSClock ÑоздаÑÑ Ð½Ð¾Ð²Ñй обÑÐµÐºÑ Date, названнÑй time; Ñак как обÑÐµÐºÑ ÑоздаÑÑÑÑ Ð±Ð°Ð· паÑамеÑÑов, пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ time ÑодеÑÐ¶Ð¸Ñ ÑекÑÑÑÑ Ð´Ð°ÑÑ Ð¸ вÑемÑ. ÐаÑем вÑзÑваÑÑÑÑ Ð¼ÐµÑÐ¾Ð´Ñ getHours, getMinutes и getSeconds, ÑÑÐ¾Ð±Ñ ÑÑÑановиÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑм hour, minute и second.
СледÑÑÑие ÑеÑÑÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑÑоÑÑ ÑекÑÑовÑÑ ÑÑÑÐ¾ÐºÑ Ð½Ð° оÑнове time. ÐеÑвое из ниÑ
ÑоздаÑÑ Ð¿ÐµÑеменнÑÑ temp, пÑиÑÐ²Ð°Ð¸Ð²Ð°Ñ ÐµÐ¹ знаÑение пÑи помоÑи ÑÑловиÑ; ÐÑли hour болÑÑе Ñем 12, Ñо (hour - 12), инаÑе пÑоÑÑо hour. Ð ÑлÑÑае же, когда hour Ñавно 0, беÑÑÑÑÑ ÑикÑиÑованное знаÑение "12".
СледÑÑÑее вÑÑажение пÑиÑаÑÐ¸Ð²Ð°ÐµÑ Ð¼Ð¸Ð½ÑÑÑ Ðº пеÑеменной temp. ÐÑли колиÑеÑÑво минÑÑ Ð¼ÐµÐ½ÑÑе 10, Ñо ÑÑловное вÑÑажение добавлÑÐµÑ ÑÑÑÐ¾ÐºÑ Ñ Ð´Ð²Ð¾ÐµÑоÑием и заполнÑÑÑим нÑлÑм, инаÑе, пÑоÑÑо ÑÑÑÐ¾ÐºÑ Ñ Ð´Ð²Ð¾ÐµÑоÑием. СекÑÐ½Ð´Ñ Ð¿ÑиÑаÑиваÑÑÑÑ Ðº пеÑеменной temp Ñем же пÑÑÑм.
РзавеÑÑение вÑего, поÑледнее ÑÑловное вÑÑажение добавлÑÐµÑ ÑÑÑÐ¾ÐºÑ "P.M." к пеÑеменной temp еÑли hour Ñавно или болÑÑе 12, инаÑе, добавлÑеÑÑÑ ÑÑÑока "A.M.".