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
370
第1回 「システムテスト自動化 標準ガイド」 読書会 第1章 テスト自動化のコンテキスト
yukifujisawa
0
130
jQueryのようにWebテストが書ける Geb Navigator APIの紹介 第一回Geb勉強会
yukifujisawa
0
55
ECMA262-Edition5.1読書会 第10条 実行可能コードと実行コンテキスト
yukifujisawa
0
69
Other Decks in Programming
See All in Programming
OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry
seike460
0
140
CQRS/ESのクラスとシステムフロー ~ RailsでフルスクラッチでCQRSESを組んで みたことから得た学び~
suzukimar
0
160
Designing Your Organization's Test Pyramid ( #scrumniigata )
teyamagu
PRO
5
1.7k
20250429 - CNTUG Meetup #67 / DevOps Taiwan Meetup #69 - Deep Dive into Tetragon: Building Runtime Security and Observability with eBPF
tico88612
0
190
TypeScript エンジニアが Android 開発の世界に飛び込んだ話
yuisakamoto
4
180
Live Coding: Migrating an Application to Signals
manfredsteyer
PRO
0
130
AI Coding Agents Enablement in TypeScript
yukukotani
10
2.3k
コンポーネントライブラリで実現する、アクセシビリティの正しい実装パターン
schktjm
1
170
AI時代のリアーキテクチャ戦略 / Re-architecture Strategy in the AI Era
dachi023
0
160
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
0
120
Building an Application with TDD, DDD and Hexagonal Architecture - Isn't it a bit too much?
mufrid
0
200
ruby.wasmとWebSocketで遊ぼう!
lnit
0
120
Featured
See All Featured
Docker and Python
trallard
44
3.4k
Scaling GitHub
holman
459
140k
The Invisible Side of Design
smashingmag
299
50k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Being A Developer After 40
akosma
91
590k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
Statistics for Hackers
jakevdp
799
220k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
24
2.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Art, The Web, and Tiny UX
lynnandtonic
298
21k
YesSQL, Process and Tooling at Scale
rocio
172
14k
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とする