ì«ìì ë ì§
ì´ ì¥ììë JavaScriptìì ì«ìì ë ì§ë¥¼ ì¬ì©í기 ìí ê°ë
ê³¼ ê°ì²´, í¨ìì ëí´ ìê°í©ëë¤. ê·¸ë¦¬ê³ ì«ì를 10ì§ë², 2ì§ë², 16ì§ë² ë±ì ë¤ìí ííë¡ íííë ë°©ë²ê³¼ ëë¶ì´ Math ê°ì²´ë¥¼ ì¬ì©í´ ë¤ìí ìí ì°ì°ì ìííë ë°©ë²ì ì ì ììµëë¤.
ì«ì
JavaScriptìì 모ë ì«ìë double-precision 64-bit binary format IEEE 754 (ì¦, ±2^â1022 ê³¼ ±2^+1023 ëë ëëµ Â±10^â308 to ±10^+308 ì¬ì´ì ì«ìì´ë©° 53bitsì ìì¹ì ë°ë )ë¡ êµ¬íëì´ ììµëë¤. ±2^53 - 1ê¹ì§ì ì ì ê°ì ì ííê² ëíë¼ ì ììµëë¤.
ì¬ê¸° ë¶ë ììì ì«ì를 ëíë¼ ì ìì¼ë©°, ì«ì íìì ì¸ ê°ì ìì§ì ì¸ ê°: +Infinity, -Infinity, and NaN (ì«ìê° ìë ê°)ì ê°ìµëë¤.
JavaScriptì ìµê·¼ ì¶ê° ë ê²ì BigIntë¡, ë§¤ì° í° ì ì를 ëíë¼ ì ììµëë¤. BigInt를ì¬ì©í ë ë¤ìì 주ìí´ì¼ í©ëë¤. ì를 ë¤ë©´, BigIntì Number ê°ì ê°ì ì°ì°ì¼ë¡ í¼í©íê³ ì¼ì¹ìí¬ ìë ìì¼ë©° Math ê°ì²´ë¥¼ BigIntê°ê³¼ í¨ê» ì¬ì©í ì ììµëë¤.
JavaScriptìì ë¤ë¥¸ 기본íê³¼ 문맥ì ëí ë´ì©ì JavaScript data types and structures를 참조íì¸ì.
ì¬ë¬ë¶ì ì«ì 리í°ë´ì ë¤ ê°ì§ ì íì ì¬ì©í ì ììµëë¤: 10ì§ì, 2ì§ì, 8ì§ì, 16ì§ì
10ì§ì
1234567890;
42;
// ìì 0ì´ ë¶ì ì«ì를 ì¡°ì¬íì¸ì:
0888; // 10ì§ì 888ë¡ í´ìë©ëë¤.
0777; // non-strict modeìì 10ì§ì 511ë¡ í´ìë©ëë¤.
10ì§ì 리í°ë´ë ì(0)ì¼ë¡ ììë ì ìë¤ë ì ì ì ìíì¸ì. ê·¸ë¬ë ë§ì½ ì0 ë¤ì ì«ìê° 8ë³´ë¤ ìì¼ë©´, ê·¸ ì«ìë 8ì§ë²ì¼ë¡ í´ìë©ëë¤.
2ì§ì
2ì§ì 구문ì ìì ì¤ë 0ê³¼ ì문ì ëë ë문ì ë¼í´ 문ì "B"(0B ëë 0b)를 ì¬ì©í©ëë¤. 0b ë¤ìì ì«ìê° 0 ëë 1ì´ ìëë©´ ë¤ìì SyntaxErrorê° ë°ìí©ëë¤. "0b ì´íì ëë½ ë 2 ì§ì"("Missing binary digits after 0b")ì ëë¤.
var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648
var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
var FLT_MANTISSA = 0b00000000011111111111111111111111; // 8388607
8ì§ì
8 ì§ì 구문ì ìì 0ì ì¬ì©í©ëë¤. 0 ì´íì ì«ìê° 0ìì 7ê¹ì§ ë²ì ë°ì ìë ê²½ì°, ì«ìë 10ì§ìë¡ í´ìë©ëë¤.
var n = 0755; // 493
var m = 0644; // 420
ECMAScript 5ì Strict 모ëë 8 ì§ì 구문ì ê¸ì§í©ëë¤. 8 ì§ì 구문ì ECMAScript 5ì ì¼ë¶ê° ìëì§ë§, 0644 === 420 ë° "\ 045"=== "%"ì 8 ì§ìì ì ëì¬ë¥¼ ë¶ì´ë©´ 모ë ë¸ë¼ì°ì ìì ì§ìë©ëë¤. ECMAScript 2015ììë ì ëì´ê° 0oì¸ ê²½ì° 8 ì§ìê° ì§ìë©ëë¤ (ì :
var a = 0o10; // ES2015: 8
16ì§ì
16ì§ì 구문ì ìì 0 ë¤ìì ì문ìë ë문ì ë¼í´ì´ 문ì "X"(0x ëë 0X)를 ì¬ì©í©ëë¤. 0X ì´í ì«ìê° ë²ì(0123456789ABCDEF) ë°ì ìë ê²½ì°, ë¤ì SyntaxErrorê° ë°ìí©ëë¤: "ìë³ìë ì«ì 리í°ë´ í ì¦ì ììë©ëë¤".
0xfffffffffffffffff; // 295147905179352830000
0x123456789abcdef; // 81985529216486900
0xa; // 10
ì§ì ê³ì°
1E3 // 1000 2e6 // 2000000 0.1e2 // 10
Number ê°ì²´
Number ë´ì¥ê°ì²´ë ìµëê°, not-a-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 ê°ì²´ì ìì±ì´ ìì½ëì´ ììµëë¤.
| í¹ì± | ë¬ì¬ |
|---|---|
Number.MAX_VALUE |
ííê°ë¥í ê°ì¥ í° ì (±1.7976931348623157e+308) |
Number.MIN_VALUE |
ííê°ë¥í ê°ì¥ ìì ì(±5e-324) |
Number.NaN |
"ì«ìê° ìë" í¹ìê° |
Number.NEGATIVE_INFINITY |
ìì 무íëê°; ì¤ë² íë¡ë¡ ë°íë¨. |
Number.POSITIVE_INFINITY |
ìì 무íë ê°; ì¤ë² íë¡ë¡ ë°íë¨. |
Number.EPSILON |
ííê°ë¥í ë§¤ì° ìì ê°Number.(2.220446049250313e-16) |
Number.MIN_SAFE_INTEGER |
JavaScriptìì ìì í ìµìì ì ì.(â2^53 + 1, or â9007199254740991) |
Number.MAX_SAFE_INTEGER |
JavaScriptìì ìì í ìµëì ì ì.(+2^53 â 1, or +9007199254740991) |
| ë°©ë² | ë¬ì¬ |
|---|---|
Number.parseFloat() |
문ìì´ ì¸ì를 íì±íê³ ë¶ë ììì ì«ì를 ë°íí©ëë¤. ì ì
|
Number.parseInt() |
문ìì´ ë¼ì¸ ì¸ì를 íì±í´, ì§ì ë 기ì ëë ë°ì¤ì ì ì를 ëë ¤ì¤ëë¤.
ì ì parseInt()í¨ìì ëì¼í©ëë¤.
|
Number.isFinite() |
ì ë¬ë ê°ì´ ì íí ìì¸ì§ íì í©ëë¤. |
Number.isInteger() |
ì ë¬ë ê°ì´ ì ìì¸ì§ íì í©ëë¤. |
Number.isNaN() |
ì´ ì ë¬ë ê°
Not-a-Numberì¬ë¶ë¥¼
íì¸í©ëë¤. ì본 ê¸ë¡ë²
(isNaN)ì ëì±
ê°ë ¥í ë²ì ì
ëë¤.
|
Number.isSafeInteger() |
ì ê³µë ê°ì´ ìì í ì ìì¸ì§ ì¬ë¶ë¥¼ íì¸í©ëë¤. |
Number íë¡í íì
ì ë¤ìí íìì Number ê°ì²´ìì ì 보를 ê²ìíë ë©ìë를 ì ê³µí©ëë¤. ë¤ì íë Number.prototypeì ë©ìë를 ìì½ í ê²ì
ëë¤.
| ë°©ë² | Description |
|---|---|
toExponential() |
ì§ìíê¸°ë² ììì ë²í¸ë¥¼ ëíë´ë 문ìì´ì ë°íí©ëë¤. |
toFixed() |
문ìì´ ê³ ì ìì ì í기ë²ì ì를 ëíë´ë 문ìì´ì ë°íí©ëë¤. |
toPrecision() |
ì§ì ë ì ë°ì ê³ ì ìì ì í기ë²ì ì를 ëíë´ë 문ìì´ì ë°íí©ëë¤. |
Math ê°ì²´
ë´ì¥ Math ê°ì²´ë ìí ìì ë° í¨ìì ëí ìì± ë° ë©ìë를 í¬í¨í©ëë¤. ì를 ë¤ì´, Math ê°ì²´ì PI ìì±ìë pi (3.141 ...) ê°ì´ ììµëë¤.ì´ ê°ì ìì© íë¡ê·¸ë¨ìì ë¤ìê³¼ ê°ì´ ì¬ì©í©ëë¤.
Math.PI;
ë§ì°¬ê°ì§ë¡ íì¤ ìí í¨ìë Mathì í¨ìì
ëë¤. ì¬ê¸°ìë ì¼ê° í¨ì, ë¡ê·¸ í¨ì, ì§ì í¨ì ë° ê¸°í í¨ìê° í¬í¨ë©ëë¤. ì를 ë¤ì´ ì¼ê° í¨ì sineì ì¬ì©íë ¤ë©´ ë¤ìê³¼ ê°ì´ ìì±í©ëë¤.
Math.sin(1.56);
Mathì 모ë ì¼ê° í¨ììë ë¼ëìì¼ë¡ 매ê²ë³ì를 ì
ë ¥í´ì¼ í©ëë¤.
ë¤ì íììë Math ê°ì²´ì ë°©ë²ì ìì½íììµëë¤.
| ë°©ë² | ë¬ì¬ |
|---|---|
abs() |
ì ë ê° |
sin(),
cos(),
tan()
|
íì¤ ì¼ê° í¨ì; ë¼ëìììì ì¸ì |
asin(),
acos(),
atan(),
atan2()
|
ìì¼ê° í¨ì; ë¼ëìì ë°í ê° |
sinh(),
cosh(),
tanh()
|
ì곡ì¼ê°í¨ì; ë¼ëìì ë°í ê°. |
asinh(),
acosh(),
atanh()
|
ìì곡ì¼ê°í¨ì; ë¼ëìì ë°í ê°. |
| ì§ìì ë¡ê·¸ 기ë¥. | |
floor(),
ceil()
|
ê°ì¥í°/ê°ì¥ìì ì ì ë³´ë¤ ì ì/ë§ì ëë ê·¸ì ëë±í ìì¹ì¼ë¡ ë°íí´ë¼. |
min(),
max()
|
ëì ê±°ë ëë§ì ì¼íì (ê°ê°) ì«ì ì¸ìì ëë목ë¡ì¼ë¡ ë°íí´ë¼. |
random() |
0ê³¼ 1ì¬ì´ì ëì를 ë°íí´ë¼. |
round(),
fround(),
trunc(),
|
ë°ì¬ë¦¼ê³¼ ì ë¨ ê¸°ë¥ë¤. |
sqrt(),
cbrt(),
hypot()
|
ì ê³± ê·¼, ì¸ ì ê³± ê·¼, íë°© ì¸ìì í©ì ì ê³± ê·¼. |
sign() |
ê·¸ ìê° ììì¸ì§ ììì¸ì§ 0ì¸ì§ë¥¼ ê°ë¥´í¤ë ì«ìì íì. |
clz32(),imul()
|
32ë¹í¸ ì´ì§ íìì 주ì ì ë¡ ë¹í¸ ì. ê·¸ ë ì¸ìì C-like 32ë¹í¸ ê³±ì ì ê²°ê³¼. |
ë¤ë¥¸ ë§ì ê°ì²´ì ë¬ë¦¬ ìì ì Math ê°ì²´ë¥¼ ë§ë¤íìê° ììµëë¤. ì¸ì ë ë´ì¥ ë Math ê°ì²´ ë°ë¡ ì¬ì©í ì ììµëë¤.
Date ê°ì²´
JavaScriptìë ë ì§ ë°ì´í° íì
ì´ ììµëë¤. ê·¸ë¬ë, Date ê°ì²´ì ê·¸ ë©ìë를 ì¬ì©íì¬ ìì© íë¡ê·¸ë¨ìì ë ì§ì ìê°ì ì²ë¦¬ í ì ììµëë¤. Date ê°ì²´ìë ë ì§ ì¤ì , ê°ì ¸ ì¤ê¸° ë° ì¡°ìììí ë§ì ë©ìëê° ììµëë¤. ìì±(properties)ì´ ììµëë¤.
JavaScriptë ìë°ì ë¹ì·íê² ë ì§ë¥¼ ì²ë¦¬í©ëë¤. ë ì¸ì´ìë ëì¼í ë ì§ ë©ìëê° ë§ì¼ë©° ë ì¸ì´ 모ë 1970 ë 1 ì 1 ì¼ 00:00:00 ì´íì ë°ë¦¬ ì´ ìë¡ ë ì§ë¥¼ ì ì¥í©ëë¤. ì ëì¤ íì ì¤í¬íë 1970 ë 1 ì 1 ì¼ 00:00:00 ì´íì ì´ ìì ëë¤.
Date ê°ì²´ ë²ìë UTC 1970 ë 1 ì 1 ì¼ì 기ì¤ì¼ë¡ -100,000,000 ì¼ìì 100,000,000 ì¼ì ëë¤.
Date ê°ì²´ë¥¼ ë§ë¤ë ¤ë©´ :
var dateObjectName = new Date([parameters]);
ì¬ê¸°ì dateObjectNameì ë§ë¤ë ¤ë Date ê°ì²´ì ì´ë¦ì
ëë¤. ìë¡ì´ ê°ì²´ ëë 기존 ê°ì²´ì ìì± ì¼ ì ììµëë¤.
new í¤ìëìì´ Date를 í¸ì¶íë©´ íì¬ ë ì§ì ìê°ì ëíë´ë 문ìì´ì´ ë°íë©ëë¤.
ì 구문ìì parametersë ìë ê·ì¹ì ë°ë¦
ëë¤.
- ì무ê²ëììë: ì¤ëì ë ì§ì ìê°ì ë§ëëë¤. ì를 ë¤ì´,
today = new Date();. - ë ì§ë¥¼ ëíë´ë 문ìì´ì íì: "Month day, year hours:minutes:seconds."ì를 ë¤ì´,
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);.
Data ê°ì²´ì íí ë°©ë²
ë ì§ì ìê°ì ì¡°ì íë Dateê°ì²´íí ë°©ë²ì ìë ì¢
ë¥ë¡ ëë©ëë¤:
- "set" í¨ì, ë ì§ ê°ì²´ ìììì ë ì§ ë° ìê° ê°ì ì¤ì í©ëë¤.
- "get" í¨ì, ë ì§ ê°ì²´ ìììì ë ì§ ë° ìê° ê°ì ì»ìµëë¤.
- "to" í¨ì, ë ì§ ê°ì²´ë¡ë¶í° 문ìì´ ê°ì ë°íí©ëë¤.
Date문ìì´ì ë¶ìí기ìí´ parseì UTCí¨ì를 ì¬ì©í©ëë¤.
"get"ë° "set"ë©ìë를 ì¬ì©íì¬ ì´, ë¶,ì, ì¼, ìì¼, ì ë° ì°ë를 ë³ëë¡ ê°ì ¸ ìì ì¤ì í ì ììµëë¤. ìì¼ì´ ìëì ì¼ë¡ ì¤ì ë기 (ìí´) ë문ì, ìì¼ì ëë ¤ì£¼ë getDay ë©ìëê° ììµëë¤ë§, ëìíë setDay ë©ìëë ììµëë¤. ì´ë¬í ë©ìëë ì ì를 ì¬ì©íì¬ ë¤ìê³¼ ê°ì´ ê°ì ëíë ëë¤.
- ì´ì ë¶: 0 to 59
- ìê°: 0 to 23
- ìì¼: 0 (Sunday) to 6 (Saturday)
- ë ì§: 1 to 31 (day of the month)
- ì: 0 (January) to 11 (December)
- ì°ë: years since 1900
ì를 ë¤ì´, ìëì ê°ì´ ê°ë¤ì ì ìí´ë´ ìë¤ :
var Xmas95 = new Date("December 25, 1995");
ê·¸ë¬ë©´ Xmas95.getMonth()ë 11ì ë°íí©ëë¤, ê·¸ë¦¬ê³ Xmas95.getFullYear()ë 1995를 ë°íí©ëë¤.
getTimeê³¼ setTimeë°©ë²ë¤ì ë ì§ë¥¼ ëëë ì ì©í©ëë¤. getTimeí¨ìë Dateê°ì²´ì ëí´ 1970ë
1ì 1ì¼ 00:00ìë¶í° ë°ë¦¬ì´ë¨ìë¡ ë¦¬í´í©ëë¤.
ì를 ë¤ì´, ë¤ì ì½ëë íì¬ ë ëì ë¨ì ì를 íìí©ëë¤:
var today = new Date();
var endYear = new Date(1995, 11, 31, 23, 59, 59, 999); // Set day and month
endYear.setFullYear(today.getFullYear()); // Set year to this year
var msPerDay = 24 * 60 * 60 * 1000; // Number of milliseconds per day
var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay;
var daysLeft = Math.round(daysLeft); //returns days left in the year
ì´ ìì ìë ì¤ë ë ì§ê° í¬í¨ë todayë¼ë ëª
ì¹ì ê°ì§ Dateê°ì²´ë¥¼ ë§ëëë¤. ê·¸ë¦¬ê³ ëì endYearë¼ë Dateê°ì²´ë¥¼ ë§ë¤ê³ íì¬ì°ë를 ì¤ì í©ëë¤. ê·¸ë° ë¤ì í루ì ë°ë¦¬ ì´ ì를 ì¬ì©íì¬ getTimeì ì¬ì©íê³ ì ì²´ ì¼ ì를 ë°ì¬ë¦¼íì¬ todayì endYear ì¬ì´ì ì¼ ì를 ê³ì°í©ëë¤.
Parse í¨ìë ë ì§ë¬¸ìì´ë¶í° 기존ì Dateê°ì²´ê¹ì§ì ê°ì í ë¹í기ì ì ì©í©ëë¤. ì를 ë¤ì´, ë¤ì ì½ëë ê·¸ IPOdate ê°ì²´ì ë ì§ê°ì í ë¹í기ìí´ parseì setTimeì ì¬ì©í©ëë¤;
var IPOdate = new Date();
IPOdate.setTime(Date.parse("Aug 9, 1995"));
ìì
ë¤ì ìì ìì JSClock()ë digital ìê³íìì ìê°ì ë°íí©ëë¤.
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 í¨ìë 먼ì timeì´ë¼ë ì Date ê°ì²´ë¥¼ ë§ëëë¤. ì¸ìê° ìì¼ë¯ë¡ íì¬ ë ì§ì ìê°ì¼ë¡ ìê°ì´ ìì±ë©ëë¤. ê·¸ë° ë¤ì getHours, getMinutes ë° getSeconds ë©ìë를 í¸ì¶íë©´ íì¬ ìê°, ë¶ ë° ì´ ê°ì´hour, minute, secondë¡ í ë¹ë©ëë¤.
ë¤ì ë¤ ë¬¸ì¥ì ìê°ì 기ì¤ì¼ë¡ 문ìì´ ê°ì ë§ëëë¤. 첫 ë²ì§¸ ëª ë ¹ë¬¸ì ë³ì temp를 ìì±íê³ ì¡°ê±´ìì ì¬ì©íì¬ ê°ì í ë¹í©ëë¤. hourê° 12ë³´ë¤ í° ê²½ì° (hour - 12), ê·¸ë ì§ ìì ê²½ì° ìê°ì´ 0ì´ ìë ê²½ì° ìê°ì´ 12 ì¼ ê²½ì° ìê°ì´ 12ê°ë©ëë¤.
ë¤ì ëª
ë ¹ë¬¸ì temp ê°ì minute ê°ì ì¶ê°í©ëë¤. ë¶(minute)ì ê°ì´ 10ë³´ë¤ ì ì¼ë©´ ì¡°ê±´ìì ìì 0ì´ ìë 문ìì´ì ì¶ê°í©ëë¤. ê·¸ë ì§ ìì¼ë©´ ì½ë¡ ì 구ë¶íë 문ìì´ì ì¶ê°í©ëë¤. ê·¸ë° ë¤ì ê°ì ë°©ë²ì¼ë¡ tempì ì´ ê°ì ì¶ê°í©ëë¤.
ë§ì§ë§ì¼ë¡ ì¡°ê±´ë¶ ííìì "P.M."ì´ ì¶ê°ë©ëë¤. ìê°(hour)ì´ 12 ìê° ì´ìì´ë©´ ìì(temp)ë¡; ê·¸ë ì§ ìì¼ë©´ "A.M."ì tempì ì¶ê°í©ëë¤.