ÐаннÑй Ñаздел пÑедÑÑавлÑÐµÑ Ñобой введение в ÑабоÑÑ Ñ ÑиÑлами и даÑами в 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
. Ðни вклÑÑаÑÑ ÑÑигономеÑÑиÑеÑкие, логоÑиÑмиÑеÑкие, ÑкÑпоненÑиалÑнÑе и дÑÑгие ÑÑнкÑии. ÐапÑимеÑ, еÑли Ð²Ñ Ñ
оÑиÑе иÑполÑзоваÑÑ ÑÑигономеÑÑиÑеÑкÑÑ ÑÑнкÑÐ¸Ñ ÑинÑÑа, Ð²Ñ Ð½Ð°Ð¿Ð¸ÑеÑе ÑледÑÑÑий код
ÐамеÑÑÑе, ÑÑо вÑе ÑÑигономеÑÑиÑеÑкие меÑÐ¾Ð´Ñ Ð¾Ð±ÑекÑа 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 г.'
ÐодÑобнее пÑо меÑод toLocalString
ÐеÑÐ¾Ð´Ñ Ð¾Ð±ÑекÑаDate
ÐеÑÐ¾Ð´Ñ Ð¾Ð±ÑекÑа Date
Ð´Ð»Ñ ÑабоÑÑ Ñ Ð´Ð°Ñой и вÑеменем делÑÑÑÑ Ð½Ð° ÑледÑÑÑие каÑегоÑии:
Date
.Date
.Date
в ÑекÑÑовом виде.ÐÑи помоÑи меÑодов гÑÑпп "get" и"set", Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе полÑÑиÑÑ Ð¸ ÑÑÑановиÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑекÑнд, минÑÑ, ÑаÑов, Ð´Ð½Ñ Ð¼ÐµÑÑÑа, Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸, меÑÑÑа и года по оÑделÑноÑÑи. ÐÑделÑно вÑделим меÑод getDay
, коÑоÑÑй возвÑаÑÐ°ÐµÑ Ð´ÐµÐ½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸, однако ÑооÑвеÑÑÑвÑÑÑего ÐµÐ¼Ñ Ð¼ÐµÑода setDay
не ÑÑÑеÑÑвÑеÑ, поÑомÑ-ÑÑо Ð´ÐµÐ½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ вÑÑÑиÑÑваеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки. ÐÑе ÑÑи меÑÐ¾Ð´Ñ Ð¸ÑполÑзÑÑÑ Ð² Ñвоей ÑабоÑе ÑелоÑиÑленнÑе знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑледÑÑÑим пÑавилам:
ÐапÑимеÑ, пÑедположим, ÑÑо Ð²Ñ Ð¾Ð¿Ñеделили даÑÑ ÑледÑÑÑим обÑазом:
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.".
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4