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

8 蝙� (Types)

蛟、縺ッ螳滉ス薙〒縺ゅj縲�9 縺、縺ョ蝙九�縺�■縺ョ 1 縺、繧貞叙繧九€ょ梛縺ッ 9 縺、 (Undefined, Null, Boolean, String, Number, Object, Reference, List, Completion) 縺ゅk縲3eference 蝙�, List 蝙�, Completion 蝙九�蛟、縺ッ蠑剰ゥ穂セ。縺ョ荳ュ髢鍋オ先棡縺ィ縺励※縺ョ縺ソ菴ソ繧上l縲√が繝悶ず繧ァ繧ッ繝医�繝励Ο繝代ユ繧」縺ォ闢�ゥ阪�縺ァ縺阪↑縺�€�

8.1 Undefined 蝙� (Undefined Type)

Undefined 蝙九�縲「ndefined 縺ィ蜻シ縺ー繧後k蜴ウ蟇�↓縺ッ荳€縺、縺ョ蛟、繧呈戟縺、縲ょ€、繧剃サ」蜈・縺輔l縺ヲ縺�↑縺�ササ諢上�螟画焚縺ッ undefined 蛟、繧呈戟縺、縲�

8.2 Null 蝙� (Null Type)

Null 蝙九�縲]ull 縺ィ蜻シ縺ー繧後k蜴ウ蟇�↓縺ッ荳€縺、縺ョ蛟、繧呈戟縺、縲�

8.3 Boolean 蝙� (Boolean Type)

Boolean 蝙九�縲》rue 縺ィ false 縺ィ蜻シ縺ー繧後k莠悟€、繧呈戟縺、隲也炊逧�ョ滉ス薙r縺ゅi繧上☆縲�

8.4 String 蝙� (String Type)

String 蝙九�縲�0 縺セ縺溘� 16 繝薙ャ繝育ャヲ蜿キ縺ェ縺玲紛謨ー蛟、("隕∫エ�")縺ョ縲√☆縺ケ縺ヲ縺ョ譛蛾剞縺ェ蠎丞�縺ョ縺ゅk繧キ繝シ繧ア繝ウ繧ケ縺ョ邨�〒縺ゅk縲�ECMAScript 繝励Ο繧ー繝ゥ繝�縺ョ螳溯。梧凾縲ヾtring 蝙九�荳€闊ャ縺ォ繝�く繧ケ繝医ョ繝シ繧ソ縺ョ陦ィ迴セ縺ォ菴ソ繧上l繧九€ゅ◎縺ョ荳ュ縺ァ縲∵枚蟄怜�蜀��蜷�ヲ∫エ�縺ッ繧ウ繝シ繝峨�繧、繝ウ繝亥€、(繧サ繧ッ繧キ繝ァ繝ウ 6 蜿ら�) 縺ィ縺励※謇ア繧上l繧九€ゅす繝シ繧ア繝ウ繧ケ蜀�〒蜷�ヲ∫エ�縺ッ菴咲スョ縺ョ蜊�譛峨→縺ソ縺ェ縺輔l繧九€ゅ%繧後i縺ョ菴咲スョ縺ッ豁」縺ョ謨エ謨ー縺ァ繧、繝ウ繝�ャ繧ッ繧ケ莉倥¢繧峨l繧九€よ怙蛻昴�隕∫エ�縺御ス咲スョ 0 縺ァ縲∵ャ。縺ョ隕∫エ�縺ッ菴咲スョ 1 縺ァ縺ゅj縲∽サ・荳句酔讒倥〒縺ゅk縲よ枚蟄怜�縺ョ髟キ縺輔�縲√◎縺ョ荳ュ縺ォ縺ゅk隕∫エ�縺ョ謨ー縺ァ縺ゅk縲らゥコ譁�ュ怜�縺ッ隕∫エ�繧呈戟縺溘★縲�聞縺輔� 0 縺ァ縺ゅk縲�

譁�ュ怜�縺悟ョ滄圀縺ョ繝�く繧ケ繝医ョ繝シ繧ソ繧貞性繧€縺ィ縺阪€∝推隕∫エ�縺ッ�大€九� UTF-16 蜊倅ス阪→縺励※閠�∴繧峨l繧九€ゅ%繧後′螳滄圀縺ォ闢�ゥ阪&繧後◆ String 縺ョ蠖「蠑上°縺ゥ縺�°縺ォ髢「菫ゅ↑縺上€ヾtring 蜀�Κ縺ョ譁�ュ励� UTF-16 縺ァ縺ゅi繧上&繧後◆縺九�繧医≧縺ォ逡ェ蜿キ莉倥¢繧峨l繧九€4tring 荳翫�蜈ィ謫堺ス懊�縲√◎繧後i繧貞玄蛻・縺励↑縺� 16 繝薙ャ繝育ャヲ蜿キ辟。縺玲紛謨ー縺ョ蛻励→縺励※謇ア縺�; 縺昴l繧峨�邨先棡縺ョ譁�ュ怜�縺梧ュ」隕丞喧蠖「蠑上〒縺ゅk縺薙→繧剃ソ晁ィシ縺励↑縺�@縲〕anguage-sensitive 縺ェ邨先棡縺ァ縺ゅk縺薙→繧ゆソ晁ィシ縺励↑縺�€�

NOTE 縺薙l繧峨�豎コ螳壹�逅�ォ也噪隗」驥医�蜊倡エ斐&縺ィ縺励※縺ョ譁�ュ怜�縺ィ蜿ッ閭ス諤ァ縺ィ縺励※縺ョ鬮倥ヱ繝輔か繝シ繝槭Φ繧ケ諤ァ縺ョ螳溯」�r菫晄戟縺吶k縺薙→縺ァ縺ゅ▲縺溘€ょ、夜Κ縺九i螳溯。檎腸蠅�↓蜈・繧九ユ繧ュ繧ケ繝医ョ繝シ繧ソ (繝ヲ繝シ繧カ縺ョ蜈・蜉帙€√ヵ繧。繧、繝ォ繧�ロ繝�ヨ繝ッ繝シ繧ッ縺九i縺ョ蜿嶺ソ。縺ェ縺ゥ縺九i縺ョ繝�く繧ケ繝郁ェュ縺ソ霎シ縺ソ遲�) 縺後€∝ョ溯。後�繝ュ繧ー繝ゥ繝�縺後◎繧後r隕九k蜑阪↓ Unicode 豁」隕丞喧蠖「蠑� C (Unicode Normarized Form C) 縺ォ螟画鋤縺輔l繧九%縺ィ繧呈э蝗ウ縺吶k縲る€壻セ九%繧後�縲∝�縺」縺ヲ縺上k繝�く繧ケ繝医′蜈��譁�ュ励お繝ウ繧ウ繝シ繝�ぅ繝ウ繧ー縺九i Unicode 縺ォ螟画鋤縺輔l繧九%縺ィ繧貞酔譎ゅ↓逋コ逕溘&縺帙k縲�ECMAScript 繧ス繝シ繧ケ繧ウ繝シ繝峨′豁」隕丞喧蠖「蠑� C 縺ァ縺ゅk縺薙→縺悟匡繧√i繧後k縺ョ縺ァ縲√◎繧後i縺� Unicode 繧ィ繧ケ繧ア繝シ繝励す繝シ繧ア繝ウ繧ケ繧貞性繧薙〒縺�↑縺�剞繧翫€∵枚蟄怜�繝ェ繝�Λ繝ォ縺ッ豁」隕丞喧縺輔l縺ヲ縺�k縺薙→(繧ス繝シ繧ケ繝�く繧ケ繝医′豁」隕丞喧縺輔l繧九%縺ィ繧剃ソ晁ィシ縺輔l繧句�エ蜷�)繧剃ソ晁ィシ縺輔l繧九€�

