譛ャ鬆√�逶ョ谺。 逶ョ谺。

9 蝙句、画鋤 (Type Conversion)

ECMAScript 繝ゥ繝ウ繧ソ繧、繝�繧キ繧ケ繝�Β縺ッ縲∝ソ�ヲ∵凾縺ォ閾ェ蜍募梛螟画鋤繧定。後≧縲ゆク€螳壹�讒区�迚ゥ縺ョ諢丞袖隲悶r險育判縺ォ縺吶k縺溘a縲∝、画鋤貍皮ョ怜ュ舌�繧サ繝�ヨ縺ョ螳夂セゥ縺梧怏逕ィ縺ァ縺ゅk縲ゅ%繧後i縺ョ貍皮ョ怜ュ舌�險€隱槭�荳€驛ィ縺ァ縺ッ縺ェ縺�; 縺薙%縺ァ縺ッ縲∬ィ€隱槭�諢丞袖隲悶�莉墓ァ倥r蜉ゥ縺代k縺溘a縺ォ縺薙l繧峨r螳夂セゥ縺吶k縲ょ、画鋤貍皮ョ怜ュ舌�螟壽ァ倡噪縺ァ縺ゅk; 縺、縺セ繧翫€∵ィ呎コ也噪縺ェ蝙九r蜿励¢蜈・繧後k縺薙→縺ッ縺ァ縺阪k縺後€� Reference, List, Completion (蜀�Κ逧�梛) 繧貞女縺大�繧後k縺薙→縺ッ縺ァ縺阪↑縺�€�

9.1 ToPrimitive

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)

9.2 ToBoolean

ToBoolean 貍皮ョ怜ュ舌�縲∵ャ。縺ョ陦ィ縺ォ縺励◆縺後▲縺ヲ蠑墓焚繧� Boolean 蝙九�蛟、縺ォ螟画鋤縺吶k縲�

蜈・蜉帛梛 邨先棡
Undefined false
Null false
Boolean 邨先棡縺ッ蜈・蜉帛シ墓焚縺ィ遲峨@縺�€�(辟。螟画鋤)
Number 蠑墓焚縺� +0, -0, NaN 縺ェ繧峨�邨先棡縺ッ false; 縺昴≧縺ァ縺ェ縺代l縺ー true
String 蠑墓焚縺檎ゥコ譁�ュ怜� (髟キ縺� 0) 縺ェ繧峨�邨先棡縺ッ false; 縺昴≧縺ァ縺ェ縺代l縺ー true
Object true

9.3 ToNumber

ToNumber 貍皮ョ怜ュ舌�縲∵ャ。縺ョ陦ィ縺ォ縺励◆縺後▲縺ヲ蠑墓焚繧� Number 蝙九�蛟、縺ォ螟画鋤縺吶k縲�

蜈・蜉帛梛 邨先棡
Undefined NaN
Null +0
Boolean 蠑墓焚縺� true 縺ェ繧峨�邨先棡縺ッ 1�伺alse 縺ェ繧峨� +0縲�
Number 邨先棡縺ッ蜈・蜉帛シ墓焚縺ィ遲峨@縺�€�(辟。螟画鋤)
String 荳九�譁�ウ輔→豕ィ諢上r蜿ら�縲�
Object 谺。縺ョ繧ケ繝�ャ繝励r驕ゥ逕ィ:
  • 1. ToPrimitive(input argument, hint Number) 繧貞他蜃コ縺吶€�
  • 2. ToNumber(Result(1)) 繧貞他蜃コ縺吶€�
  • 3. Result(2) 繧定ソ斐☆縲�

9.3.1 String 蝙九↓驕ゥ逕ィ縺輔l繧� ToNumber (ToNumber Applied to the String Type)

譁�ュ怜�縺ォ驕ゥ逕ィ縺輔l繧� ToNumber 縺ッ縲∝�蜉帶枚蟄怜�縺ォ 谺。縺ョ譁�ウ輔r驕ゥ逕ィ縺吶k縲よ枚豕輔′譁�ュ怜�繧� StringNumericLiteral 縺ィ縺励※隗」驥井ク崎�縺ェ繧峨�縲� ToNumber 縺ョ邨先棡縺ッ NaN 縺ァ縺ゅk縲�

