- JavaScript 4©2ch.net
38 :デフォルトの名無しさん[sage]:2015/02/16(月) 12:57:21.51 ID:AmwLqaSG - >>36
http://bonsaiden.github.io/JavaScript-Garden/ja/ 特に巻き上げとか意味不明 あと、自動セミコロン挿入関連の書き方の宗教とか
|
- JavaScript 4©2ch.net
40 :デフォルトの名無しさん[sage]:2015/02/16(月) 15:23:28.07 ID:AmwLqaSG - >>39
C#とかPythonだと上位スコープと同じ名前が後でローカル変数として宣言されるときは、宣言前に使うと構文エラーになって100倍わかりやすいんだが あと b = 10 (function(){})() とかくと10が関数でないってエラーが出るし、関数返したりするとエラーすら出なくなるんだけど、セミコロン省略派の人はjshintで問題を見つけられるの?
|
- JavaScript 4©2ch.net
43 :デフォルトの名無しさん[sage]:2015/02/16(月) 17:23:39.47 ID:AmwLqaSG - 同名ローカル変数は許すよ。javascriptで巻き上げてundefinedになる状況がエラーになる。
http://ideone.com/7fi2bK セミコロンで挙動が変わるのは極端だけどこういうの function test() { ・・console.log("A") ・・return function(){ ・・・・console.log("B") ・・・・return function(){ console.log("C") } ・・} } test() //無=>ABC 有=>AD (function(){console.log("D")})() もっと単純でこういうのもあった var a = [["A","B"],["C","D"]] [0].map(function(i){ console.log(i);}) あと、即時関数も書いた人の宗教によって (function(){ console.log("test1"); })(); (function(){ console.log("test2"); }()); +function(){ console.log("test3"); }(); みたいにいろんな呼び方があってキモいじゃん? 想定外の書き方が来ると?になるから、統一してほしい >>42 boostrapなんかもセミコロン省略教だったりする 上みたいな状況がどうしても出てくるなら、行の先頭にセミコロンつけろだとさ
|
- JavaScript 4©2ch.net
46 :デフォルトの名無しさん[sage]:2015/02/16(月) 22:06:33.25 ID:AmwLqaSG - >>44
>お前何様だよ いや、お前が同名ローカル変数を許す言語にしろって言ったんだろ 念のためだが、俺が許すんじゃなくて、(C#やPythonの文法が)許すだからな? >どんな言語だってコーディングスタイルの違いで変な書き方なんてあって当たり前だ >JavaScriptだけが特別じゃない 設計じゃなくて文法と仕様が奇怪なのがjavascript しかも、ときどき理解せずに踏んでしまう可能性がある どの言語もしない変数の巻き上げ、使い物にならないtypeof、未定義値と限らないundefined、なぜかスコープを作らないブロック、オブジェクトなどに演算子を適用してしまうとエラーも出さずする不可解な挙動 配列は連想配列のように使えるけどfor inが安全に使えない、lengthが要素数を返さないなどなど、歴史上しょうがないのはわかるが、きもい funtion(){}()と書けない理由も知らないで使っている人が多そう 別にjavascriptが嫌いなわけではないんだけどな
|