8.5 Number 蝙� (Number Type)

Number 蝙九�縲√■繧�≧縺ゥ 18437736874454810627 (蜊ウ縺。 264-253+3) 蛟九�蛟、繧呈戟縺。縲∽コ碁€イ豕墓オョ蜍募ー乗焚轤ケ謨ー轤ケ貍皮ョ励�縺溘a縺ョ IEEE 讓呎コ悶↓螳壹a繧峨l繧句€咲イセ蠎ヲ64繝薙ャ繝医�繝輔か繝シ繝槭ャ繝�IEEE 754 縺ョ蛟、繧定。ィ繧上☆縲ゅ◆縺�縺� IEEE 讓呎コ悶� 9007199254740990 (縺吶↑繧上■ 253-2) 蛟九�蛹コ蛻・縺輔l繧� "Not-a-Number" 蛟、縺ッ ECMAScript 縺ォ縺翫>縺ヲ縺ッ蜊倡峡縺ョ迚ケ谿翫↑ NaN 蛟、縺ィ縺励※陦ィ縺輔l繧九%縺ィ繧帝勁縺上€�(繝励Ο繧ー繝ゥ繝�螳溯。後↓繧医j繧ー繝ュ繝シ繝舌Ν縺ォ螳夂セゥ縺輔l縺溷、画焚 NaN 縺悟、画峩縺輔l縺ヲ縺�↑縺�→莉ョ螳壹@縺ヲ縲�NaN 蛟、縺後�繝ュ繧ー繝ゥ繝�蠑� NaN 縺ォ繧医▲縺ヲ逕滓�縺輔l繧九%縺ィ縺ォ豕ィ諢上€�) 螟夜Κ繧ウ繝シ繝峨′讒倥€�↑ Non-a-Number 髢薙�驕輔>繧貞愛螳壹〒縺阪k螳溯」�b縺ゅk縺�繧阪≧縺後€√◎縺ョ謖ッ闊槭>縺ッ螳溯」�セ晏ュ倥〒縺ゅk; ECMAScript繧ウ繝シ繝峨〒縺ッ縲¨aN 蛟、縺ッ縺吶∋縺ヲ莠偵>縺ィ蛻、蛻・荳崎�縺ァ縺ゅk縲�

莉悶↓迚ケ蛻・縺ェ蛟、縺� 2 縺、縺ゅk縲ゅ◎繧後�豁」縺ョ辟。髯� (positive Infinity) 縲√♀繧医�雋�縺ョ辟。髯� (negative Infinity) 縺ィ蜻シ縺ー繧後k縲らー。蜊倥↓縲∬ァ」隱ャ縺ァ縺ッ繧キ繝ウ繝懊Ν +竏� 縺ィ -竏� 縺ォ繧医▲縺ヲ繧ゅ%繧後i縺ョ蛟、繧偵◎繧後◇繧悟盾辣ァ縺吶k縲�(繧ー繝ュ繝シ繝舌Ν縺ォ螳夂セゥ縺輔l縺溷、画焚 Infinity 縺後�繝ュ繧ー繝ゥ繝�螳溯。後↓繧医▲縺ヲ螟画峩縺輔l縺ヲ縺ェ縺�→莉ョ螳壹@縺ヲ縲√%繧後i 2 縺、縺ョ辟。髯先焚蛟、縺後�繝ュ繧ー繝ゥ繝�蠑� +Infinity (縺ゅk縺��蜊倥↓ Infinity) 縺翫h縺ウ -Infinity 縺ォ繧医▲縺ヲ逕滓�縺輔l繧九%縺ィ縺ォ豕ィ諢上@縺ェ縺輔>縲�)

谿九j縺ョ 18437736874454810624 (縺吶↑繧上■ 264-253) 蛟九�蛟、縺ッ譛蛾剞謨ー縺ィ蜻シ縺ー繧後k縲ゅ%繧後i縺ョ蜊雁�縺ッ豁」縺ョ謨ー縲∝濠蛻��雋�縺ョ謨ー縺ァ縺ゅk; 譛蛾剞縺ョ豁」縺ョ謨ー縺ョ縺昴l縺槭l縺ォ縺、縺�※縲∝酔縺伜、ァ縺阪&繧呈戟縺、蟇セ蠢懊☆繧玖イ�縺ョ謨ー縺後≠繧九€�

豁」縺ョ 0 縺ィ雋�縺ョ 0 縺ョ蜿梧婿縺後≠繧九%縺ィ縺ォ豕ィ諢上€らー。蜊倥↓縲∬ァ」隱ャ縺ァ縺ッ繧キ繝ウ繝懊Ν +0 蜿翫� -0 縺ォ繧医▲縺ヲ繧ゅ%繧後i縺ョ蛟、繧偵◎繧後◇繧悟盾辣ァ縺吶k縲�(縺薙l繧� 2 縺、縺ョ 0 謨ー蛟、縺ッ繝励Ο繧ー繝ゥ繝�蠑� +0 (縺セ縺溘�蜊倥↓ 0) 縺翫h縺ウ -0 縺ォ繧医▲縺ヲ謠千、コ縺輔l繧九€�)

18437736874454810622 (縺、縺セ繧� 264-253-2) 蛟九� 0 縺ァ縺ェ縺�怏髯舌�蛟、縺ッ 2 遞ョ鬘槭≠繧�:

縺昴l繧峨�縺�■ 18428729675200069632 (縺、縺セ繧� 264-254) 蛟九�谺。縺ョ蠖「蠑上〒豁」隕丞喧縺輔l繧九€�

s テ� m テ� 2e

s 縺ッ +1 縺セ縺溘� -1 縲� m 縺ッ 252 莉・荳� 253 譛ェ貅€縺ョ豁」縺ョ謨エ謨ー縲‘ 縺ッ -1074 莉・荳� 971 莉・荳九�遽�峇縺ョ謨エ謨ー縺ァ縺ゅk縲�

谿九j縺ョ 9007199254740990 (縺、縺セ繧� 253-2) 蛟九�蛟、縺ッ谺。縺ョ蠖「蠑上〒髱樊ュ」隕丞喧 (denormalised) 縺輔l繧九€�

s テ� m テ� 2e

s 縺ッ +1 縺セ縺溘� -1 縲� m 縺ッ 252 譛ェ貅€縺ョ豁」縺ョ謨エ謨ー縲‘ 縺ッ -1074 縺ァ縺ゅk縲�

螟ァ縺阪&縺� 253 莉・荳九�豁」雋�縺ョ謨エ謨ー蜈ィ縺ヲ縺ッ Number 蝙九〒陦ィ迴セ縺ァ縺阪k縺薙→縺ォ豕ィ諢�(螳溘↓縲∵紛謨ー 0 縺ッ 2 縺、縺ョ陦ィ迴セ +0 縺ィ -0 繧呈戟縺、)縲�

譛蛾剞謨ー縺ッ縺昴l縺� 0 縺ァ縺ェ縺� (荳翫� 2 縺、縺ョ縺ゥ縺。繧峨°縺ョ蠑上〒) 菴ソ繧上l縺滓紛謨ー m 縺悟・�焚縺ョ縺ィ縺阪€∵怏蜉ケ謨ー蟄励�螂�焚縺ァ縺ゅk縲ゅ◎縺�〒縺ェ縺代l縺ー縲∵怏蜉ケ謨ー蟄励�蛛カ謨ー縺ァ縺ゅk縲�

譛ャ莉墓ァ倥↓縺翫>縺ヲ縲∵ュ」遒コ縺ェ 0 莉・螟悶�螳滄圀縺ョ謨ー蟄ヲ逧�↑驥�(縺昴l縺ッ縺輔i縺ォ π 縺ョ繧医≧縺ェ辟。逅�焚縺九b縺励l縺ェ縺�) 繧� x 縺ィ陦ィ繧上☆縺ィ縺阪€∝唱 " x 縺ョ謨ー蛟、" 縺ッ縲∵ャ。縺ョ譁ケ豕輔〒驕ク縺ー繧後◆謨ー蛟、繧呈э蜻ウ縺吶k縲�Number 蝙九�縺吶∋縺ヲ縺ョ譛蛾剞縺ョ蛟、縺ョ髮�粋繧定€�∴繧九€� -0 繧帝勁螟悶@縲� Number 蝙九〒縺ッ陦ィ迴セ荳崎�縺ェ 2 縺、縺ョ蛟、縲√☆縺ェ繧上■ 21024(蜊ウ縺。 +1 テ� 253 テ� 2971) 蜿翫� -21024(蜊ウ縺。 -1 テ� 253 テ� 2971) 繧定ソス蜉�縺吶k縲ゅ%縺ョ髮�粋縺九i x 縺ョ蛟、縺ォ譛€繧りソ代>繧ゅ�繧帝∈縺カ縲よ怙繧りソ代>繧ゅ�縺碁寔蜷亥�縺ョ 2 蛟九≠繧句�エ蜷医€∵怏蜉ケ謨ー蟄励′蛛カ謨ー縺ァ縺ゅk繧ゅ�驕ク縺ー繧後k; 縺薙�逕ィ騾斐↓縺、縺�※縲∵僑蠑オ縺励◆ 2 縺、縺ョ蛟、 21024縲√◎縺励※-21024 縺ッ譛牙柑謨ー蟄励′蛛カ謨ー縺ィ縺ソ縺ェ縺吶€よ怙蠕後↓縲�21024 縺碁∈縺ー繧後◆蝣エ蜷医€√◎繧後r +竏� 縺ォ鄂ョ謠帙☆繧�; -21024 縺碁∈縺ー繧後◆蝣エ蜷医€√◎繧後r -竏� 縺ォ鄂ョ謠帙☆繧�; +0 縺碁∈縺ー繧後◆蝣エ蜷医€� x 縺� 0 譛ェ貅€縺ァ縺ゅk蝣エ蜷医�縺ソ縺昴l繧� -0 縺ォ鄂ョ謠帙☆繧�; 莉悶�蛟、縺碁∈縺ー繧後◆繧牙、画峩縺ッ縺ェ縺�€ゅ%縺ョ邨先棡縺� x 縺ョ謨ー蛟、縺ァ縺ゅk縲�(縺薙�驕守ィ九�縲� IEEE 754 "round to nearest" 繝「繝シ繝峨�謖ッ闊槭>縺ォ豁」遒コ縺ォ隧イ蠖薙☆繧九€�)

-231 莉・荳� 231-1 莉・荳九€√∪縺� 0 莉・荳� 232-1 莉・荳九�遽�峇縺ョ謨エ謨ー縺ョ縺ソ繧呈桶縺� ECMAScript 貍皮ョ怜ュ舌b縺ゅk縲ゅ%繧後i縺ョ貍皮ョ怜ュ舌�莉サ諢上� Number 蝙九�蛟、繧貞女縺台サ倥¢繧九′縲√∪縺壽怙蛻昴↓ 232 蛟九�謨エ謨ー蛟、縺ョ荳€縺、縺ォ螟画鋤繧定。後≧縲ゅ◎繧後◇繧�繧サ繧ッ繧キ繝ァ繝ウ 9.5, 9.6 縺ォ縺ゅk ToInt32 蜿翫� ToUint32 貍皮ョ怜ュ舌�隗」隱ャ繧貞盾辣ァ縲�

8.6 Object 蝙� (Object type)

Object 縺ィ縺ッ繝励Ο繝代ユ繧」縺ョ蠎丞�縺ョ縺ェ縺�寔蜷井ス薙〒縺ゅk縲ょ推繝励Ο繝代ユ繧」縺ッ蜷榊燕縺ィ蛟、縲√◎縺励※螻樊€ァ縺ョ邨�〒讒区�縺輔l繧九€�

8.6.1 繝励Ο繝代ユ繧」螻樊€ァ

繝励Ο繝代ユ繧」縺ッ谺。縺ョ邨�°繧�0蛟倶サ・荳翫�螻樊€ァ繧呈戟縺、縺薙→縺後〒縺阪k:

螻樊€ァ 隱ャ譏�
ReadOnly 螻樊€ァ 縺薙�繝励Ο繝代ユ繧」縺ッ隱ュ蜃コ縺怜ーら畑縺ョ繝励Ο繝代ユ繧」縺ァ縺ゅk縲� ECMAScript 繧ウ繝シ繝峨↓繧医k縺薙�繝励Ο繝代ユ繧」縺ョ譖ク縺阪%縺ソ隧ヲ陦後�辟。隕悶&繧後k縲� (豕ィ諢�: 螳溯」�↓繧医▲縺ヲ陦後o繧後k繧「繧ッ繧キ繝ァ繝ウ縺ョ縺溘a縺ォ ReadOnly 螻樊€ァ縺ョ繝励Ο繝代ユ繧」縺ョ蛟、縺悟、画峩縺輔l繧九こ繝シ繧ケ繧ゅ≠繧翫≧繧�; "ReadOnly" 縺ァ縺ゅk縺薙→縺ッ "螳壽焚縺ァ螟画峩縺輔l縺ェ縺�" 縺ィ縺�≧縺薙→縺ァ縺ッ縺ェ縺�)
DontEnum 螻樊€ァ 縺薙�繝励Ο繝代ユ繧」縺ッ for-in 繝ォ繝シ繝� (12.6.3) 縺ァ縺ッ蛻玲嫌縺輔l縺ェ縺�€�
DontDelete 螻樊€ァ 縺薙�繝励Ο繝代ユ繧」縺ョ蜑企勁繧定ゥヲ陦後@縺ヲ繧ら┌隕悶&繧後k縲� delete 貍皮ョ怜ュ舌�隱ャ譏�(11.4.1) 繧貞盾辣ァ縲�
Internal 螻樊€ァ 蜀�Κ繝励Ο繝代ユ繧」縺ッ蜷榊燕繧呈戟縺溘★縲√�繝ュ繝代ユ繧」繧「繧ッ繧サ繧ケ貍皮ョ怜ュ千オ檎罰縺ァ逶エ縺ォ繧「繧ッ繧サ繧ケ縺ァ縺阪↑縺�€� 縺薙l繧峨�繝励Ο繝代ユ繧」縺ク縺ョ繧「繧ッ繧サ繧ケ譁ケ豕輔�螳溯」�セ晏ュ倥〒縺ゅk縲� 險€隱樔サ墓ァ俶ッ弱↓縲∽スソ繧上l譁ケ繧�ち繧、繝溘Φ繧ー縺ォ繧医▲縺ヲ迚ケ螳壹&繧後k繝励Ο繝代ユ繧」繧ゅ≠繧九€�

8.6.2 蜀�Κ繝励Ο繝代ユ繧」縺ィ繝。繧ス繝�ラ

蜀�Κ繝励Ο繝代ユ繧」縺ィ繝。繧ス繝�ラ縺ッ險€隱槫�縺ォ縺ッ髴イ蜃コ縺励↑縺�€ゅ%縺ョ譁�嶌縺ョ逶ョ逧��縺溘a縺ォ縲� 縺薙%縺ァ縺ッ莠碁㍾隗呈峡蠑ァ [[ ]] 縺ァ蝗イ縺」縺ヲ縺昴�蜷榊燕繧偵≠繧峨o縺吶€� 繧「繝ォ繧エ繝ェ繧コ繝�縺後が繝悶ず繧ァ繧ッ繝医�蜀�Κ繝励Ο繝代ユ繧」繧剃スソ逕ィ縺励※縺�※縲� 謖�、コ縺輔l縺溷�驛ィ繝励Ο繝代ユ繧」繧偵が繝悶ず繧ァ繧ッ繝医′螳溯」�@縺ヲ縺�↑縺�→縺阪€√Λ繝ウ繧ソ繧、繝�繧ィ繝ゥ繝シ縺檎匱逕溘☆繧九€�

髴イ蜃コ縺吶k繝励Ο繝代ユ繧」縺ョ繧「繧ッ繧サ繧ケ縺ォ縺ッ 2 遞ョ鬘槭≠繧�: get 縺ィ put縲∝叙蠕励→險ュ螳壹↓逶ク蠖薙☆繧九€�

Native ECMAScript 繧ェ繝悶ず繧ァ繧ッ繝医� [[Prototype]] 縺ィ蜻シ縺ー繧後k蜀�Κ繝励Ο繝代ユ繧」繧呈戟縺、縲� 縺薙�繝励Ο繝代ユ繧」縺ョ蛟、縺ッ null 繧� 繧ェ繝悶ず繧ァ繧ッ繝医〒縺ゅj縲∫カ呎価縺ョ螳溯」�↓菴ソ逕ィ縺輔l繧九€� [[Prototype]] 繧ェ繝悶ず繧ァ繧ッ繝医�繝励Ο繝代ユ繧」縺ッ縲� 蟄舌が繝悶ず繧ァ繧ッ繝医�繝励Ο繝代ユ繧」縺ョ蜿門セ励↓縺ッ髴イ蜃コ縺吶k縺後€∬ィュ螳壹↓縺ッ髴イ蜃コ縺励↑縺�€�

谺。縺ョ陦ィ縺ッ縺薙�莉墓ァ倥〒菴ソ繧上l繧句�驛ィ繝励Ο繝代ユ繧」縺ョ讎りヲ√〒縺ゅk縲� 隱ャ譏弱� Native ECMAScript 繧ェ繝悶ず繧ァ繧ッ繝医�縺溘a縺ョ縺昴l繧峨�謖吝虚繧堤、コ縺吶€� Host 繧ェ繝悶ず繧ァ繧ッ繝医�縺薙l繧峨�蜀�Κ繝。繧ス繝�ラ繧剃ササ諢上�螳溯」�セ晏ュ倥�謖吝虚縺ォ螳溯」�@縺ヲ繧ゅh縺上€√∪縺� Host 繧ェ繝悶ず繧ァ繧ッ繝医�蜀�Κ繝。繧ス繝�ラ縺ョ荳€驛ィ縺ョ縺ソ繧貞ョ溯」�@縺ヲ莉悶r螳溯」�@縺ェ縺上※繧ゅh縺�€�

繝励Ο繝代ユ繧」 繝代Λ繝。繝シ繧ソ 隱ャ譏�
[[Prototype]] 辟。縺� 縺薙�繧ェ繝悶ず繧ァ繧ッ繝医�繝励Ο繝医ち繧、繝励€�
[[Class]] 辟。縺� 縺薙�繧ェ繝悶ず繧ァ繧ッ繝医�遞ョ鬘槭€�
[[Value]] 辟。縺� 縺薙�繧ェ繝悶ず繧ァ繧ッ繝医↓髢「縺吶k蜀�Κ迥カ諷九�諠��ア縲�
[[Get]] (繝励Ο繝代ユ繧」蜷�) 繝励Ο繝代ユ繧」縺ョ蛟、繧定ソ斐☆縲�
[[Put]] (繝励Ο繝代ユ繧」蜷�, 蛟、) 謖�ョ壹&繧後◆繝励Ο繝代ユ繧」縺ォ蛟、繧定ィュ螳壹☆繧九€�
[[CanPut]] (繝励Ο繝代ユ繧」蜷�) 謖�ョ壹&繧後◆繝励Ο繝代ユ繧」蜷阪� [[Put]] 謫堺ス懊′謌仙粥縺吶k縺九←縺�°繧堤、コ縺� boolean 蛟、繧定ソ斐☆縲�
[[HasProperty]] (繝励Ο繝代ユ繧」蜷�) 繧ェ繝悶ず繧ァ繧ッ繝医′縺吶〒縺ォ荳弱∴繧峨l縺溷錐蜑阪�繝。繝ウ繝舌r謖√▲縺ヲ縺�k縺九r遉コ縺� boolean 蛟、繧定ソ斐☆縲�
[[Delete]] (繝励Ο繝代ユ繧」蜷�) 繧ェ繝悶ず繧ァ繧ッ繝医°繧画欠螳壹&繧後◆繝励Ο繝代ユ繧」繧貞叙繧企勁縺上€�
[[DefaultValue]] (繝偵Φ繝�) 繧ェ繝悶ず繧ァ繧ッ繝医�繝�ヵ繧ゥ繝ォ繝亥€、繧定ソ斐☆縺� 縺昴l縺ッ primitive 蛟、縺ァ縺ェ縺代l縺ー縺ェ繧峨★縲√が繝悶ず繧ァ繧ッ繝医d蜿ら�縺ァ縺ゅ▲縺ヲ縺ッ縺ェ繧峨↑縺�€�
[[Construct]] 蜻シ蜃コ蛛エ縺梧署萓帙☆繧句シ墓焚蛟、縺ョ繝ェ繧ケ繝� 繧ェ繝悶ず繧ァ繧ッ繝医r逕滓�縺吶k縲Oew 貍皮ョ怜ュ舌↓繧医▲縺ヲ蜻シ蜃コ縺輔l繧九€� 縺薙�蜀�Κ繝。繧ス繝�ラ繧貞ョ溯」�☆繧九が繝悶ず繧ァ繧ッ繝医�繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ (constructor) 縺ィ蜻シ縺ー繧後k縲�
[[Call]] 蜻シ蜃コ蛛エ縺梧署萓帙☆繧句シ墓焚蛟、縺ョ繝ェ繧ケ繝� 繧ェ繝悶ず繧ァ繧ッ繝医↓髢「騾」縺吶k繧ウ繝シ繝峨r螳溯。後☆繧九€� 髢「謨ー蜻シ蜃コ縺ョ蠑� (expression) 繧堤オ檎罰縺励※蜻シ蜃コ縺輔l繧九€� 縺薙�蜀�Κ繝。繧ス繝�ラ繧貞ョ溯」�☆繧九が繝悶ず繧ァ繧ッ繝医�髢「謨ー (function) 縺ィ蜻シ縺ー繧後k縲�
[[HasInstance]] (蛟、) 蛟、縺後%縺ョ繧ェ繝悶ず繧ァ繧ッ繝医↓謖ッ繧玖�縺�r蟋比ササ縺励※縺�k縺九←縺�°繧堤、コ縺� Boolean 蛟、繧定ソ斐☆縲� Native ECMAScript 繧ェ繝悶ず繧ァ繧ッ繝医〒縺ッ縲:unction 繧ェ繝悶ず繧ァ繧ッ繝医□縺代′ [[Hasinstance]] 繧貞ョ溯」�@縺ヲ縺�k縲�
[[Scope]] 辟。縺� 縺昴�荳ュ縺ァ Function 繧ェ繝悶ず繧ァ繧ッ繝医′螳溯。後&繧後k迺ー蠅�r螳夂セゥ縺吶k繧ケ繧ウ繝シ繝鈴€」骼悶€�
[[Match]] (譁�ュ怜�, 繧、繝ウ繝�ャ繧ッ繧ケ) 豁」隕剰。ィ迴セ繝槭ャ繝√r隧ヲ陦後@縲� MatchResult 蛟、繧定ソ斐☆(15.10.2.1 蜿ら�)縲�

蜷�が繝悶ず繧ァ繧ッ繝医� [[Class]] 繝励Ο繝代ユ繧」縺ィ縲ー[Get]], [[Put]], [[HasProperty]], [[Delete]], [[DefaultValue]] 繝。繧ス繝�ラ繧貞ョ溯」�@縺ェ縺代l縺ー縺ェ繧峨↑縺�€�Host 繧ェ繝悶ず繧ァ繧ッ繝医〒縺ゅ▲縺ヲ繧ょ酔讒倥〒縺ゅk縲�(豕ィ諢�: 縺ィ縺ッ縺�∴縲ー[DefaultValue]] 繝。繧ス繝�ラ縺ッ縲∝腰縺ォ繝ゥ繝ウ繧ソ繧、繝�繧ィ繝ゥ繝シ繧堤函謌舌@縺ヲ繧ゅh縺�€�

[[Prototype]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ繧ェ繝悶ず繧ァ繧ッ繝医° null 縺ァ縺ェ縺代l縺ー縺ェ繧峨★縲� 蜷� [[Prototype]] 騾」骼悶�髟キ縺輔�譛蛾剞縺ァ縺ェ縺代l縺ー縺ェ繧峨↑縺�(縺、縺セ繧翫€∽ササ諢上�繧ェ繝悶ず繧ァ繧ッ繝医°繧牙ァ九∪繧� [[Prototype]] 繝励Ο繝代ユ繧」縺ョ蜀榊クー逧�い繧ッ繧サ繧ケ縺ッ縲∫オ先棡逧�↓ null 蛟、縺ォ蟆弱°繧後k)縲� Native 繧ェ繝悶ず繧ァ繧ッ繝医′ Host 繧ェ繝悶ず繧ァ繧ッ繝医r [[Prototype]] 縺ィ縺励※謖√▽縺九←縺�°縺ッ螳溯」�↓萓晏ュ倥☆繧九€�

蜷�ィョ邨�セシ縺ソ 繧ェ繝悶ず繧ァ繧ッ繝医� [[Class]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縺薙�莉墓ァ倥〒螳夂セゥ縺輔l繧九€� Host 繧ェ繝悶ず繧ァ繧ッ繝医� [[Class]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ莉サ諢上�蛟、縺ァ繧医¥縲∫オ�セシ縺ソ 繧ェ繝悶ず繧ァ繧ッ繝医°繧峨◎縺ョ [[Class]] 繝励Ο繝代ユ繧」縺ョ縺溘a縺ォ菴ソ逕ィ縺輔l繧句€、縺ァ繧ゆセ句、悶〒縺ッ縺ェ縺�€� 縺薙�莉墓ァ倥�繝励Ο繧ー繝ゥ繝�縺ォ [[Class]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ク縺ョ繧「繧ッ繧サ繧ケ繧呈э蜻ウ縺吶k繧ゅ�縺ッ菴輔b謠蝉セ帙@縺ェ縺�%縺ィ縺ォ豕ィ諢�; 縺薙l縺ッ邨�セシ縺ソ 繧ェ繝悶ず繧ァ繧ッ繝医�遞ョ鬘槭�驕輔>縺ョ蛹コ蛻・縺ォ蜀�Κ逧�↓菴ソ逕ィ縺輔l繧九€�

蜷� Native 繧ェ繝悶ず繧ァ繧ッ繝医�縲�繧サ繧ッ繧キ繝ァ繝ウ 8.6.2.1, 8.6.2.2, 8.6.2.3, 8.6.2.4, 8.6.2.5 縺ァ霑ー縺ケ繧峨l繧� [[Get]], [[Put]], [[CanPut]], [[HasProperty]], [[Delete]] 繝。繧ス繝�ラ繧偵◎繧後◇繧悟ョ溯」�☆繧九€ゆス�@ Array 繧ェ繝悶ず繧ァ繧ッ繝医� [[Put]] 繝。繧ス繝�ラ縺ョ螳溯」��繧上★縺九↓逡ー縺ェ繧�(15.4.5.1)縲� Host 繧ェ繝悶ず繧ァ繧ッ繝医�莉サ諢上�譁ケ豕輔〒縺薙l繧峨�繝。繧ス繝�ラ繧貞ョ溯」�@縺ヲ繧医>; 萓九∴縺ー縲∫音谿翫↑ Host 繧ェ繝悶ず繧ァ繧ッ繝医� [[Get]] 蜿翫� [[Put]] 縺後€√�繝ュ繝代ユ繧」縺ォ蛟、繧呈�シ邏阪☆繧九′ [[HasProperty]] 縺ッ蟶ク縺ォ false 繧堤函謌舌☆繧句庄閭ス諤ァ縺後≠繧九€�

谺。縺ョ繧「繝ォ繧エ繝ェ繧コ繝�隱ャ譏弱↓縺翫>縺ヲ縲� O 繧� Native ECMAScript 繧ェ繝悶ず繧ァ繧ッ繝医€ ̄ 繧呈枚蟄怜�縺ィ莉ョ螳壹☆繧九€�

8.6.2.1 [[Get]] (P)

O 縺ョ [[Get]] 繝。繧ス繝�ラ縺後�繝ュ繝代ユ繧」蜷� P 縺ァ蜻シ蜃コ縺輔l繧九→縲∵ャ。縺ョ繧ケ繝�ャ繝励′縺ィ繧峨l繧�:

  1. O 縺� P 縺ィ縺�≧蜷榊燕縺ョ繝励Ο繝代ユ繧」繧呈戟縺」縺ヲ縺�↑縺代l縺ー縲√せ繝�ャ繝� 4 縺ク騾イ繧€縲�
  2. 縺昴�繝励Ο繝代ユ繧」縺ョ蛟、繧貞叙蠕励☆繧九€�
  3. Result(2) 繧定ソ斐☆縲�
  4. O 縺ョ [[Prototype]] 縺� null 縺ェ繧峨�縲「ndefined 繧定ソ斐☆縲�
  5. [[Prototype]] 縺ョ [[Get]] 繝。繧ス繝�ラ繧偵€√�繝ュ繝代ユ繧」蜷� P 縺ァ蜻シ縺ウ蜃コ縺吶€�
  6. Result(5) 繧定ソ斐☆縲�

8.6.2.2 [[Put]] (P, V)

O 縺ョ [[Put]] 繝。繧ス繝�ラ縺後�繝ュ繝代ユ繧」 P 縺ィ蛟、 V 縺ァ蜻シ縺ウ蜃コ縺輔l縺溷�エ蜷医€∵ャ。縺ョ繧ケ繝�ャ繝励′縺ィ繧峨l繧�:

  1. O 縺ョ [[CanPut]] 繝。繧ス繝�ラ繧偵€∝錐蜑� P 縺ァ蜻シ縺ウ蜃コ縺吶€�
  2. Result(1) 縺� false 縺ェ繧画綾繧九€�
  3. O 縺悟錐蜑� P 縺ョ繝励Ο繝代ユ繧」繧呈戟縺」縺ヲ縺�↑縺代l縺ー縲√せ繝�ャ繝� 6 縺ク騾イ繧€縲�
  4. 縺昴�繝励Ο繝代ユ繧」縺ョ蛟、縺ォ V 繧定ィュ螳壹☆繧九€ゅ�繝ュ繝代ユ繧」縺ョ螻樊€ァ縺ッ螟画峩縺輔l縺ェ縺�€�
  5. 謌サ繧九€�
  6. 蜷榊燕 P 縺ョ繝励Ο繝代ユ繧」繧堤函謌舌@縲√◎縺ョ蛟、縺ォ V 繧定ィュ螳壹@縲∫ゥコ縺ョ螻樊€ァ繧剃ク弱∴繧九€�
  7. 謌サ繧九€�

縺励°縺励€^ 縺� Array 繧ェ繝悶ず繧ァ繧ッ繝医〒縺ゅk蝣エ蜷医€√h繧雁�蠢オ縺ェ [[Put]] 繝。繧ス繝�ラ (繧サ繧ッ繧キ繝ァ繝ウ 15.4.5.1) 繧呈戟縺、縲�

8.6.2.3 [[CanPut]] (P)

[[CanPut]] 繝。繧ス繝�ラ縺ッ [[Put]] 繝。繧ス繝�ラ縺ォ繧医▲縺ヲ縺ョ縺ソ菴ソ逕ィ縺輔l繧九€0 縺ョ [[CanPut]] 繝。繧ス繝�ラ縺後�繝ュ繝代ユ繧」 P 縺ァ蜻シ蜃コ縺輔l繧九→縲∵ャ。縺ョ繧ケ繝�ャ繝励′蜿悶i繧後k:

  1. O 縺悟錐蜑� P 縺ョ繝励Ο繝代ユ繧」繧呈戟縺」縺ヲ縺�↑縺代l縺ー縲√せ繝�ャ繝� 4 縺ク騾イ繧€縲�
  2. 繝励Ο繝代ユ繧」縺� ReadOnly 螻樊€ァ繧呈戟縺」縺ヲ縺�l縺ー縲� false 繧定ソ斐☆縲�
  3. true 繧定ソ斐☆縲�
  4. O 縺ョ [[Prototype]] 縺� null 縺ェ繧峨�縲》rue 繧定ソ斐☆縲�
  5. O 縺ョ [[Prototype]] 縺ョ [[Canput]] 繝。繧ス繝�ラ繧偵€√�繝ュ繝代ユ繧」蜷� P 縺ァ蜻シ蜃コ縺吶€�
  6. Result(5) 繧定ソ斐☆縲�

8.6.2.4 [[HasProperty]] (P)

O 縺ョ [[HasProperty]] 繝。繧ス繝�ラ 縺後�繝ュ繝代ユ繧」蜷� P 縺ァ蜻シ蜃コ縺輔l繧九→縲∵ャ。縺ョ繧ケ繝�ャ繝励′蜿悶i繧後k:

  1. O 縺悟錐蜑� P 縺ョ繝励Ο繝代ユ繧」繧呈戟縺」縺ヲ縺�l縺ー縲� true 繧定ソ斐☆縲�
  2. O 縺ョ [[Prototype]] 縺� null 縺ェ繧峨�縲� false 繧定ソ斐☆縲�
  3. [[Prototype]] 縺ョ [[HasProperty]] 繝。繧ス繝�ラ繧偵�繝ュ繝代ユ繧」蜷� P 縺ァ蜻シ蜃コ縺吶€�
  4. Result(3) 繧定ソ斐☆縲�

8.6.2.5 [[Delete]] (P)

O 縺ョ [[Delete]] 繝。繧ス繝�ラ縺後�繝ュ繝代ユ繧」蜷� P 縺ァ蜻シ蜃コ縺輔l繧九→縲∵ャ。縺ョ繧ケ繝�ャ繝励′蜿悶i繧後k:

  1. O 縺悟錐蜑� P 縺ョ繝励Ο繝代ユ繧」繧呈戟縺溘↑縺代l縺ー縲� true 繧定ソ斐☆縲�
  2. 縺昴�繝励Ο繝代ユ繧」縺� DontDelete 螻樊€ァ縺ァ縺ゅl縺ー縲� false 繧定ソ斐☆縲�
  3. O 縺九i蜷榊燕 P 縺ョ繝励Ο繝代ユ繧」繧貞叙繧企勁縺上€�
  4. true 繧定ソ斐☆縲�

8.6.2.6 [[DefaultValue]] (hint)

O 縺ョ [[DefaultValue]] 繝。繧ス繝�ラ縺後ヲ繝ウ繝� String 縺ァ蜻シ蜃コ縺輔l繧九→縲∵ャ。縺ョ繧ケ繝�ャ繝励′蜿悶i繧後k:

  1. O 縺ョ [[Get]] 繝。繧ス繝�ラ繧偵€∝シ墓焚 "toString" 縺ァ蜻シ蜃コ縺吶€�
  2. Result(1) 縺後が繝悶ず繧ァ繧ッ繝医〒縺ェ縺代l縺ー縲√せ繝�ャ繝� 5 縺ク縲�
  3. Result(1) 縺ョ [[Call]] 繝。繧ス繝�ラ繧偵€》his 蛟、 O 縺ィ遨コ縺ョ蠑墓焚縺ョ繝ェ繧ケ繝医〒蜻シ蜃コ縺吶€�
  4. Result(3) 縺後�繝ェ繝溘ユ繧」繝門€、縺ァ縺ゅl縺ー縲ヽesult(3) 繧定ソ斐☆縲�
  5. O 縺ョ [[Get]] 繝。繧ス繝�ラ繧偵€∝シ墓焚 "valueOf" 縺ァ蜻シ蜃コ縺吶€�
  6. Result(5) 縺後が繝悶ず繧ァ繧ッ繝医〒縺ェ縺代l縺ー縲√せ繝�ャ繝� 9 縺ク縲�
  7. Result(5) 縺ョ [[Call]] 繝。繧ス繝�ラ繧偵€》his 蛟、 O 縺ィ遨コ縺ョ蠑墓焚縺ョ繝ェ繧ケ繝医〒蜻シ蜃コ縺吶€�
  8. Result(7) 縺後�繝ェ繝溘ユ繧」繝門€、縺ァ縺ゅl縺ー縲� Result(7) 繧定ソ斐☆縲�
  9. 萓句、� TypeError 繧呈兜縺偵k縲�

O 縺ョ [[DefaultValue]] 繝。繧ス繝�ラ縺後ヲ繝ウ繝� Number 縺ァ蜻シ蜃コ縺輔l繧九→縲∵ャ。縺ョ繧ケ繝�ャ繝励′蜿悶i繧後k:

  1. O 縺ョ [[Get]] 繝。繧ス繝�ラ繧偵€∝シ墓焚 "valueOf" 縺ァ蜻シ蜃コ縺吶€�
  2. Result(1) 縺後が繝悶ず繧ァ繧ッ繝医〒縺ェ縺代l縺ー縲√せ繝�ャ繝� 5 縺ク縲�
  3. Result(1) 縺ョ [[Call]] 繝。繧ス繝�ラ繧偵€》his 蛟、 O 縺ィ遨コ縺ョ蠑墓焚縺ョ繝ェ繧ケ繝医〒蜻シ蜃コ縺吶€�
  4. Result(3) 縺後�繝ェ繝溘ユ繧」繝門€、縺ァ縺ゅl縺ー縲ヽesult(3) 繧定ソ斐☆縲�
  5. O 縺ョ [[Get]] 繝。繧ス繝�ラ繧偵€∝シ墓焚 "toString" 縺ァ蜻シ蜃コ縺吶€�
  6. Result(5) 縺後が繝悶ず繧ァ繧ッ繝医〒縺ェ縺代l縺ー縲√せ繝�ャ繝� 9 縺ク縲�
  7. Result(5) 縺ョ [[Call]] 繝。繧ス繝�ラ繧偵€》his 蛟、 O 縺ィ遨コ縺ョ蠑墓焚縺ョ繝ェ繧ケ繝医〒蜻シ蜃コ縺吶€�
  8. Result(7) 縺後�繝ェ繝溘ユ繧」繝門€、縺ァ縺ゅl縺ー縲� Result(7) 繧定ソ斐☆縲�
  9. 萓句、� TypeError 繧呈兜縺偵k縲�

O 縺ョ [[DefaultValue]] 繝。繧ス繝�ラ縺後ヲ繝ウ繝育┌縺励〒蜻シ蜃コ縺輔l繧九→縲√ヲ繝ウ繝医′ Number 縺ァ縺ゅk縺九�繧医≧縺ォ謖ッ闊槭≧縲0 縺� Date 繧ェ繝悶ず繧ァ繧ッ繝� (繧サ繧ッ繧キ繝ァ繝ウ 15.9) 縺ョ蝣エ蜷医�縲√ヲ繝ウ繝医′ String 縺ァ縺ゅk縺九�繧医≧縺ォ謖ッ闊槭≧縲�

Native 繧ェ繝悶ず繧ァ繧ッ繝医�縺溘a縺ョ荳願ィ� [[DefaultValue]] 莉墓ァ倥�繝励Μ繝溘ユ繧」繝悶↑蛟、縺ョ縺ソ繧定ソ斐☆縲�Host 繧ェ繝悶ず繧ァ繧ッ繝医′縺昴l閾ェ霄ォ縺ョ [[DefaultValue]] 繝。繧ス繝�ラ繧貞ョ溯」�☆繧九↑繧峨�縲√◎縺ョ [[DefaultValue]] 繝。繧ス繝�ラ縺ッ繝励Μ繝溘ユ繧」繝悶↑蛟、縺ョ縺ソ繧定ソ斐☆縺薙→繧剃ソ晁ィシ縺励↑縺代l縺ー縺ェ繧峨↑縺�€�

8.7 Reference 蝙� (Reference Type)

蜀�Κ Reference 蝙九�險€隱槭�繝��繧ソ蝙九〒縺ッ縺ェ縺�€� 邏皮イ九↓隗」隱ャ荳翫�逶ョ逧�〒譛ャ莉墓ァ倥↓螳夂セゥ縺輔l繧九€� ECMAScript 螳溯」��縲√%縺薙↓霑ー縺ケ繧九h縺�↓縲√Μ繝輔ぃ繝ャ繝ウ繧ケ荳翫↓縺昴l縺檎函謌舌@貍皮ョ励@縺溘°縺ョ繧医≧縺ォ謖ッ闊槭o縺ェ縺代l縺ー縺ェ繧峨↑縺�€ゅ@縺九@縺ェ縺後i縲ヽeference 蝙九�蛟、縺ッ縲∝シ剰ゥ穂セ。縺ョ荳ュ髢鍋オ先棡縺ィ縺励※縺ョ縺ソ逕ィ縺�i繧後€∝、画焚縺ゅk縺��繝励Ο繝代ユ繧」縺ョ蛟、縺ィ縺励※譬シ邏阪☆繧九%縺ィ縺ッ縺ァ縺阪↑縺�€�

Reference 蝙九�縲‥elete, typeof 縺ョ繧医≧縺ェ貍皮ョ怜ュ舌€√◎縺励※莉」蜈・貍皮ョ怜ュ舌�謖ッ闊槭>縺ョ隱ャ譏弱↓菴ソ逕ィ縺輔l繧九€ゆセ九∴縺ー縲∽サ」蜈・縺ョ蟾ヲ繧ェ繝壹Λ繝ウ繝峨�繝ェ繝輔ぃ繝ャ繝ウ繧ケ縺ョ逕滓�縺梧悄蠕�&繧後k縲ゆサ」蜈・縺ョ謖ッ闊槭>縺ッ縲∽サ」繧上j縺ォ縲∽サ」蜈・貍皮ョ怜ュ舌�蟾ヲ繧ェ繝壹Λ繝ウ繝峨�讒区枚蠖「蠑丈ク翫�繧ア繝シ繧ケ隗」譫舌�轤ケ縺九i螳悟�縺ォ隱ャ譏弱&繧後k縲√≠繧矩屮轤ケ縺檎┌縺代l縺ー: 髢「謨ー蜻シ縺ウ蜃コ縺励�繝ェ繝輔ぃ繝ャ繝ウ繧ケ繧定ソ斐☆縺薙→繧定ィア縺輔l繧九€らエ皮イ九↓ Host 繧ェ繝悶ず繧ァ繧ッ繝医↓縺薙�蜿ッ閭ス諤ァ縺瑚ェ阪a繧峨l繧九€よ悽莉墓ァ倥〒螳夂セゥ縺輔l繧狗オ�セシ縺ソ ECMAScript 髢「謨ー縺ッ繝ェ繝輔ぃ繝ャ繝ウ繧ケ繧定ソ斐&縺壹€√Μ繝輔ぃ繝ャ繝ウ繧ケ繧定ソ斐☆繧医≧縺ェ繝ヲ繝シ繧カ螳夂セゥ髢「謨ー縺ォ謠蝉セ帙☆繧九b縺ョ縺ッ辟。縺�€�(讒区枚逧�こ繝シ繧ケ隗」譫舌r菴ソ逕ィ縺励↑縺�b縺�ク€縺、縺ョ逅�罰縺ッ縲∝�髟キ縺ァ謇ア縺�↓縺上¥莉墓ァ倥�螟壹¥縺ョ驛ィ蛻�↓蠖ア髻ソ縺吶k縺�繧阪≧縺ィ縺�≧縺薙→縺�縲�) Reference 蝙九�繧ゅ≧荳€縺、縺ョ蛻ゥ逕ィ縺ッ縲�未謨ー蜻シ蜃コ縺励� this 蛟、縺ョ豎コ螳壹�隱ャ譏弱〒縺ゅk縲�

Reference 縺ッ縲√が繝悶ず繧ァ繧ッ繝医�繝励Ο繝代ユ繧」縺ク縺ョ蜿ら�縺ァ縺ゅk縲3eference 縺ッ蝓コ貅悶が繝悶ず繧ァ繧ッ繝�(base object) 縺ィ繝励Ο繝代ユ繧」蜷阪� 2 縺、縺ョ謌仙�縺九i讒区�縺輔l繧九€�

Reference 縺ョ謌仙�縺ォ繧「繧ッ繧サ繧ケ縺吶k縺溘a縺ォ縲∵悽莉墓ァ倥↓縺翫>縺ヲ谺。縺ョ謚ス雎。逧�シ皮ョ励′菴ソ逕ィ縺輔l繧�:

  • GetBase(V). 繝ェ繝輔ぃ繝ャ繝ウ繧ケ V 縺ョ蝓コ貅悶が繝悶ず繧ァ繧ッ繝域�蛻�r霑斐☆縲�
  • GetPropertyName(V). 繝ェ繝輔ぃ繝ャ繝ウ繧ケ V 縺ョ繝励Ο繝代ユ繧」蜷肴�蛻�r霑斐☆縲�

繝ェ繝輔ぃ繝ャ繝ウ繧ケ荳翫�貍皮ョ励↓縺翫>縺ヲ縲∵悽莉墓ァ倥〒縺ッ谺。縺ョ謚ス雎。逧�シ皮ョ励′菴ソ逕ィ縺輔l繧�:

8.7.1 GetValue (V)

  1. Type(V) 縺� Reference 縺ァ縺ェ縺代l縺ー縲� V 繧定ソ斐☆縲�
  2. GetBase(V) 繧貞他蜃コ縺吶€�
  3. Result(2) 縺� null 縺ェ繧峨�縲∽セ句、� ReferenceError 繧呈兜縺偵k縲�
  4. Result(2) 縺ョ [[Get]] 繝。繧ス繝�ラ繧貞他縺ウ縲√�繝ュ繝代ユ繧」蜷阪↓ GetPropertyName(V) 繧呈ク。縺吶€�
  5. Result(4) 繧定ソ斐☆縲�

8.7.2 PutValue (V, W)

  1. Type(V) 縺� Reference 縺ァ縺ェ縺代l縺ー縲∽セ句、� ReferenceError 繧呈兜縺偵k縲�
  2. GetBase(V) 繧貞他蜃コ縺吶€�
  3. Result(2) 縺� null 縺ェ繧峨�縲√せ繝�ャ繝� 6 縺ク縲�
  4. Result(2) 縺ョ [[Put]] 繝。繧ス繝�ラ繧貞他縺ウ縲√�繝ュ繝代ユ繧」蜷阪↓ GetPropertyValue(V)縲∝€、縺ォ W 繧呈ク。縺吶€�
  5. 謌サ繧九€�
  6. Global 繧ェ繝悶ず繧ァ繧ッ繝医� [[Put]] 繝。繧ス繝�ラ繧貞他縺ウ縲√�繝ュ繝代ユ繧」蜷阪↓ GetPropertyValue(V)縲∝€、縺ォ W 繧呈ク。縺吶€�
  7. 謌サ繧九€�

8.8 List 蝙�

蜀�Κ List 蝙九�險€隱槭�繝��繧ソ蝙九〒縺ッ縺ェ縺�€らエ皮イ九↓隗」隱ャ荳翫�逶ョ逧�〒譛ャ莉墓ァ倥↓螳夂セゥ縺輔l繧九€ゅ%縺薙↓險倩ソー縺輔l縺滓婿豕輔〒 List 蛟、荳翫〒謠千、コ縺玲シ皮ョ励@縺溘°縺ョ繧医≧縺ォ縲・CMAScript 螳溯」��謖ッ闊槭o縺ェ縺代l縺ー縺ェ繧峨↑縺�€ゅ@縺九@縺ェ縺後i縲ヽeference 蝙九�蛟、縺ッ縲∝シ剰ゥ穂セ。縺ョ荳ュ髢鍋オ先棡縺ィ縺励※縺ョ縺ソ逕ィ縺�i繧後€∝、画焚縺ゅk縺��繝励Ο繝代ユ繧」縺ョ蛟、縺ィ縺励※譬シ邏阪☆繧九%縺ィ縺ッ縺ァ縺阪↑縺�€�

List 蝙九�縲]ew 蠑� (new expressions) 縺翫h縺ウ髢「謨ー蜻シ縺ウ蜃コ縺� (function call) 縺ォ縺翫>縺ヲ縲∝シ墓焚繝ェ繧ケ繝医�隧穂セ。繧定ェャ譏弱☆繧九�縺ォ菴ソ逕ィ縺輔l繧九€�List 蝙九�蛟、縺ッ縲∝腰邏斐↑鬆�コ上�縺ゅk蛟、縺ョ繧キ繝シ繧ア繝ウ繧ケ縺ァ縺ゅk縲ゅす繝シ繧ア繝ウ繧ケ縺ッ莉サ諢上�髟キ縺輔〒繧医>縲�

8.9 Completion 蝙� (Completion Type)

蜀�Κ Completion 蝙九�險€隱槭�繝��繧ソ蝙九〒縺ッ縺ェ縺�€らエ皮イ九↓隱ャ譏弱r逶ョ逧�→縺励※譛ャ莉墓ァ倥↓螳夂セゥ縺輔l繧九€ゅ%縺薙↓險倩ソー縺輔l縺滓婿豕輔〒 Completion 蛟、荳翫〒謠千、コ縺玲シ皮ョ励@縺溘°縺ョ繧医≧縺ォ縲・CMAScript 螳溯」��謖ッ闊槭o縺ェ縺代l縺ー縺ェ繧峨↑縺�€ゅ→縺ッ縺�∴縲,ompletion 蝙九�蛟、縺ッ縲∵枚(statment) 隧穂セ。縺ョ荳ュ髢鍋オ先棡縺ィ縺励※蛻ゥ逕ィ縺輔l繧九�縺ソ縺ァ縺ゅj縲∝、画焚繧��繝ュ繝代ユ繧」縺ョ蛟、縺ィ縺励※闢�ゥ阪☆繧九%縺ィ縺ッ縺ァ縺阪↑縺�€�

Completion 蝙九�蛻カ蠕。縺ョ髱槭Ο繝シ繧ォ繝ォ霆「騾√r螳溯。後☆繧区枚(statement; break, continue, return, throw) 縺ョ謖吝虚縺ョ隱ャ譏弱↓菴ソ逕ィ縺輔l繧九€�Completion 蝙九�蛟、縺ッ蠖「蠑� (type, value, target) 縺ョ 3 謌仙�縺ァ縺ゅj縲》ype 縺ッ normal, break, continue, return, throw 縺ョ縺�■縺ョ荳€縺、縲」alue 縺ッ莉サ諢上� ECMAScript 蛟、縺セ縺溘� empty縲》arget 縺ッ莉サ諢上� ECMAScript 隴伜挨蟄舌∪縺溘� empty 縺ァ縺ゅk縲�

逕ィ隱� "荳ュ騾泌ョ御コ� (abrupt completion)" 縺ッ type 縺� normal 莉・螟悶〒縺ゅk莉サ諢上� completion 繧貞盾辣ァ縺吶k縲�

Page Contents

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