StringNumericLiteral :::
StrWhiteSpaceopt
StrWhiteSpaceopt StrNumericLiteral StrWhiteSpaceopt
StrWhiteSpace :::
StrWhiteSpaceChar StrWhiteSpaceopt
StrWhiteSpaceChar :::
<TAB>
<SP>
<NBSP>
<FF>
<VT>
<CR>
<LF>
<LS>
<PS>
<USP>
StrNumericLiteral :::
StrDecimalLiteral
HexIntegerLiteral
StrDecimalLiteral :::
StrUnsignedDecimalLiteral
+ StrUnsignedDecimalLiteral
- StrUnsignedDecimalLiteral
StrUnsignedDecimalLiteral :::
Infinity
DecimalDigits . DecimalDigitsopt ExponentPartopt
. DecimalDigits ExponentPartopt
DecimalDigits ExponentPartopt
DecimalDigits :::
DecimalDigit
DecimalDigits DecimalDigit
DecimalDigit ::: one of
0 1 2 3 4 5 6 7 8 9
ExponentPart :::
ExponentIndicator SignedInteger
ExponentIndicator ::: one of
e E
SignedInteger :::
DecimalDigits
+ DecimalDigits
- DecimalDigits
HexIntegerLiteral :::
0x HexDigit
0X HexDigit
HexIntegerLiteral HexDigit
HexDigit ::: one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F

StringNumericLiteral 縺ィ NumericLiteral 縺ョ讒区枚髢薙↓縺�¥縺、縺区ウィ逶ョ縺吶∋縺咲嶌驕慕せ縺後≠繧� (繧サ繧ッ繧キ繝ァ繝ウ 7.8.3):

  • StringNumericLiteral 縺ォ縺ッ縲∫ゥコ逋ス縺セ縺溘�陦檎オらォッ蟄舌′縲∝�陦後∪縺溷セ檎カ壹@縺ヲ繧医>縲�
  • 10 騾イ謨ー縺ァ縺ゅk StringNumericLiteral 縺ッ may have any number of leading 0 digits.
  • 10 騾イ謨ー縺ァ縺ゅk StringNumericLiteral 縺ッ縲∫ャヲ蜿キ繧堤、コ縺� + 縺セ縺溘� - 縺悟�陦後@縺ヲ繧医>縲�
  • 遨コ繧�ゥコ逋ス縺ァ縺ゅk StringNumericLiteral 縺ッ +0 縺ォ螟画鋤縺輔l繧九€�

譁�ュ怜�縺ョ謨ー蛟、縺ク縺ョ螟画鋤縺ッ縲∝�菴薙↓謨ー蛟、繝ェ繝�Λ繝ォ縺ョ謨ー蛟、縺ョ豎コ螳壹→莨シ縺ヲ縺�k (繧サ繧ッ繧キ繝ァ繝ウ 7.8.3) 縺後€√>縺上▽縺九�轤ケ縺ァ逡ー縺ェ繧翫€∝セ薙▲縺ヲ string numeric literal 縺ョ Number 蝙九�蛟、縺ク縺ョ螟画鋤蜃ヲ逅��縺薙%縺ォ蜈ィ縺ヲ荳弱∴繧峨l繧九€ゅ%縺ョ蛟、縺ッ 2 繧ケ繝�ャ繝励〒豎コ螳壹&繧後k: 縺セ縺壹€∵焚蟄ヲ蛟、 (MV) 縺� string numeric literal 縺九i豢セ逕溘☆繧�; 谺。縺ォ縲√%縺ョ謨ー蟄ヲ蛟、縺梧ャ。縺ョ繧医≧縺ォ荳ク繧√i繧後k縲�

荳€譌ヲ謨ー蛟、譁�ュ怜�繝ェ繝�Λ繝ォ縺ョ蜴ウ蟇�↑謨ー蟄ヲ蛟、縺梧アコ螳壹&繧後◆繧峨€� 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縲�

  • 0 縺ァ縺ェ縺�€�
  • 縺昴�蟾ヲ蛛エ縺� 0 莉・螟悶�謨ー蟄励〒縺昴�蜿ウ蛛エ縺� 0 莉・螟悶�謨ー蟄励〒 ExponentPart 蜀�〒縺ェ縺�€�

9.4 ToInteger

