差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
blog:2020:1206_speaking_javascript [2020/12/06 15:56]
kijima [Speaking JavaScript]
blog:2020:1206_speaking_javascript [2020/12/10 23:30] (現在)
行 1: 行 1:
-{{tag>book 進行中}}+{{tag>book}}
  
 ====== Speaking JavaScript ====== ====== Speaking JavaScript ======
  
-''node'''で対話実行しながら学ぶ。+15 26 47 54 81 100 
 + 
 +''node''で対話実行しながら学ぶ。 
 + 
 +話題があまりに細かい内容なので実際動かして学べない。またいつか戻ってこよう…。 
 ===== 1 javascript quick start ===== ===== 1 javascript quick start =====
  
-primitive型とオブジェクト型。primitive型は変更できない。 +  * primitive型とオブジェクト型。primitive型はプロパティを変更できず、オブジェクトは変更できる。 
-primitiveはオブジェクトを作らない。(生成して比較してみとわかる)+primitiveは値で比較し、オブジェクトは参照で比較
  
 <code javascript> <code javascript>
行 32: 行 37:
 str.foo = "a" str.foo = "a"
 str.foo # => "undefined" str.foo # => "undefined"
 +</code>
 +
 +  * ''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)
 +7
 +</code>
 +
 +===== 9 オペレータ =====
 +
 +ほとんどのオペレータはprimitive value でしか働かない。
 ++ とかそうだな。
 +
 +複合オペレータ。+=とか。
 +
 +== の挙動。変換されてから比較される。
 +たとえば
 +<code javascript>
 +> '' == false // 0 === 0
 +true
 +> '' == true // 1 === 1
 +true
 </code> </code>
  
blog/2020/1206_speaking_javascript.1607237785.txt.gz · 最終更新: 2020/12/06 15:56 by kijima