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
89
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ECMA262-Edition5.1読書会
https://devlove.doorkeeper.jp/events/11985
第4回 ECMA-262 Edition5.1読書会の登壇資料です。
第8条前半を要約しました
YukiFujisawa
July 23, 2014
More Decks by YukiFujisawa
See All by YukiFujisawa
チーム開発の枠組みと、それを支えるツール・役割の用語解説
yukifujisawa
3
1.5k
漫画ベイビーステップに 勇気をもらった人生
yukifujisawa
0
410
第1回 「システムテスト自動化 標準ガイド」 読書会 第1章 テスト自動化のコンテキスト
yukifujisawa
0
190
jQueryのようにWebテストが書ける Geb Navigator APIの紹介 第一回Geb勉強会
yukifujisawa
0
79
ECMA262-Edition5.1読書会 第10条 実行可能コードと実行コンテキスト
yukifujisawa
0
100
Other Decks in Programming
See All in Programming
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.8k
Go 1.27 における memory allocation の高速化
andpad
0
320
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
180
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
120
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
400
リアルな遅延を測る仕様
kota_yata
1
130
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
210
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
500
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
240
Introducing Stack Pull Request in GitHub
kkamegawa
0
100
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
190
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
150
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Crafting Experiences
bethany
1
260
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Building the Perfect Custom Keyboard
takai
2
850
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
4 Signs Your Business is Dying
shpigford
187
23k
So, you think you're a good person
axbom
PRO
2
2.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
650
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
57k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
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とする