ToInteger 貍皮ョ怜ュ舌�蠑墓焚繧呈紛謨ー蛟、縺ォ螟画鋤縺吶k縲ゅ%縺ョ貍皮ョ怜ュ舌�谺。縺ョ繧医≧縺ォ讖溯�縺吶k:

  1. 蜈・蜉帛シ墓焚縺ォ ToNumber 繧貞他蜃コ縺吶€�
  2. Result(1) 縺� NaN 縺ェ繧峨�縲� +0 繧定ソ斐☆縲�
  3. Result(1) 縺� +0, -0, +竏�, -竏� 縺ェ繧峨�縲� Result(1) 繧定ソ斐☆縲�
  4. sign( Result(1)) * floor(abs(Result(1)) ) 繧堤ョ怜�縺吶k縲�
  5. Result(4) 繧定ソ斐☆縲�

9.5 ToInt32: (Signed 32 Bit Integer)

ToInt32 貍皮ョ怜ュ舌�縲∝シ墓焚繧� -231 縺九i 231-1 繧貞性繧√◆遽�峇蜀�〒縲� 232 蛟九�謨エ謨ー蛟、縺ョ荳€縺、縺ォ螟画鋤縺吶k縲�

縺薙�貍皮ョ怜ュ舌�谺。縺ョ繧医≧縺ォ讖溯�縺吶k:

  1. 蜈・蜉帛シ墓焚縺ォ ToNumber 繧貞他蜃コ縺吶€�
  2. Result(1) 縺� NaN, +0, -0, +竏�, or -竏� 縺ェ繧峨�縲� +0 繧定ソ斐☆縲�
  3. sign(Result(1)) * floor(abs(Result(1))) 繧堤ョ怜�縺吶k縲�
  4. Result(3) modulo 232 繧堤ョ怜�縺吶k; 縺吶↑繧上■縲� Result(3) 縺ィ縺ョ謨ー蟄ヲ逧�↑蟾ョ縺梧焚蟄ヲ逧�↓ 232 縺ョ謨エ謨ー蛟阪〒縺ゅk繧医≧縺ェ縲∝、ァ縺阪& 232 譛ェ貅€縺ョ豁」隨ヲ蜿キ莉倥″ Number 蝙九� 譛蛾剞謨エ謨ー蛟、 k 縺ァ縺ゅk縲�
  5. Result(4) 縺� 231 莉・荳翫↑繧峨�縲� Result(4) - 232 繧定ソ斐☆縲ゅ◎縺�〒縺ェ縺代l縺ー Result(4) 繧定ソ斐☆縲�

NOTE 荳願ィ倥� ToInt32 縺ョ螳夂セゥ繧剃ク弱∴繧�:

ToInt32 貍皮ョ励� idempotent 縺ァ縺ゅk: 逕滓�縺輔l縺溽オ先棡縺ォ驕ゥ逕ィ縺吶k縺ェ繧峨�縲�2 蝗樒岼縺ョ驕ゥ逕ィ縺ッ蛟、繧貞、画峩縺帙★縺ォ谿九☆縲�

x 縺ョ蜈ィ縺ヲ縺ョ蛟、縺ォ縺ィ縺」縺ヲ縲ゝoInt32(ToUint32(x)) 縺ッ ToInt32(x) 遲我セ。縺ァ縺ゅk縲� (+竏� 縺ィ -竏� 縺ッ +0 縺ォ繝槭ャ繝励&繧後k縺ョ縺ッ蠕瑚€��繝励Ο繝代ユ繧」縺ョ菫晏ュ倥〒縺ゅk縲�)

ToInt32 縺ッ -0 繧� +0 縺ォ繝槭ャ繝励☆繧九€�

9.6 ToUint32: (Unsigned 32 Bit Integer)

ToUint32 貍皮ョ怜ュ舌�蠑墓焚繧偵€� 0 縺九i 232-1 繧貞性繧€遽�峇縺ョ 232 蛟九�謨エ謨ー蛟、縺ョ荳€縺、縺ォ螟画鋤縺吶k縲ょ€九�貍皮ョ怜ュ舌�谺。縺ョ繧医≧縺ォ讖溯�縺吶k:

  1. 蜈・蜉帛シ墓焚縺ォ ToNumber 繧貞他蜃コ縺吶€�
  2. Result(1) 縺� NaN, +0, -0, +竏�, -竏� 縺ェ繧峨�縲� +0 繧定ソ斐☆縲�
  3. sign(Result(1)) * floor(abs(Result(1))) 繧堤ョ怜�縺吶k縲�
  4. Result(3) modulo 232 繧堤ョ怜�縺吶k; 縺吶↑繧上■縲� Result(3) 縺ィ k 縺ィ縺ョ謨ー蟄ヲ逧�↑蟾ョ縺梧焚蟄ヲ逧�↓ 232 縺ョ謨エ謨ー蛟阪〒縺ゅk繧医≧縺ェ縲∝、ァ縺阪& 232 譛ェ貅€縺ョ豁」隨ヲ蜿キ莉倥″ Number 蝙九�譛蛾剞謨エ謨ー蛟、 k 縺ァ縺ゅk縲�
  5. Result(4) 繧定ソ斐☆縲�

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 縺ォ繝槭ャ繝励☆繧九€�

