差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
blog:2020:1206_speaking_javascript [2020/12/06 15:42]
kijima
blog:2020:1206_speaking_javascript [2020/12/10 23:30] (現在)
行 1: 行 1:
-{{tag>book 進行中}}+{{tag>book}}
  
 ====== Speaking JavaScript ====== ====== Speaking JavaScript ======
 +
 +15 26 47 54 81 100
 +
 +''node''で対話実行しながら学ぶ。
 +
 +話題があまりに細かい内容なので実際動かして学べない。またいつか戻ってこよう…。
  
 ===== 1 javascript quick start ===== ===== 1 javascript quick start =====
  
 +  * primitive型とオブジェクト型。primitive型はプロパティを変更できず、オブジェクトは変更できる。
 +primitiveは値で比較し、オブジェクトは参照で比較する。
 +
 +<code javascript>
 +var obj0 = {};
 +var obj1 = {};
 +obj0 === obj1 # => false
 +obj0 === obj0 # => true
 +</code>
 +
 +<code javascript>
 +var prim1 = 123;
 +var prim2 = 123;
 +prim1 === prim2 # => true
 +</code>
 +
 +また、
 <code javascript> <code javascript>
 obj = {} obj = {}
行 16: 行 39:
 </code> </code>
  
-primitive型とオブェクprimitive型はできない。+  * ''typeof'': を判別する。 
 +  * ''typeof null # => object #これはバグらしい'' 
 + 
 +  * メソッドだけ抜き出す変数は保持されない。 
 +<code javascript> 
 +var jane = { 
 +  name: 'Jane', 
 +  describe: function() { 
 +  return 'Person named '+this.name; 
 +  } 
 +}; 
 + 
 +jane.description() # => Person named Jane 
 +func = jane.description 
 +func() # => Cannot read property 'name' of undefined 
 +</code> 
 + 
 +そういうとき''bind''を使う。 
 + 
 +var jane = { 
 +    name: 'Jane', 
 +    friends: [ 'Tarzan', 'Cheeta' ], 
 +    logHiToFriends: function() { 
 +    'use strict'; 
 +    this.friends.forEach(function (friend){ 
 +    console.log(this.name+' says hi to '+friend); 
 +    }); 
 +    } 
 +
 + 
 +===== 2 background ===== 
 + 
 +JavaScriptには明るい未来が待っていますと。 
 + 
 +===== 3 JavaScriptの本質 ===== 
 + 
 +言語の特徴、影響を受けた言語など。Wikipediaの内容みたい。 
 + 
 +===== 4 どうやって作られたか ===== 
 + 
 +いろいろあってスーパーエンニアがプロタイプを10日で作った 
 +名前もいろいろあってわりまくって結局JavaScriptという紛らわしい名前に。 
 + 
 +===== 5 標準化 ===== 
 + 
 +ECMAScript 
 + 
 +===== 6 マイルストーン ===== 
 + 
 +歴史上はじめてのAjaxなアプリはGoogle Map。そこから派生した。 
 + 
 +===== 7 JavaScriptの文法 ===== 
 + 
 +まあ、いろいろあるんすね…。 
 + 
 +strictモードの動とかもある。 
 + 
 +===== 8 値 ===== 
 + 
 +型とか。 
 + 
 +細かい!nullの歴史とか飛ばす。 
 + 
 +適当に読んだら最後らへん意味不明。 
 +?? 
 +<code javascript> 
 +> var n = { valueOf: function () { return 123} }; 
 +> Number(n) 
 +123 
 +> String(n) 
 +'[object Object]' 
 +</code> 
 + 
 +?? 
 +<code javascript> 
 +> var s = { toString: function () { return '7'; } }; 
 +> String(s) 
 +'7' 
 +> Number(s) 
 +
 +</code> 
 + 
 +===== 9 オペレータ ===== 
 + 
 +ほとんどのオペレータはprimitive value でしか働かない。 
 ++ とかそうだな。 
 + 
 +複合オペレータ。+=とか。 
 + 
 +== の挙動。変換されてから比較される。 
 +たとえば 
 +<code javascript> 
 +> '' == false // 0 === 0 
 +true 
 +> '' == true // 1 === 1 
 +true 
 +</code>
  
blog/2020/1206_speaking_javascript.1607236931.txt.gz · 最終更新: 2020/12/06 15:42 by kijima