Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ECMA262-Edition5.1読書会
Search
YukiFujisawa
July 23, 2014
Programming
0
70
ECMA262-Edition5.1読書会
https://devlove.doorkeeper.jp/events/11985
第4回 ECMA-262 Edition5.1読書会の登壇資料です。
第8条前半を要約しました
YukiFujisawa
July 23, 2014
Tweet
Share
More Decks by YukiFujisawa
See All by YukiFujisawa
チーム開発の枠組みと、それを支えるツール・役割の用語解説
yukifujisawa
3
1.3k
漫画ベイビーステップに 勇気をもらった人生
yukifujisawa
0
360
第1回 「システムテスト自動化 標準ガイド」 読書会 第1章 テスト自動化のコンテキスト
yukifujisawa
0
130
jQueryのようにWebテストが書ける Geb Navigator APIの紹介 第一回Geb勉強会
yukifujisawa
0
55
ECMA262-Edition5.1読書会 第10条 実行可能コードと実行コンテキスト
yukifujisawa
0
68
Other Decks in Programming
See All in Programming
英語文法から学ぶ、クリーンな設計の秘訣
newnomad
1
280
Preact、HooksとSignalsの両立 / Preact: Harmonizing Hooks and Signals
ssssota
1
1.1k
OpenTelemetryを活用したObservability入門 / Introduction to Observability with OpenTelemetry
seike460
PRO
1
400
Django for Data Science (Boston Python Meetup, March 2025)
wsvincent
0
290
CRE Meetup!ユーザー信頼性を支えるエンジニアリング実践例の発表資料です
tmnb
0
570
いまさら聞けない生成AI入門: 「生成AIを高速キャッチアップ」
soh9834
14
4.2k
プログラミング教育のコスパの話
superkinoko
0
130
AI Agents with JavaScript
slobodan
0
190
snacks.nvim内のセットアップ不要なプラグインを紹介 / introduce_snacks_nvim
uhooi
0
370
List とは何か? / PHPerKaigi 2025
meihei3
0
590
MCP世界への招待: AIエンジニアが創る次世代エージェント連携の世界
gunta
4
840
Kamal 2 – Get Out of the Cloud
aleksandrov
1
150
Featured
See All Featured
A Tale of Four Properties
chriscoyier
158
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
Navigating Team Friction
lara
184
15k
Agile that works and the tools we love
rasmusluckow
328
21k
Bash Introduction
62gerente
611
210k
Adopting Sorbet at Scale
ufuk
75
9.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
135
33k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
177
52k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Product Roadmaps are Hard
iamctodd
PRO
52
11k
Building an army of robots
kneath
304
45k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
12
1.4k
Transcript
ECMA262-Edition5.1読書会 2014/07/23 藤澤勇樹
第8条 型 ECMAScript言語型 仕様書型 Undefined型 Null型 Boolean型 String型 Number型 Object型
Reference型 List型 Completion型 など
8-1 Undefined型 値が格納されていない変数はこの値をも つ
TYPEOF関数 typeof演算子は対象となる値のデータ型 を表す文字列を返す演算
8-2 Null型 まさにnullと呼ばれる値を持つ これがObject型になるのはなぜか?? typeof null 過去に11.4.3のNullの結果を変えようという提案があったが、 下位互換性のために採用されなかった。 http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null
8-3 Boolean型 trueとfalseと呼ばれる二つの値を持つ論 理要素を持つ
8-4 String型 16ビットの符号なし整数値を要素とするゼ ロ個以上の順列の並びである どの要素も単一のUTF16コード単位である とみなされる プリミティブ値でlengthが取得できるのはなぜか? var
str = ‘str’ str.length //3
8-5 Number型 倍数精度64ビットIEEE754形式で表される 符号:1ビット 指数部:11ビット 仮数部:52ビット
絶対値が2の53乗より小さい整数は、Number 型で表現することができる Math.pow(2,53)+1; Math.pow(2,53)+3; が不正確な値になるのはなせか?
丸めモード Number型で正確に表せるのは、2の52乗 まで その後は、2進数に直した最下位が丸め 対象となる 丸めは、偶数丸めモードとなる
2の1024を超えるとInfinity(無限大)となる
8-6 Object型 Object型はプロパティのコレクション。プロパティは以下の3 つに分類される 名前付きデータプロパティ 表5
名前付きアクセサプロパティ 表6 内部プロパティ 表8、表9
プロパティ属性 var obj = Object.create(Object.prototype, { x : { value
: 1, writable : true, // x の値が変更できる enumerable : true, // for (var k in obj) で x を辿ることができる configurable : true // 下に説明 } }
デフォルト属性値 表7のデフォルト属性は、Configurableが 少なくともtrueに思える。検証間違いか? 検証方法は、オブジェクトをcreateして、何もし ない状態でプロパティが削除できるかどうかを 検証した 削除できた
内部プロパティの[[Class]] オブジェクトの仕様で定義された分類を示 す文字列 Object.prototype.toStringを除いてプログ ラムにこの値へアクセスする方法を提供し ない点に注意すること Object.Constructor.nameで取得できるが これは仕様違反?
8-7 Reference仕様型 Reference型は、delete、typeof、代入演算子の ような演算子の振る舞いを説明するために使わ れる。 Referenceは以下、3つから成り立つ Base値:undefined,Object,Boolean,String,Number,
もしくは環境レコード リファレンス名:文字列 Boolean値であるstrictリファレンスフラグ
JavaScriptのReference型 JavaScriptのReference型: <base, referencedName> *グローバルオブジェクトの場合は base=Environment Record となる 10.2.1
“string”.lengthの場合 1. Type(string)が参照でなければVそのものを返 す 2. GetBase(string)の呼び出し結果をbase(String 型)とする 3. HasPrimitibeBaseはtrueなので、特別な [[GET]]メソッドにする
4. ToObject(Base)の呼び出し=>Stringオブジェ クト 5. Stringオブジェクトの内部メソッドをプロパティ 名”length”で呼び出した結果をdescとする