9.7 ToUint16: (Unsigned 16 Bit Integer)

ToUint16 貍皮ョ怜ュ舌�縲∝シ墓焚繧� 0 縺九i 216-1 縺セ縺ァ縺ョ遽�峇縺ョ 216 蛟九�謨エ謨ー蛟、縺ョ縺�■縺ョ荳€縺、縺ォ螟画鋤縺吶k縲ゅ%縺ョ貍皮ョ励�谺。縺ョ繧医≧縺ォ讖溯�縺吶k:

  1. 蜈・蜉帛シ墓焚縺ォ ToNumber 繧貞他蜃コ縺吶€�
  2. Result(1) 縺� NaN, +0, -0, +竏�, -竏� 縺ェ繧峨�縲� +0 繧定ソ斐☆縲�
  3. sign(Result(1)) * floor(abs(Result(1))) 繧堤ョ怜�縺吶k縲�
  4. Result(3) modulo 216 繧堤ョ怜�縺吶k; 縺吶↑繧上■縲� Result(3) 縺ィ k 縺ィ縺ョ謨ー蟄ヲ逧�↑蟾ョ縺梧焚蟄ヲ逧�↓ 216 縺ョ謨エ謨ー蛟阪〒縺ゅk繧医≧縺ェ縲∝、ァ縺阪& 216 譛ェ貅€縺ョ豁」隨ヲ蜿キ莉倥″ Number 蝙九�譛蛾剞謨エ謨ー蛟、 k 縺ァ縺ゅk縲�
  5. Result(4) 繧定ソ斐☆縲�

NOTE 荳願ィ倥� ToUint16 縺ョ螳夂セゥ繧剃ク弱∴繧�:

ToUint32 縺ィ ToUint16 縺ィ縺ョ髢薙�驕輔>縺ッ縲√せ繝�ャ繝� 4 縺ォ縺ヲ 232 縺ォ 216 繧剃サ」逕ィ縺励※縺�k縺�縺代〒縺ゅk縲�

ToUint16 縺ッ -0 繧� +0 縺ォ繝槭ャ繝励☆繧九€�

9.8 ToString

ToString 貍皮ョ怜ュ舌�縲∵ャ。縺ョ陦ィ縺ォ蠕薙▲縺ヲ蠑墓焚繧� String 蝙九�蛟、縺ォ螟画鋤縺吶k縲�

蜈・蜉帛梛 邨先棡
Undefined "undefined"
Null "null"
Boolean 蠑墓焚縺� true 縺ェ繧峨�縲∫オ先棡縺ッ "true" 縲ょシ墓焚縺� false 縺ェ繧峨�縲∫オ先棡縺ッ "false" 縲�
Number 荳九�繝弱�繝医r蜿ら�縲�
String 蜈・蜉帛シ墓焚繧定ソ斐☆縲� (辟。螟画鋤)
Object 谺。縺ョ繧ケ繝�ャ繝励r驕ゥ逕ィ:
  • ToPrimitive(蜈・蜉帛シ墓焚, hint String) 繧貞他蜃コ縺吶€�
  • ToString(Result(1)) 繧貞他蜃コ縺吶€�
  • Result(2) 繧定ソ斐☆縲�

9.8.1 Number 蝙九↓驕ゥ逕ィ縺輔l繧� ToString (ToString Applied to the Number Type)

