譛ャ鬆√�逶ョ谺。 逶ョ谺。 谺。鬆�: 10_Execution_Contexts 蜑埼��: 8_Types
ECMAScript 繝ゥ繝ウ繧ソ繧、繝�繧キ繧ケ繝�Β縺ッ縲∝ソ�ヲ∵凾縺ォ閾ェ蜍募梛螟画鋤繧定。後≧縲ゆク螳壹�讒区�迚ゥ縺ョ諢丞袖隲悶r險育判縺ォ縺吶k縺溘a縲∝、画鋤貍皮ョ怜ュ舌�繧サ繝�ヨ縺ョ螳夂セゥ縺梧怏逕ィ縺ァ縺ゅk縲ゅ%繧後i縺ョ貍皮ョ怜ュ舌�險隱槭�荳驛ィ縺ァ縺ッ縺ェ縺�; 縺薙%縺ァ縺ッ縲∬ィ隱槭�諢丞袖隲悶�莉墓ァ倥r蜉ゥ縺代k縺溘a縺ォ縺薙l繧峨r螳夂セゥ縺吶k縲ょ、画鋤貍皮ョ怜ュ舌�螟壽ァ倡噪縺ァ縺ゅk; 縺、縺セ繧翫∵ィ呎コ也噪縺ェ蝙九r蜿励¢蜈・繧後k縺薙→縺ッ縺ァ縺阪k縺後� Reference, List, Completion (蜀�Κ逧�梛) 繧貞女縺大�繧後k縺薙→縺ッ縺ァ縺阪↑縺��
ToPrimitive 貍皮ョ怜ュ舌�蠑墓焚 Value 縺ィ驕ク謚樒噪縺ェ蠑墓焚 PreferredType 繧偵→繧九� ToPrimitive 貍皮ョ怜ュ舌�縺昴�蠑墓焚縺ョ蛟、繧帝撼 Object 蝙九↓螟画鋤縺吶k縲ゅが繝悶ず繧ァ繧ッ繝医′荳縺、莉・荳翫�繝励Μ繝溘ユ繧」繝門梛縺ォ螟画鋤蜿ッ閭ス縺ァ縺ゅk蝣エ蜷医�∈謚樒噪縺ェ PreferredType 繝偵Φ繝医r縺昴�繧ソ繧、繝励↓驕ク繧薙〒繧医>縲ょ、画鋤縺ッ谺。縺ョ陦ィ縺ォ縺励◆縺後▲縺ヲ逋コ逕溘☆繧�:
蜈・蜉帛梛 | 邨先棡 |
Undefined | 邨先棡縺ッ蜈・蜉帛シ墓焚縺ィ遲峨@縺��(辟。螟画鋤) |
Null | 邨先棡縺ッ蜈・蜉帛シ墓焚縺ィ遲峨@縺��(辟。螟画鋤) |
Boolean | 邨先棡縺ッ蜈・蜉帛シ墓焚縺ィ遲峨@縺��(辟。螟画鋤) |
Number | 邨先棡縺ッ蜈・蜉帛シ墓焚縺ィ遲峨@縺��(辟。螟画鋤) |
String | 邨先棡縺ッ蜈・蜉帛シ墓焚縺ィ遲峨@縺��(辟。螟画鋤) |
Object | Object 縺ョ繝�ヵ繧ゥ繝ォ繝医�蛟、繧定ソ斐☆縲ゅが繝悶ず繧ァ繧ッ繝医�繝�ヵ繧ゥ繝ォ繝医�蛟、縺ッ縲√が繝悶ず繧ァ繧ッ繝医�蜀�Κ繝。繧ス繝�ラ [[DefaultValue]] 縺ォ驕ク謚樒噪繝偵Φ繝� PreferredType 繧呈ク。縺励※蜿門セ励&繧後k縲�[[DefalutValue]] 繝。繧ス繝�ラ縺ョ謖吝虚縺ッ縲∝�縺ヲ縺ョ ECMAScript 繧ェ繝悶ず繧ァ繧ッ繝医�莉墓ァ倥↓繧医▲縺ヲ螳夂セゥ縺輔l繧九�(繧サ繧ッ繧キ繝ァ繝ウ 8.6.2.6) |
ToBoolean 貍皮ョ怜ュ舌�縲∵ャ。縺ョ陦ィ縺ォ縺励◆縺後▲縺ヲ蠑墓焚繧� Boolean 蝙九�蛟、縺ォ螟画鋤縺吶k縲�
蜈・蜉帛梛 | 邨先棡 |
Undefined | false |
Null | false |
Boolean | 邨先棡縺ッ蜈・蜉帛シ墓焚縺ィ遲峨@縺��(辟。螟画鋤) |
Number | 蠑墓焚縺� +0, -0, NaN 縺ェ繧峨�邨先棡縺ッ false; 縺昴≧縺ァ縺ェ縺代l縺ー true |
String | 蠑墓焚縺檎ゥコ譁�ュ怜� (髟キ縺� 0) 縺ェ繧峨�邨先棡縺ッ false; 縺昴≧縺ァ縺ェ縺代l縺ー true |
Object | true |
ToNumber 貍皮ョ怜ュ舌�縲∵ャ。縺ョ陦ィ縺ォ縺励◆縺後▲縺ヲ蠑墓焚繧� Number 蝙九�蛟、縺ォ螟画鋤縺吶k縲�
蜈・蜉帛梛 | 邨先棡 |
Undefined | NaN |
Null | +0 |
Boolean | 蠑墓焚縺� true 縺ェ繧峨�邨先棡縺ッ 1�伺alse 縺ェ繧峨� +0縲� |
Number | 邨先棡縺ッ蜈・蜉帛シ墓焚縺ィ遲峨@縺��(辟。螟画鋤) |
String | 荳九�譁�ウ輔→豕ィ諢上r蜿ら�縲� |
Object | 谺。縺ョ繧ケ繝�ャ繝励r驕ゥ逕ィ:
|
譁�ュ怜�縺ォ驕ゥ逕ィ縺輔l繧� ToNumber 縺ッ縲∝�蜉帶枚蟄怜�縺ォ 谺。縺ョ譁�ウ輔r驕ゥ逕ィ縺吶k縲よ枚豕輔′譁�ュ怜�繧� StringNumericLiteral 縺ィ縺励※隗」驥井ク崎�縺ェ繧峨�縲� ToNumber 縺ョ邨先棡縺ッ NaN 縺ァ縺ゅk縲�
StringNumericLiteral 縺ィ NumericLiteral 縺ョ讒区枚髢薙↓縺�¥縺、縺区ウィ逶ョ縺吶∋縺咲嶌驕慕せ縺後≠繧� (繧サ繧ッ繧キ繝ァ繝ウ 7.8.3):
譁�ュ怜�縺ョ謨ー蛟、縺ク縺ョ螟画鋤縺ッ縲∝�菴薙↓謨ー蛟、繝ェ繝�Λ繝ォ縺ョ謨ー蛟、縺ョ豎コ螳壹→莨シ縺ヲ縺�k (繧サ繧ッ繧キ繝ァ繝ウ 7.8.3) 縺後√>縺上▽縺九�轤ケ縺ァ逡ー縺ェ繧翫∝セ薙▲縺ヲ string numeric literal 縺ョ Number 蝙九�蛟、縺ク縺ョ螟画鋤蜃ヲ逅��縺薙%縺ォ蜈ィ縺ヲ荳弱∴繧峨l繧九ゅ%縺ョ蛟、縺ッ 2 繧ケ繝�ャ繝励〒豎コ螳壹&繧後k: 縺セ縺壹∵焚蟄ヲ蛟、 (MV) 縺� string numeric literal 縺九i豢セ逕溘☆繧�; 谺。縺ォ縲√%縺ョ謨ー蟄ヲ蛟、縺梧ャ。縺ョ繧医≧縺ォ荳ク繧√i繧後k縲�
this
sign less mathematical zero to a floating-point +0 or -0 as appropriate )荳譌ヲ謨ー蛟、譁�ュ怜�繝ェ繝�Λ繝ォ縺ョ蜴ウ蟇�↑謨ー蟄ヲ蛟、縺梧アコ螳壹&繧後◆繧峨� Number 蝙九�蛟、縺ォ荳ク繧√i繧後k縲よ焚蟄ヲ蛟、縺� 0 縺ェ繧峨�縲∽クク繧√i繧後k蛟、縺ッ縲∵焚蛟、譁�ュ怜�繝ェ繝�Λ繝ォ蜀��譛蛻昴�髱樒ゥコ逋ス譁�ュ励′ '-' 縺ァ縺ェ縺代l縺ー +0 縺ァ縺ゅj縲� '-' 縺ェ繧峨� -0 縺ァ縺ゅk縲� 縺昴≧縺ァ縺ッ縺ェ縺上√Μ繝�Λ繝ォ縺� StrUnsignedDecimalLiteral 繧貞性縺セ縺壹√◎縺ョ繝ェ繝�Λ繝ォ縺� 20 繧定カ�∴繧区怏蜉ケ謨ー蟄玲焚\縺ァ縺ェ縺代l縺ー縲∵焚蛟、縺� 20 逡ェ逶ョ莉・髯阪�蜷�怏蜉ケ謨ー蟄励r謨ー蟄� 0 縺ァ鄂ョ謠帙@縺ヲ逕滓�縺輔l繧九Μ繝�Λ繝ォ縺ョ謨ー蟄ヲ蛟、縺ョ謨ー蛟、縲√∪縺溘� 20 逡ェ逶ョ莉・髯阪�蜷�怏蜉ケ謨ー蟄励r謨ー蟄� 0 縺ァ鄂ョ謠帙@縺ヲ逕滓�縺輔l繧九Μ繝�Λ繝ォ縺ョ謨ー蟄ヲ蛟、縺ョ謨ー蛟、縲√◎縺励※ 20 逡ェ逶ョ縺ョ謨ー蟄励�菴咲スョ縺ァ繝ェ繝�Λ繝ォ繧貞「怜刈縺ョ縺ゥ縺。繧峨°縺ァ縺ゅj縺医k蝣エ蜷医∽クク繧√i繧後k蛟、縺ッ (繧サ繧ッ繧キ繝ァ繝ウ 8.5 縺ァ螳夂セゥ縺輔l繧区э蜻ウ縺ョ) 謨ー蟄ヲ蛟、縺ョ謨ー蛟、縺ァ縺ェ縺代l縺ー縺ェ繧峨↑縺�よ焚蟄励�縺昴l縺� ExponentPart 縺ョ荳驛ィ\縺ァ縺ェ縺乗ャ。縺ョ莠檎せ縺ョ縺ゥ縺。繧峨°縺ゅl縺ー譛牙柑謨ー蟄� (significant) 縺ァ縺ゅk縲�
ToInteger 貍皮ョ怜ュ舌�蠑墓焚繧呈紛謨ー蛟、縺ォ螟画鋤縺吶k縲ゅ%縺ョ貍皮ョ怜ュ舌�谺。縺ョ繧医≧縺ォ讖溯�縺吶k:
ToInt32 貍皮ョ怜ュ舌�縲∝シ墓焚繧� -231 縺九i 231-1 繧貞性繧√◆遽�峇蜀�〒縲� 232 蛟九�謨エ謨ー蛟、縺ョ荳縺、縺ォ螟画鋤縺吶k縲�
縺薙�貍皮ョ怜ュ舌�谺。縺ョ繧医≧縺ォ讖溯�縺吶k:
NOTE 荳願ィ倥� ToInt32 縺ョ螳夂セゥ繧剃ク弱∴繧�:
ToInt32 貍皮ョ励� idempotent 縺ァ縺ゅk: 逕滓�縺輔l縺溽オ先棡縺ォ驕ゥ逕ィ縺吶k縺ェ繧峨�縲�2 蝗樒岼縺ョ驕ゥ逕ィ縺ッ蛟、繧貞、画峩縺帙★縺ォ谿九☆縲�
x 縺ョ蜈ィ縺ヲ縺ョ蛟、縺ォ縺ィ縺」縺ヲ縲ゝoInt32(ToUint32(x)) 縺ッ ToInt32(x) 遲我セ。縺ァ縺ゅk縲� (+竏� 縺ィ -竏� 縺ッ +0 縺ォ繝槭ャ繝励&繧後k縺ョ縺ッ蠕瑚��繝励Ο繝代ユ繧」縺ョ菫晏ュ倥〒縺ゅk縲�)
ToInt32 縺ッ -0 繧� +0 縺ォ繝槭ャ繝励☆繧九�
ToUint32 貍皮ョ怜ュ舌�蠑墓焚繧偵� 0 縺九i 232-1 繧貞性繧遽�峇縺ョ 232 蛟九�謨エ謨ー蛟、縺ョ荳縺、縺ォ螟画鋤縺吶k縲ょ九�貍皮ョ怜ュ舌�谺。縺ョ繧医≧縺ォ讖溯�縺吶k:
NOTE 荳願ィ倥� ToUInt32 縺ョ螳夂セゥ繧剃ク弱∴繧�:
繧ケ繝�ャ繝� 5 縺ッ ToUint32 縺ィ ToInt32 縺ィ縺ョ髢薙�驕輔>縺ァ縺ゅk縲�
ToUint32 貍皮ョ励� idempotent 縺ァ縺ゅk: 逕滓�縺輔l縺溽オ先棡縺ォ驕ゥ逕ィ縺吶k縺ェ繧峨�縲�2 蝗樒岼縺ョ驕ゥ逕ィ縺ッ蛟、繧貞、画峩縺帙★縺ォ谿九☆縲�
x 縺ョ蜈ィ縺ヲ縺ョ蛟、縺ォ縺ィ縺」縺ヲ縲ゝoUint32(ToInt32(x)) 縺ッ ToUint32(x) 遲我セ。縺ァ縺ゅk縲� (+竏� 縺ィ -竏� 縺ッ +0 縺ォ繝槭ャ繝励&繧後k縺ョ縺ッ蠕瑚��繝励Ο繝代ユ繧」縺ョ菫晏ュ倥〒縺ゅk縲�)
ToUint32 縺ッ -0 繧� +0 縺ォ繝槭ャ繝励☆繧九�
ToUint16 貍皮ョ怜ュ舌�縲∝シ墓焚繧� 0 縺九i 216-1 縺セ縺ァ縺ョ遽�峇縺ョ 216 蛟九�謨エ謨ー蛟、縺ョ縺�■縺ョ荳縺、縺ォ螟画鋤縺吶k縲ゅ%縺ョ貍皮ョ励�谺。縺ョ繧医≧縺ォ讖溯�縺吶k:
NOTE 荳願ィ倥� ToUint16 縺ョ螳夂セゥ繧剃ク弱∴繧�:
ToUint32 縺ィ ToUint16 縺ィ縺ョ髢薙�驕輔>縺ッ縲√せ繝�ャ繝� 4 縺ォ縺ヲ 232 縺ォ 216 繧剃サ」逕ィ縺励※縺�k縺�縺代〒縺ゅk縲�
ToUint16 縺ッ -0 繧� +0 縺ォ繝槭ャ繝励☆繧九�
ToString 貍皮ョ怜ュ舌�縲∵ャ。縺ョ陦ィ縺ォ蠕薙▲縺ヲ蠑墓焚繧� String 蝙九�蛟、縺ォ螟画鋤縺吶k縲�
蜈・蜉帛梛 | 邨先棡 |
Undefined | "undefined" |
Null | "null" |
Boolean | 蠑墓焚縺� true 縺ェ繧峨�縲∫オ先棡縺ッ "true" 縲ょシ墓焚縺� false 縺ェ繧峨�縲∫オ先棡縺ッ "false" 縲� |
Number | 荳九�繝弱�繝医r蜿ら�縲� |
String | 蜈・蜉帛シ墓焚繧定ソ斐☆縲� (辟。螟画鋤) |
Object | 谺。縺ョ繧ケ繝�ャ繝励r驕ゥ逕ィ:
|
ToString 貍皮ョ怜ュ舌�縲∵ャ。縺ョ繧医≧縺ォ謨ー m 繧呈枚蟄怜�蠖「蠑上↓螟画鋤縺吶k:
NOTE 谺。縺ョ隕ウ蟇溘�螳溯」�ぎ繧、繝峨Λ繧、繝ウ縺ィ縺励※譛臥畑縺九b縺励l縺ェ縺�′縲√%縺ョ讓呎コ悶�讓呎コ門ソ��域擅莉カ縺ョ荳驛ィ縺ァ縺ッ縺ェ縺��
x 縺� -0 莉・螟悶�莉サ諢上�謨ー蛟、縺ェ繧峨�縲� ToNumber(ToString(x)) 縺ッ蜴ウ蟇�↓ x 縺ィ蜷後§謨ー蛟、縺ァ縺ゅk縲�
s 縺ョ譛蟆乗。∵焚蟄励�縲√せ繝�ャ繝� 5 縺ォ謖吶£縺溯ヲ∵アゅ↓繧医▲縺ヲ蟶ク縺ォ荳諢上↓豎コ螳壹&繧後k縺ィ縺ッ髯舌i縺ェ縺��
荳願ィ倥�隕丞援縺ォ繧医▲縺ヲ隕∵アゅ&繧後k繧医j繧よ侠繧頑ュ」遒コ縺ェ隕丞ョ壹r謠蝉セ帙☆繧句ョ溯」�↓縺ッ縲∵ャ。縺ョ繧ケ繝�ャ繝� 5 縺ョ莉」譖ソ繝舌�繧ク繝ァ繝ウ繧偵ぎ繧、繝峨Λ繧、繝ウ縺ィ縺励※菴ソ逕ィ縺吶k縺薙→縺悟・ィ繧√i繧後k:
縺昴≧縺ァ縺ェ縺�↑繧峨�縲� n, k, s 繧� k 竕ァ 1, 10k-1 竕ヲ s < 10k, s テ� 10n-k 縺ョ謨ー蛟、繧� m, k 縺ッ縺ァ縺阪k縺�縺大ー上&縺�h縺�↑謨エ謨ー蛟、縺ィ縺吶k縲� s 縺瑚、�焚蟄伜惠縺励≧繧九↑繧峨�縲� s テ� 10n-k 縺悟、縺ァ m 縺ォ譛繧りソ代¥縺ェ繧九h縺�↑ s 繧帝∈謚槭☆繧九� s 縺ィ縺励※蜿ッ閭ス縺ェ蛟、縺� 2 縺、縺ゅl縺ー縲∝�謨ー縺ァ縺ゅk譁ケ繧偵r驕ク縺カ縲� k 縺ッ s 縺ョ 10 騾イ陦ィ險倥�謨ー蟄励�謨ー縺ァ縲� s 縺ッ 10 縺ァ蜑イ繧雁�繧後↑縺�%縺ィ縺ォ豕ィ諢上�
ECMAScript 螳溯」���縲∵オョ蜍募ー乗焚轤ケ謨ー縺ョ 2 騾イ謨ー縺九i 10 騾イ謨ー縺ク縺ョ螟画鋤縺ョ縺溘a縺ォ David M. Gay 縺ォ繧医k蠖ケ縺ォ遶九▽繝壹�繝代�蜿翫�繧ウ繝シ繝峨r讀懃エ「縺ァ縺阪k:
Gay, David M. Correctly Rounded Binary-Decimal and Decimal-Binary Conversions. Numerical Analysis Manuscript 90-10. AT&T Bell Laboratories (Murray Hill, New Jersey). November 30, 1990. http://cm.bell-labs.com/cm/cs/doc/90/4-10.ps.gz 縺ァ蛻ゥ逕ィ蜿ッ閭ス縲る未騾」繧ウ繝シ繝峨′ http://cm.bell-labs.com/netlib/fp/dtoa.c.gz 蜿翫� http://cm.bell-labs.com/netlib/fp/g_fmt.c.gz 縺ァ蛻ゥ逕ィ蜿ッ閭ス縲よァ倥�↑ netlib 繝溘Λ繝シ繧オ繧、繝医〒繧よ、懃エ「縺ァ縺阪k縲�
ToObject 貍皮ョ怜ュ舌�谺。縺ョ陦ィ縺ォ蠕薙▲縺ヲ蠑墓焚繧偵が繝悶ず繧ァ繧ッ繝亥梛縺ョ蛟、縺ォ螟画鋤縺吶k:
蜈・蜉帛梛 | 邨先棡 |
Undefined | 萓句、� TypeError 繧呈兜縺偵k縲� |
Null | 萓句、� TypeError 繧呈兜縺偵k縲� |
Boolean | [[value]] 繝励Ο繝代ユ繧」縺後◎縺ョ繝悶�繝ェ繧「繝ウ縺ァ縺ゅk Boolean 繧ェ繝悶ず繧ァ繧ッ繝医r譁ー縺励¥菴懈�縺吶k縲� 繧サ繧ッ繧キ繝ァ繝ウ 15.6 Boolean 繧ェ繝悶ず繧ァ繧ッ繝医�隱ャ譏弱r蜿ら�縲� |
Number | [[value]] 繝励Ο繝代ユ繧」縺後◎縺ョ謨ー蛟、縺ァ縺ゅk Number 繧ェ繝悶ず繧ァ繧ッ繝医r譁ー縺励¥菴懈�縺吶k縲� 繧サ繧ッ繧キ繝ァ繝ウ 15.7 Number 繧ェ繝悶ず繧ァ繧ッ繝医�隱ャ譏弱r蜿ら�縲� |
String | [[value]] 繝励Ο繝代ユ繧」縺後◎縺ョ譁�ュ怜�縺ァ縺ゅk String 繧ェ繝悶ず繧ァ繧ッ繝医r譁ー縺励¥菴懈�縺吶k縲� 繧サ繧ッ繧キ繝ァ繝ウ 15.5 String 繧ェ繝悶ず繧ァ繧ッ繝医�隱ャ譏弱r蜿ら�縲� |
Object | 邨先棡縺ッ蜈・蜉帛シ墓焚縺ァ縺ゅk (螟画鋤縺励↑縺�)縲� |