ToString 貍皮ョ怜ュ舌�縲∵ャ。縺ョ繧医≧縺ォ謨ー m 繧呈枚蟄怜�蠖「蠑上↓螟画鋤縺吶k:

  1. m 縺� NaN 縺ェ繧峨�縲∵枚蟄怜� "NaN" 繧定ソ斐☆縲�
  2. m 縺� +0 縺セ縺溘� -0 縺ェ繧峨�縲∵枚蟄怜� "0" 繧定ソ斐☆縲�
  3. m 縺� 0 譛ェ貅€縺ェ繧峨�縲∵枚蟄� "-" 縺ィ ToString(-m) 繧帝€」邨舌@縺滓枚蟄怜�繧定ソ斐☆縲�
  4. m 縺檎┌髯先焚縺ェ繧峨�譁�ュ怜� "Infinity" 繧定ソ斐☆縲�
  5. 縺昴≧縺ァ縺ェ縺�↑繧峨�縲� n, k, s 繧偵€� k ≥ 1, 10k-1s < 10k, s テ� 10n-k 縺ョ謨ー蛟、縺� m, 蜿ッ閭ス縺ェ髯舌j蟆上&縺� k 縺ァ縺ゅk繧医≧縺ェ謨エ謨ー縺ィ縺吶k縲� k 縺ッ s 縺ョ 10 騾イ陦ィ險倥�蟄玲焚縺ァ縺ゅk縺薙→縲� s 縺ッ 10 縺ァ蜑イ繧翫″繧後↑縺�%縺ィ縲� s 縺ョ譛€蟆乗。∵焚蟄励�縺薙l繧峨�蝓コ貅悶↓繧医▲縺ヲ蠢�★縺励b荳€諢上↓豎コ螳壹&繧後↑縺�%縺ィ縺ォ豕ィ諢上€�
  6. kn ≤ 21 縺ェ繧峨�縲� n-k 蛟九�譁�ュ� '0' 縺ョ蜃コ迴セ縺ョ邯壹¥縲� s 縺ョ 10 騾イ陦ィ險倥〒縺ゅk k 蛟九�謨ー蟄� (0 縺ッ蜈郁。後@縺ェ縺�) 縺ァ讒区�縺吶k譁�ュ怜�繧定ソ斐☆縲�
  7. 0 < n ≤ 21 縺ェ繧峨�縲∵怙螟ァ譯� s 縺ョ 10 騾イ陦ィ險倥� n 蛟九�謨ー蟄�, 蟆乗焚轤ケ '.', s 縺ョ 10 騾イ陦ィ險倥�谿九j縺ョ k-n 蛟九�謨ー蟄励�邯壹¥譁�ュ怜�繧定ソ斐☆縲�
  8. -6 < n ≤ 0 縺ェ繧峨�縲∵枚蟄� '0', 蟆乗焚轤ケ '.', -n 蛟九�譁�ュ� '0', s 縺ョ 10 騾イ陦ィ險倥〒縺ゅk k 縺ョ邯壹¥譁�ュ怜�繧定ソ斐☆縲�
  9. 縺昴≧縺ァ縺ェ縺代l縺ー縲� k = 1 縺ェ繧峨�縲� s 縺ョ蜊倅ク€縺ョ謨ー蟄�, 蟆乗枚蟄� 'e', n-1 縺ョ豁」雋�縺ォ蠕薙≧豁」隨ヲ蜿キ '+' 縺セ縺溘�雋�隨ヲ蜿キ '-', 謨エ謨ー abs(n-1) 縺ョ 10 騾イ陦ィ險� (0 縺ッ蜈郁。後@縺ェ縺�) 縺ョ邯壹¥譁�ュ怜�繧定ソ斐☆縲�
  10. s 縺ョ 10 騾イ陦ィ險倥�譛€螟ァ譯√�謨ー蟄�, 蟆乗焚轤ケ '.', s 縺ョ 10 騾イ陦ィ險倥�谿九j k-1 蛟九�謨ー蟄�, 蟆乗枚蟄� 'e', n-1 縺ョ豁」雋�縺ォ蠕薙≧豁」隨ヲ蜿キ '+' 縺セ縺溘�雋�隨ヲ蜿キ '-', 謨エ謨ー abs(n-1) 縺ョ 10 騾イ陦ィ險� (0 縺ッ蜈郁。後@縺ェ縺�) 縺ョ邯壹¥譁�ュ怜�繧定ソ斐☆縲�

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縲�

9.9 ToObject

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 (螟画鋤縺励↑縺�)縲�

Page Contents

Issued: / Revised: / All rights reserved. © 2002-2016 TAKI