5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

JavaScript 4©2ch.net

1 :デフォルトの名無しさん 転載ダメ©2ch.net:2014/12/05(金) 12:19:07.19 ID:fmzBASgG
( ^ω^) 初学者・迷子・ロリ幼女はこちらで
  _、_
( ,_ノ` ) プロフェッショナルはECMAScript デス 4へ

【前スレ】
JavaScript 3
http://peace.2ch.net/test/read.cgi/tech/1380177260/

【関連スレ】
ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
+ JavaScript の質問用スレッド vol.117 +
http://peace.2ch.net/test/read.cgi/tech/1404146244/
CoffeeScript
http://peace.2ch.net/test/read.cgi/tech/1320949260/
TypeScript part1
http://peace.2ch.net/test/read.cgi/tech/1349187527/
構造化ウェブプログラミング言語Dart2
http://peace.2ch.net/test/read.cgi/tech/1319388343/
Microsoft SkyDrive API
http://peace.2ch.net/test/read.cgi/tech/1385604796/
【MACRO】Google Apps Script 質問スレ【DRIVE】
http://peace.2ch.net/test/read.cgi/tech/1404007623/
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/

2 :デフォルトの名無しさん 転載ダメ©2ch.net:2014/12/05(金) 12:20:14.04 ID:fmzBASgG
【前スレ-2】

JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
Node.js + Express
http://kanae.2ch.net/test/read.cgi/php/1357402658/
【MVW】AngularJS {{2}}【Google】 [転載禁止]©2ch.net
http://kanae.2ch.net/test/read.cgi/php/1415599223/
enchant.js
http://peace.2ch.net/test/read.cgi/gamedev/1352393326/
むしろjavascriptでゲーム作ろうぜ
http://peace.2ch.net/test/read.cgi/gamedev/1048171505/

3 :デフォルトの名無しさん:2014/12/05(金) 12:22:14.63 ID:fmzBASgG
ああ、間違った。
>>2 は関連スレ-2です。

次スレは>>980あたりでお願いします。

4 :デフォルトの名無しさん:2014/12/05(金) 12:28:49.65 ID:S74tDLHo
板毎の整理までして戴いて超GJでござる

5 :デフォルトの名無しさん:2014/12/05(金) 14:51:01.34 ID:v8ZX4BwT
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::

6 :デフォルトの名無しさん:2014/12/05(金) 20:23:41.06 ID:JcHTtYO/
http://i.imgur.com/SduT7qR.jpg
http://i.imgur.com/2f8fP3F.jpg
http://i.imgur.com/u0ymg8c.jpg
http://i.imgur.com/LruEssT.png
http://i.imgur.com/AeSQqRT.jpg
http://cisburger.com/up/bnf/6016.jpg
http://up.pangya.tv/src/www_pangya_tv18594.jpg

7 :デフォルトの名無しさん:2014/12/05(金) 20:48:53.50 ID:+TXyzC2W
ここはJavaScript4のスレです

http://ja.wikipedia.org/wiki/ECMAScript#ECMAScript_4

ECMAScript 4

「JavaScript#JavaScript 2.0」も参照
ECMAScript 4 は過去2回仕様作成が挑戦されたが、仕様がまとまらず、失敗に終わっている。
1回目[編集]
2000年〜2003年ごろ行われた。主に、旧Netscape社とMicrosoft社によって行われたが、意見がまとまらずに、打ち切りとなった。この時の案は ActionScript へと引き継がれた。
http://www.mozilla.org/js/language/old-es4/ - 昔のNetscape草案
2回目[編集]
2007年〜2008年ごろ、2回目の仕様作成が行われた。大きく機能を追加される予定であったが、意見がまとまらず、2008年8月13日に、小規模の改善にとどまる、ECMAScript 3.1 を進めることとなった[3]。仕様は、http://www.ecmascript.org/docs.php にて公開されている。
以下のような予定があった。
大規模・大人数開発のための機能の追加[要出典]
型に関する機能の追加[要出典]
ジェネリックプログラミングの機能の追加
ECMAScript 3 が下位互換だが、互換でない仕様が一部に入る[要出典]
ActionScript 3 の上位互換だが、互換でない仕様が一部に入る[要出典]

8 :デフォルトの名無しさん:2014/12/06(土) 00:47:10.87 ID:katyEhxk
いやいやいやいやいやいやいやいやいやいや、

ただのPart 4ですからー残念!

9 :デフォルトの名無しさん:2014/12/06(土) 00:52:42.22 ID:katyEhxk
>>2
そういやWeb制作板の方にも質問スレがあったんだった。

+ JavaScript の質問用スレッド vol.121 +©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1415213701/

そして>>6は一体どこの誤爆?

10 :デフォルトの名無しさん:2014/12/06(土) 13:37:22.95 ID:ERRenF6X
ろ・ろ・ろりようじょちゃうわっ!

11 :デフォルトの名無しさん:2015/01/22(木) 21:05:26.72 ID:lh8u5jbd
lodash 3.0 リリース間近!

https://github.com/lodash/lodash
3.0-preから-preが外れました!


スレが多すぎてどこに書けばいいかわからないので
関連スレすべてにマルチポストしています。m(__)m

12 :デフォルトの名無しさん:2015/01/23(金) 04:56:10.36 ID:Hr76SqrY
せっかく貼ってもらって恐縮だが
ここは関連してない

13 :デフォルトの名無しさん:2015/01/28(水) 16:27:09.57 ID:8HD8W7Zv
フェラチオ

14 :デフォルトの名無しさん:2015/02/11(水) 21:37:34.73 ID:z1YCt8TB
http://www.mpi-sws.org/~rossberg/papers/JSExperimentalDirections.pdf

GoogleはJSに「新モードを追加する」という方向性に舵をきり始めた。
GoogleはSaneScript、SaneModeをV8上に今年上半期に実装する。
これはJSの機能を一部制限し、動作を変えることで強力な最適化を可能にする。
語弊を恐れずに言うと、asm.jsの発展版であり、
asm.jsがJSの10%の機能、ユースケースをターゲットにしたものなら、Saneは90%程度だ。

そして今年下半期にはSaneとシンクロする型システムを導入し、SoundScriptとなってharmonyの次の音色をJSにもたらす。
JSは静的&動的型付け、クラス&プロトタイプベース言語となってあらゆる人々の要求に答える言語へと成長する。
それは遠い未来の話ではない。1年の間にその変化が起こるのだ。

15 :デフォルトの名無しさん:2015/02/11(水) 21:46:25.26 ID:fVfIbgvg
つまり標準化をやめてオレオレ拡張するってことか

16 :デフォルトの名無しさん:2015/02/11(水) 21:51:27.65 ID:nRKk5Oa4
よくわかんないけどウェブプログラマがIEを恨む時代からChromeを恨む時代になる?

17 :デフォルトの名無しさん:2015/02/11(水) 21:54:42.46 ID:z1YCt8TB
違う。これを発表したのはまさにTC39Meetingでだ。
だからGoogleはこれがES7あたりで標準になることを望んでいる。
O.oのときと同じく先行実験をするということ。

しかしJSが徐々に「Living Standerd」化していってるのは否定しない。
これは良い悪いではなく抗えない時代の流れなのだと思う。
そういえばこれと同じようにMozilla陣営が実験を進めていたParallelsは、
共感が少ないということで白紙に戻ったそうだ。

この取り組みが成功し、標準になるかどうかは結局は我々開発者の評判次第ということだ。

18 :デフォルトの名無しさん:2015/02/11(水) 22:07:33.80 ID:z1YCt8TB
皆はasm.jsを手書きで書こうとして詰まったり、思ったよりパフォーマンスが上がらなかったことはないだろうか。
Saneなら違う。SaneはほぼJSの感覚で手で楽にかけるし、パフォーマンスだけでなくリーディングの面でも素晴らしい効果をもたらす。
問題はこのJSにモードを増やすという考え方が、開発者たちにとって歓迎されるかどうかだ。

このasm.jsについてのissueを見てほしい。
https://code.google.com/p/v8/issues/detail?id=2599
10でも多いレス数は80。100で大人気のスター数は630。
当初Googleはasm.js向けの最適化はしないと言っていたのが徐々に主張が変わり、
今では新最適化エンジンで"use asm"を認識し、最適化モードを切り替えられるようにしたほどである。
今回の"use sane"アイディアはこういったことから開発者の受けがいいと判断してのことだろう。

19 :デフォルトの名無しさん:2015/02/11(水) 22:19:43.31 ID:TfFe/slw
asm.jsで目的は達成してるし他にはいらん
しかもasm.jsはソースがグチャグチャになるからアセンブラ並の難読化の役割も果たしてる
分かりやすくして欲しくない

20 :デフォルトの名無しさん:2015/02/11(水) 23:07:43.53 ID:z1YCt8TB
asm.jsはネイティブのコードをJS化するときに活用できるものであって、
"use strict"の強化版的なSaneModeとはユースケースが違う。
特にvarの使用位置にこだわる人やLint勢、クラスベース言語経験者からは喜ばれると思う。

21 :デフォルトの名無しさん:2015/02/11(水) 23:21:05.94 ID:z1YCt8TB
Sane/Soundで一番JSらしくなくなるのはオブジェクトが拡張できなくなる点だが、
sealedされて型のついたオブジェクトというのは、ES7で前々から提案されていたTypedObjectと同じだ。
コンストラクタがデフォルトでTypedObjectを返すようになるモードと考えれば、違和感も薄れるかもしれない。

22 :デフォルトの名無しさん:2015/02/11(水) 23:31:26.15 ID:TfFe/slw
pdf読んだが、ただのstrict modeの拡張レベルの話しだな
SoundScriptの方にいたってはTypeScriptのパクリだし
TypeScriptパクる奴は後を絶たないな

23 :デフォルトの名無しさん:2015/02/11(水) 23:38:26.87 ID:sJPqGjE7
パクってもらうのが目的な気がしてならない

24 :デフォルトの名無しさん:2015/02/12(木) 04:27:00.28 ID:vBHOZlzG
パクリも何もTypedScriptは元々ES6に向けたharmonyの機能を先行して実装し、
それに加えてES4の頃からアイディアがあってES7辺りでの実現が見込まれていた型注釈を組み込んだものだよ。
そしてTypeScriptの目標は自身(型注釈)がES7で取り入れられて最終的に用無しになることだからね。
CoffeeScriptなんかとよく並べられるが、どちらかと言うとtraceurや6to5みたいなトランスレーターの仲間と考えた方がいい。
とは言えTSの型注釈はコンパイル時の整合性チェックのためのもので、実行時に活用するSSとは少し有り様が違う。

25 :デフォルトの名無しさん:2015/02/12(木) 13:51:21.11 ID:sZL3z8VT
>>24
JavaScriptに型注釈が取り入れられるわけないし必要ない
それにブラウザ内蔵オブジェクトに正しく型を付けられるようにしたのはTypedScriptが最初だ
アイディアレベルのものと実際に実用的に動くものにしたのでは天と地ほどの差がある
実行時に活用するのは同じGoogleのAtScriptがあるだろ

26 :デフォルトの名無しさん:2015/02/12(木) 15:31:26.12 ID:vBHOZlzG
>>25
>>型注釈が取り入れられるわけない
そんなことはない
ただし、ESでの型注釈は現状無難なguardの方向になる可能性が一番高い
SSはもっと踏み込んでる

>>ブラウザ内蔵オブジェクトに正しく型を付けられるようにしたの〜
DefinitelyTypedについて言っているのならそれは完全にTSの功績
だがそれはTSの型注釈がコンパイル時の検証のためのものだから必要なのであって
ランタイムのチェックには必要ないもの

>>アイディアレベルのものと実際に実用的に動くものにしたのでは天と地ほどの差がある
別にTSの実装が最初かどうかは論じてない
パクリかどうかについて言ったまでのこと
そういう論展開ならなおさら実装をパクったわけではないからぱっと見似ている機能を入れてもパクリでないということになる

>>AtScript〜
もしguardのことを言っているのであればそれもまたES7アイディアの一つで別軸、別機能、別の話

27 :デフォルトの名無しさん:2015/02/12(木) 16:52:25.34 ID:sZL3z8VT
>>26
> ただし、ESでの型注釈は現状無難なguardの方向になる可能性が一番高い
guardはブレンダン・アイクにいらねー言われてたよ

> DefinitelyTypedについて言っているのならそれは完全にTSの功績
ブラウザ内蔵オブジェクトは単純なclassの定義だけじゃ型付け出来ないものがある
TypeScriptは若干独特な仕様のinterfaceを導入して正しく型付けしている

28 :デフォルトの名無しさん:2015/02/12(木) 18:47:26.14 ID:vBHOZlzG
>>27
guardそのものではないが、実行時の型チェック→エラー機能に留まる≒guardということ。

それと別に型が正しく型付けできない云々はあくまでTSの問題。TSが型をどのように定義し利用してるかの問題であって、一般的な話ではない。
そもそもTSにおける型とは架空のものだから。架空のものなのはJSが曖昧だから。

その点SSはそもそもクラスベースの世界だからインスタンスに紐付けられているクラス情報で判断できる。
で、ビルドインコンストラクタについてはどうやって外部の(プロトタイプベースの)世界と折り合いをつけるのかが示されていないから、
ランタイムチェックについては問題ないがAOT最適化をどうやるのかはなんとも言えない。

29 :デフォルトの名無しさん:2015/02/13(金) 21:09:48.47 ID:WDmbay81
jsonの日

30 :デフォルトの名無しさん:2015/02/14(土) 03:59:43.76 ID:TJAnvvXO
リア充の日

31 :デフォルトの名無しさん:2015/02/16(月) 00:41:45.50 ID:/X+NPUTO
Effective JavaScript読むとJSのきもさに眩暈がするな
元々ガチ向けじゃなかったものをガチ向けにした気持ち悪さ
まるで遊戯王

32 :デフォルトの名無しさん:2015/02/16(月) 02:39:37.43 ID:4iM7fmBu
どんな言語でもプログラムした事無い素人の典型的なレスだな(笑)

33 :デフォルトの名無しさん:2015/02/16(月) 08:14:21.62 ID:1Y+K6fCR
キモイだろ。普通に。
ここまで捏ね繰り回されたコードが普通に使われる言語は珍しい。
他の言語だとそういうキモイコードは、面白いけどさあ、で大体終わる。

34 :デフォルトの名無しさん:2015/02/16(月) 09:39:29.51 ID:o9E9nO+7
まあ皆キモイと思ってるから各種altJSが出てくるんだろうし

35 :デフォルトの名無しさん:2015/02/16(月) 09:40:08.76 ID:JcJgKv2l
>>34
そんなこと思ってる奴は全体でも1割もいない

36 :デフォルトの名無しさん:2015/02/16(月) 11:42:38.28 ID:8Z58kFg+
>>33
キモいってのは
(function() {
}());
ぐらいで他は特にないけど何がある?

37 :デフォルトの名無しさん:2015/02/16(月) 12:09:44.82 ID:G25umMgZ
やべえ、そのくらいじゃ全然キモいって思えねえ
まだobjectiveCのがキモい

38 :デフォルトの名無しさん:2015/02/16(月) 12:57:21.51 ID:AmwLqaSG
>>36
http://bonsaiden.github.io/JavaScript-Garden/ja/
特に巻き上げとか意味不明
あと、自動セミコロン挿入関連の書き方の宗教とか

39 :デフォルトの名無しさん:2015/02/16(月) 13:36:48.91 ID:8Z58kFg+
>>38
巻き上げの説明でよく出てくる例
var myname = "global";
function func() {
console.log(myname); //出力内容は?
var myname = "local";
console.log(myname); //出力内容は?
}
グローバルと同じ名前のローカル変数を定義してる時点で問題があるが、別の言語だと
"global"
"local"
と出力されるだろうが、そもそもローカル変数にアクセスしようとしてたら
どっちみち意味不明なバグになる
JavaScriptは親切に
undefine
"local"
としてくれるから逆に分かりやすい

セミコロンの問題はわざわざヘンテコな書き方をしない限り誰も問題とは思ってない
しいて上げれば末尾カンマの方が問題だ

ただ全部jshintをすれば事前に分かるから普通に書けば問題にはぶつからない
>>36のイディオムだけは使いまくるからどうにもならんけどな

40 :デフォルトの名無しさん:2015/02/16(月) 15:23:28.07 ID:AmwLqaSG
>>39
C#とかPythonだと上位スコープと同じ名前が後でローカル変数として宣言されるときは、宣言前に使うと構文エラーになって100倍わかりやすいんだが

あと
b = 10
(function(){})()
とかくと10が関数でないってエラーが出るし、関数返したりするとエラーすら出なくなるんだけど、セミコロン省略派の人はjshintで問題を見つけられるの?

41 :デフォルトの名無しさん:2015/02/16(月) 15:59:58.43 ID:8Z58kFg+
>>40
根本的に仕様が違う言語を持ち出すなよ
巻き上げの話しをしてんだから、せめて同名ローカル変数を許す仕様じゃないと比較する意味無いだろ
そんな事言ったら
同名ローカル変数を許す言語<許さない言語という結論で終わる(それには同意する)

jshintのデフォ設定ではセミコロン省略すると大量に警告が出る(>>40で2つ警告が出てる)
> とかくと10が関数でないってエラーが出るし、
エラーになるならそれでいいだろ
> 関数返したりするとエラーすら出なくなるんだけど
どういうコードか分からんかったが、それはエラーじゃないんだろ

42 :デフォルトの名無しさん:2015/02/16(月) 16:30:21.26 ID:8Z58kFg+
>>40
https://github.com/then/promise
ちなみに↑このライブラリの人はセミコロンを一切書いてない(lib内のソースとか)
それだけで使う気は失せたが一応ちゃんと綺麗に書けてる

43 :デフォルトの名無しさん: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なんかもセミコロン省略教だったりする
上みたいな状況がどうしても出てくるなら、行の先頭にセミコロンつけろだとさ

44 :デフォルトの名無しさん:2015/02/16(月) 17:32:57.59 ID:8Z58kFg+
>>43
> 同名ローカル変数は許すよ。
お前何様だよ

> test() //無=>ABC 有=>AD
残念大間違いw
test() //無=>ABC 有=>ABC

45 :デフォルトの名無しさん:2015/02/16(月) 17:38:33.32 ID:8Z58kFg+
>>44
違ったあってた
そもそも
(function(){console.log("D")})()
↑この書き方がイレギュラーな書き方なんだよ、それは最初に言っている

どんな言語だってコーディングスタイルの違いで変な書き方なんてあって当たり前だ
JavaScriptだけが特別じゃない

46 :デフォルトの名無しさん:2015/02/16(月) 22:06:33.25 ID:AmwLqaSG
>>44
>お前何様だよ
いや、お前が同名ローカル変数を許す言語にしろって言ったんだろ
念のためだが、俺が許すんじゃなくて、(C#やPythonの文法が)許すだからな?

>どんな言語だってコーディングスタイルの違いで変な書き方なんてあって当たり前だ
>JavaScriptだけが特別じゃない
設計じゃなくて文法と仕様が奇怪なのがjavascript
しかも、ときどき理解せずに踏んでしまう可能性がある

どの言語もしない変数の巻き上げ、使い物にならないtypeof、未定義値と限らないundefined、なぜかスコープを作らないブロック、オブジェクトなどに演算子を適用してしまうとエラーも出さずする不可解な挙動
配列は連想配列のように使えるけどfor inが安全に使えない、lengthが要素数を返さないなどなど、歴史上しょうがないのはわかるが、きもい

funtion(){}()と書けない理由も知らないで使っている人が多そう
別にjavascriptが嫌いなわけではないんだけどな

47 :デフォルトの名無しさん:2015/02/16(月) 23:08:49.01 ID:UGQzThdk
>>46
変数の巻き上げは実際には問題にならないって言ってる(そもそもそのコードがバグってるから)
神経質なやつが騒いでるだけ
> 未定義値と限らないundefined
これは意味が分からん
undefineを代入出来る事が気に入らないのか?
> なぜかスコープを作らないブロック
これは
(function() {
}())
の事でこればっかりはしょうがないと最初に言ってる
> オブジェクトなどに演算子を適用してしまうとエラーも出さずする不可解な挙動
var o = {};
console.log(o + o); // [object Object][object Object]
そんな事するわけないけど何か問題あるのか?意味が分からん

> 使い物にならないtypeof
これなんか完全に嘘を言って誘導しようとしてるな
普通に使ってるコードを山ほど見るけど、全部バグか?
これで完全に化けの皮が剥がれたな

48 :デフォルトの名無しさん:2015/02/17(火) 00:44:58.04 ID:jqPQ5aJG
>変数の巻き上げは実際には問題にならない
エラーになったほうがバグがすぐわかるじゃん
巻き上げる利点が何もない

>未定義値と限らないundefined
かなり最近まで「undefined = 1;」とかできた。「undefined 判定」とか検索すると苦労の跡が見える。
最近は変更できなくなったが、古いブラウザへの対応と残されたコードを理解するために知る必要がある。
でも、予約語ではないので変数名には使えて
function(){
var undefined = 1;
console.log(0[0] === undefined);
}
とやると0[0]は未定義なのにfalseになる。本来予約語にすべき。

> 使い物にならないtypeof
それはさっきあげたJavaScript Gardenより
http://bonsaiden.github.io/JavaScript-Garden/ja/#types.typeof
唯一有用なundefinedの判定は上に書いたとおり言語の欠陥がなければいらない記法
文句があるならこれ書いた人にpullreqでも送っとけ

>オブジェクトなどに演算子を適用してしまうとエラーも出さずする不可解な挙動
無論、わざと書くことはない。しかし、変数の中身の型を間違えていたりしても一見正常に動いて、中身が変わるとコケる場合がある。
初心者が===を==と書くともっと不思議な動作をするし、逆にこの手の処理がイディオムなってたりもする

49 :デフォルトの名無しさん:2015/02/17(火) 00:46:09.01 ID:jqPQ5aJG
以下長いが、これ全部結果の型と値わかる?これ全部結果の型と値わかる?
10*[5]
10*["5"]
10+[5]
10*[null]
10*[undefined]
10*[true]
10*[]
10*{}
10*[5,6]
10+true
10-true
10+[true]
Math.min(1,5,null,10);
Math.min(1,5,undefined,10);
Math.min(1,5,[],10);
Math.min(1,5,{},10);
[] === []
!![] === !![]
Nan === NaN
~NaN
-NaN
parseInt(true)
parseInt([])
Number(true)
Number([])
"aa" === new String("aa")
"aa" == new String("aa")
[1,5,10,50].sort()
["aa",NaN,[2],[1],["a"],[NaN],{"0":2},{"0": 1}].sort()

50 :デフォルトの名無しさん:2015/02/17(火) 00:52:59.63 ID:jqPQ5aJG
>>49
一番上の行はコピペミスです

51 :デフォルトの名無しさん:2015/02/17(火) 01:09:47.26 ID:ihqME62s
>>48
> エラーになったほうがバグがすぐわかるじゃん
だからundefinedになるからエラーになるって言ってんじゃん

> かなり最近まで「undefined = 1;」とかできた。「undefined 判定」とか検索すると苦労の跡が見える。
せめて"use strict"での話しをしろよ

> それはさっきあげたJavaScript Gardenより
> http://bonsaiden.github.io/JavaScript-Garden/ja/#types.typeof
糞記事
"foo" String string
1.2 Number number
true Boolean boolean
少なくともこれが分かる時点で使い道はあるし、実際使われている
objectだったらinstanceof使えばいい
それで使いものにならないと言ってたら単なるイチャモン付けてるだけ
はっきり言って、ちゃんとコード書いてたら型判定なんて必要ない事に気づけよ
Booleanクラスが判定出来ないから困っちゃう?ちゃんちゃらおかしいなw

52 :デフォルトの名無しさん:2015/02/17(火) 01:40:35.02 ID:jqPQ5aJG
>だからundefinedになるからエラーになるって言ってんじゃん
その場ですぐエラーになるとは限らない
グローバル変数を使ったつもりで全く別のタイミングで問題が出るかもしれない

>せめて"use strict"での話しをしろよ
してるじゃん。use strictでも予約語にはならないし、古いコード読むときに謎のundefined判定に対する知識が必要
その書き方さえ何パターンもあり、少なくとも美しくはない

>使い道はある
使い道があるかどうかじゃなくて、きもいかどうかのお話をしてる
もっと使い勝手の良くて、Object.prototype.toStringとか不自然なことしなくてすめばいいのに
擬似的なオーバーロードみたいに使い道はあるのに、型よってころころ判定法を変える言語なんてそうないよ

53 :デフォルトの名無しさん:2015/02/17(火) 02:17:19.61 ID:52Ru56el
古いコードでもundefinedに代入するなら代入するなりの理由が無いとやらんと思うぞ
そんなコードはそもそも要注意コードだと思うの

54 :デフォルトの名無しさん:2015/02/17(火) 08:36:36.32 ID:T8d9Ogf5
全体的には ID:jqPQ5aJG に同意

>>48
> var undefined = 1;
これは本当に何とかして欲しい
スコープチェーン上で汚染されるのは ES5 仕様では回避しようがない
現状ではtypeof 演算子なり void 演算子を利用するしか選択肢がないわけだが、ES6 で Keywords に入れてもらえないものかね…

55 :デフォルトの名無しさん:2015/02/17(火) 08:51:15.40 ID:T8d9Ogf5
typeof 演算子の極悪さは Null 型、Object 型の判定にあると思う

typeof null === 'object'; // true
typeof new Function === 'function'; // true
typeof ActiveXObject('Excel.Sheet') === 'unknown'; // true

これらは全て ES5 に準拠しているわけだが、全く信じられない挙動だ
Null 型の判定は === で可能だからまだマシだが、Object 型の判定に Object() を利用しなくちゃならんのが面倒くさい
"type" の名を関する演算子なのに「型」以外の文字列が返すなと問い詰めたい

56 :デフォルトの名無しさん:2015/02/17(火) 13:47:28.70 ID:9i2JMVg5
> var undefined = 1;
そんな事するわけ無いだろ、誰も困ってねーよ

57 :デフォルトの名無しさん:2015/02/17(火) 13:50:15.56 ID:9i2JMVg5
>>55
なぜtypeofを使うかをちゃんと考えれば困ることはない
お前プログラム組んだこと無いだろ

58 :デフォルトの名無しさん:2015/02/17(火) 14:14:32.83 ID:MalAvpsB
>>56
「する」「しない」の問題じゃない
良いブログラムならそれ以前に「出来ない」

59 :デフォルトの名無しさん:2015/02/17(火) 18:54:07.52 ID:DEFQP+nD
>>57
君は仕様を読んで型の厳密判定をする方法について考えたことがなさそうだな
Object 型に限定した判定法が必要になるケースもある
ES の Native method がそういう設計だし、それに似せると必然的に型判定を厳密にするようになる

60 :デフォルトの名無しさん:2015/02/17(火) 19:17:26.55 ID:9i2JMVg5
>>58
出来ないから何?
やらないものを出来る出来ないなんてどうでもいいし気にもならない
当然キモいなんて全く思わない

>>59
> Object 型に限定した判定法が必要になるケースもある
取り合えず例をあげてよ

61 :デフォルトの名無しさん:2015/02/17(火) 19:50:13.90 ID:jqPQ5aJG
>>60
ローカル変数名にundefinedを使ったコードを読むときに仕様を知らないといけない
var undefined;
とすると、上のスコープと無関係にundefinedを未定義にできる
古いブラウザへの対応も含めてこれを利用したコードが残っている

だから、書き換え可能だった頃の対策コードを含めて、害しかない仕様を詳細に理解せざるを得ない

お前が熟知してても、勉強途中の理解がたりない人に優しい仕様ではないね。エラーにする言語なら間違えようがないところ

62 :デフォルトの名無しさん:2015/02/17(火) 21:23:01.60 ID:DEFQP+nD
var undefined; については他の定数と比較すれば違いがよくわかる

(function () {
var true = 1; // SyntaxError: Unexpected token true
var false = 1; // SyntaxError: Unexpected token false
var null = 1; // SyntaxError: Unexpected token null
var undefined = 1;
}());

true, false, null で変数宣言が出来るケースを考えてみるといい
ちなみに、null が書き換えられた場合は undefined の比でなく面倒になる
null は typeof 演算子の仕様バグがあるから固定値を取り出すには必ず、null を返すが決まっている関数or演算子を使うしかない
undefined と違って null には void 演算子のような便利な機能は用意されていないのでスコープチェーン上で
var null = /./.exec('');
を宣言するぐらいか

63 :デフォルトの名無しさん:2015/02/17(火) 21:33:15.87 ID:igbT8vqk
prototypeのおいしい使い方ってないかな
継承とか考えずにデコレータやアダプタとしてラップする方が便利かも

64 :デフォルトの名無しさん:2015/02/17(火) 22:08:37.81 ID:52Ru56el
>>61
それを利用してるんなら、その謎物体をundefinedとして扱って欲しいのでは?

65 :デフォルトの名無しさん:2015/02/17(火) 22:35:27.98 ID:DEFQP+nD
>>60
・{hoge: true, foo: false} のように Object 型でオプションを指定したい場合
・配列のようなオブジェクト(NodeList等)を判定したい場合

66 :デフォルトの名無しさん:2015/02/17(火) 23:45:34.81 ID:DEFQP+nD
>>64
var undefined; を宣言した場合、ES5 で書き換え不可能になった window.undefined をスコープチェーン上で参照不可能になり、書き換え可能なローカル変数として扱われる
書き換え不可能だった定数が書き換え可能な変数に置き換わるのは良いコードとはいえない

67 :デフォルトの名無しさん:2015/02/18(水) 06:15:00.64 ID:VrkW+sKk
>>66
もちろん悪いコードだと思う
でも敢えてそんな記述をする以上は、そいつをundefinedとして扱えってコードなのだろう
そんなコードを意識してわざわざ変な判定をするのは却っておかしなことになるんじゃ?と言いたい

68 :66:2015/02/18(水) 08:03:14.70 ID:fF9sUQWk
>>67
それは確かにそうだな
もっと他によい方法があると思う
- written: true の時だけ defineProperty を使う
- typeof undefined !== 'undefined' の時だけ this.undefined = void 0;
- undefined を使わず、typeof 演算子を使う
自分は>>61ではないので>>61の回答待ち

69 :61:2015/02/18(水) 09:30:11.66 ID:86t2mSil
これから書くときはほとんど気にする必要はない
不便なのは、初心者が人のコードを読むとき
・undefinedがキーワードでないこと
・過去にグローバルオブジェクトが書き換え可能だったこと
・「未定義値であることを保証する」というパターン(イディオム)数種類
を知らないと、そのパターンを見た時にすぐには理解できなくて手が止まってしまう
当然調べてundefinedの仕様を学べばいいんだけど、undefinedが最初から予約語ならそもそもこんなこと考える必要も、知る必要もなかったのにね、ということ

実際、jQueryとかでもほんの最近まで
(function(window,undefined){ 中身 })(window)
としてundefinedを上書きしてたし、プラグインとかではまだこの書き方が残ってるやつはかなりある

70 :デフォルトの名無しさん:2015/02/18(水) 14:03:10.51 ID:SiK8hGV0
>>69
> これから書くときはほとんど気にする必要はない
IE7 はまだサポート期間が残っているので「気にする必要はない」は語弊があるのでは?

71 :デフォルトの名無しさん:2015/02/18(水) 15:06:09.95 ID:9ZeaK8N0
文盲

72 :デフォルトの名無しさん:2015/02/18(水) 17:28:09.82 ID:yNLF/Zre
>>65
> ・{hoge: true, foo: false} のように Object 型でオプションを指定したい場合
直感的に思いついた通りに実装すればいいだろ
function test(hoge, foo) {
'use strict';
if (typeof hoge === 'boolean') {
console.log('hoge is', hoge);
} else if (typeof hoge === 'object') {
if (hoge.hasOwnProperty('hoge') && typeof hoge.hoge === 'boolean') {
console.log('hoge is', hoge.hoge);
}
if (hoge.hasOwnProperty('foo') && typeof hoge.foo === 'boolean') {
console.log('foo is', hoge.foo);
}
}
}
test(true, false);
test({hoge: true, foo: false});
test({hoge: 2});
test({hage: 2});

> ・配列のようなオブジェクト(NodeList等)を判定したい場合
「ような」なんだから
if (hoge.length > 0) {
// 配列の「ような」オブジェクト
}
で問題ないだろ

73 :デフォルトの名無しさん:2015/02/18(水) 19:17:18.75 ID:lIxPY8wl
>>72
それは Object 型の一部しか判定できてない

74 :デフォルトの名無しさん:2015/02/18(水) 20:55:04.71 ID:yNLF/Zre
>>73
変なコーディングをしてる訳でもなく目的は達しているんで問題無い

75 :デフォルトの名無しさん:2015/02/18(水) 21:00:07.21 ID:lIxPY8wl
>>74
特定の Object 型に制限する理由は全くない
それから Null 型が考慮されてない
配列も型判定がないからプロパティアクセス演算子でTypeErrorになる場合がある
ECMAScript でコードを書いた経験が少ないとしか思えないレベルだ

76 :デフォルトの名無しさん:2015/02/18(水) 22:43:31.46 ID:M4E75IrS
>>75
null(undefined)チェックを忘れた…
function test(hoge, foo) {
'use strict';
if (!hoge) return;
if (typeof hoge === 'boolean') {
console.log('hoge is', hoge);
} else if (typeof hoge === 'object') {
if (hoge.hasOwnProperty('hoge') && typeof hoge.hoge === 'boolean') {
console.log('hoge is', hoge.hoge);
}
if (hoge.hasOwnProperty('foo') && typeof hoge.foo === 'boolean') {
console.log('foo is', hoge.foo);
}
}
}
test(true, false);
test({hoge: true, foo: false});
test({hoge: 2});
test({hage: 2});
test(null);
test(undefined);
test([]);
test({hoge:[]});

単にnullチェック抜けてるって言えば済む問題を○型が考慮されてないとか
お前の方が素人丸出しだ

77 :デフォルトの名無しさん:2015/02/18(水) 22:53:00.36 ID:M4E75IrS
>>75
こっちもだった
if (hoge && hoge.length > 0) {
console.log('配列の「ような」オブジェクト', hoge[0]);
}
↓これらで問題無し
var hoge = null;
var hoge = undefined;
var hoge = [];
var hoge = {};
var hoge = {hoge:1};
var hoge = 1;
var hoge = "a";

78 :デフォルトの名無しさん:2015/02/18(水) 23:37:18.13 ID:86t2mSil
>>65 はそもそも何を持って配列のようなオブジェクトといいたいのだろう
さすがに{length:10}を配列のようなものとは呼びたくないけど

79 :デフォルトの名無しさん:2015/02/18(水) 23:52:45.07 ID:86t2mSil
>>76
これそもそも第2引数は一度も使ってないけど、何のためにあんの?

あと、
if (!hoge) return;
追加したら
test(false,false);
の時の挙動変わってんじゃん

80 :デフォルトの名無しさん:2015/02/18(水) 23:55:34.69 ID:M4E75IrS
>>78
いや{length:10}de配列ライクと言えると思われる
var hoge = {length: 10};
for (var i = 0; i < hoge.length; ++i) {
console.log(hoge[i]);
}
で全部undefinedが出力されるけど、それは普通の配列でも有り得る事だし
var hogeArray = Array.prototype.slice.call(hoge);
で配列に変換も出来る

81 :デフォルトの名無しさん:2015/02/19(木) 00:01:52.76 ID:4zgsUurY
>>79
直した…スマソ
function test(hoge, foo) {
'use strict';
if (typeof hoge === 'boolean') {
console.log('hoge is', hoge);
} else if (hoge && typeof hoge === 'object') {
if (hoge.hasOwnProperty('hoge') && typeof hoge.hoge === 'boolean') {
console.log('hoge is', hoge.hoge);
}
if (hoge.hasOwnProperty('foo') && typeof hoge.foo === 'boolean') {
console.log('foo is', hoge.foo);
}
}
}

82 :デフォルトの名無しさん:2015/02/19(木) 00:46:16.03 ID:+Jg4S+WS
>>80
JavaScript難しいなぁ
Array.prototype.slice.call(hoge);
ってするときに
hoge = {length:4.5} => 4コ
hoge = {length:Infinity} => 0コ
hoge = {length:99999999999 } => フリーズ
hoge = {length:-0.1} => 0コ
hoge = {length:-1} => フリーズ
hoge = {length:NaN} => 0コ
hoge = {length:true} => 1コ
うーむ・・・
でかいのはまだしも、負数を渡すとフリーズするのは内部で何をしているんだろう

83 :デフォルトの名無しさん:2015/02/19(木) 01:00:49.63 ID:4zgsUurY
>>82
sliceがマイナスの値は最後から処理するからな気がする
lengthがマイナスなのは配列とは言えないから
やっぱり
if (hoge && hoge.length > 0) {
var hogeArray = Array.prototype.slice.call(hoge);
}
ってのは必要だね

84 :デフォルトの名無しさん:2015/02/19(木) 01:35:12.55 ID:iPujbk1h
>>83
必要かどうかは仕様による。

>>83のコードが必要な理由は、lengthにマイナスが入ることが
プログラムの仕様的にありえるから、必要なのだろう?

lengthにマイナスが入った時どうするか?
例外を出すか、永遠と処理するか、hogeArrayをundefinedにするか。
それは仕様で決めること。

そのコードはhoge.lengthがマイナスの場合、hogeArrayは
undefinedになるという仕様のコード。
それの仕様でいいのかどうかを考える必要がある。

85 :デフォルトの名無しさん:2015/02/19(木) 08:45:08.63 ID:ACeVxkIV
>>76
> 単にnullチェック抜けてるって言えば済む問題を○型が考慮されてないとか
> お前の方が素人丸出しだ
そのコードは typeof 演算子の "Object (native and does not implement [[Call]])" しか対応できてないだろう?
http://es5.github.io/#x11.4.3
前方互換性をふまえれば、ES6 でも正しく判定出来ることが望ましい
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-typeof-operator
Null 型を誤検知するだけなら「Object 型の一部」とはいわない
あなたは ECMAScript 仕様書をまともに読んだことがないだろう?
ES 仕様に言及している意見に反論するなら仕様書ぐらい読んで欲しい

>>78
> >>65 はそもそも何を持って配列のようなオブジェクトといいたいのだろう
わかりやすくいうならば、 Array.prototype.forEach と同様の判定といえるかな
Array.prototype.forEach では ToObject, ToInt32 で型変換しているわけだが、型変換せずに TypeError を返したい状況もあるだろう
http://es5.github.io/#x15.4.4.18

86 :デフォルトの名無しさん:2015/02/19(木) 12:11:41.51 ID:k55gX30E
>>85
> そのコードは typeof 演算子の "Object (native and does not implement [[Call]])" しか対応できてないだろう?
それで事足りてるという事は仕様的に問題ないという事だ
対応できてない事で実用的に問題があるコード例を挙げて説明してくれ

そもそもJavaScriptは
var obj0 = {hoge:true, foo:false};
var obj1 = {foo:false, bar:1, hoge:true};
function Hoge() {this.hoge = true; this.foo = false;}
var obj2 = new Hoge();
のどれを渡されても同じように機能する事が期待されている
!obj(nullとundefinedのチェック)とプロパティーの存在チェック(と最終的に'number'などの型チェック)以外に必要だとは思えない

87 :デフォルトの名無しさん:2015/02/19(木) 13:17:52.04 ID:VHEGaKii
実際、>>72が直感的にコードを書いて多数間違えたぐらいだからなあ
rypeof演算子に関しては良い仕様とは言い難い

88 :デフォルトの名無しさん:2015/02/19(木) 15:27:06.03 ID:/+bx2aTM
なにがArrayLikeかは難しいよ。どういう目的で区別するかで変わると思う。なぜなら何を配列と見立てられるかは用途によって変わるから。
例えば配列に変換したいという場合なら、ES6のArray.fromを参考にすると、
lengthを持っているか(オブジェクトでなくともラッパーのプロトタイプにあればいい)、イテラブルならOK。
これが広義のArrayLikeだろう。

またはArray.prototype.concatで、引数をSpreadすべきかどうかなら、実は配列かどうかというチェックだと問題がある。
だからES6からは@@isConcatSpreadableのチェックに変わった。
要するに「一般的なArrayLikeの判定」を定義するのは無理というか、しても役に立つものにならないと思う。

89 :デフォルトの名無しさん:2015/02/19(木) 16:24:08.30 ID:+Jg4S+WS
>>86
プロトタイプチェインはたどらないの?

90 :デフォルトの名無しさん:2015/02/19(木) 19:11:01.43 ID:FI1nksg/
>>88
> ES6のArray.fromを参考にすると、lengthを持っているか(オブジェクトでなくともラッパーのプロトタイプにあればいい)、イテラブルならOK。
Array.from は配列に変換する、つまり Object 型に変換するから変換元が Object 型であることを求めないだけな気がする
ierator を除くと Array.from は ToObject, ToLength(Int32への変換)をしている
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
変換後のオブジェクトが ArrayLike と考えられるので ArrayLike は「Object 型」「Int32のlengthプロパティを持つ」になる
Array.from の挙動は>>85で説明されている Array.prototype.forEach の挙動と一致する
Array.prototype 系メソッドを一通り読めばわかると思うけど、全てそういう挙動になってるよ
対象を isArrayLike で判定して例外を返すか、ArrayLike に変換するか、は意見が別れる(ポリシーに依る)だろうけどね
ES6 の挙動に合わせるなら変換する方になる

91 :デフォルトの名無しさん:2015/02/19(木) 21:45:10.46 ID:/+bx2aTM
ToObjectがかかっているのは、null/undefinedはじきや、Getやらもろもろの処理がObjectであることを期待しているためだからであって、処理の本質とはあまり関係ないけどね。
あとToLengthはInt32でなく2^53-1までの整数。
長さを拡張すべきという問題が出て、Arrayに関しては互換性問題で見送られたけど、型付配列は長さ2^53-1までになったから、ここに関しても絶対基準はないと思う。
別にこの範囲でなくともエラーになるわけではなくて、範囲に収まるように強制されるだけだし。

92 :デフォルトの名無しさん:2015/02/19(木) 22:21:02.70 ID:cTS5FQ8e
>>91
なるほど
ES6 の Array.prototype.forEach の length も 2^53-1 に拡張されてるんだな
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.foreach
今後、更に拡張される可能性を考えると、length に関しては Number.isInteger の判定ぐらいでいいのかもしれないな
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger

93 :デフォルトの名無しさん:2015/02/23(月) 05:03:25.31 ID:m2dP1v8u
別に整数かどうかの判定は要らないだろう。
「"5"」だったら「5」、「true」だったら「1」になるのがJS流だし。
整数の長さが欲しければ「len = obj.length|0」とするのがJS流。

94 :デフォルトの名無しさん:2015/02/24(火) 00:54:33.32 ID:XD7S4Fuq
try catchって頻繁に呼び出す関数では最適化できなくて遅くなるから使っちゃいけないのか?

知らなかった…Chromeのプロファイラに出ていた警告を見て初めて知った

95 :デフォルトの名無しさん:2015/02/24(火) 11:35:35.42 ID:SsySdaPd
>>94
ループで、独自につくったルーチンなどを頻繁にそれつかって回すと激遅になる
ので、なるべく、どこかで検証用の別ルーチンで対処させるようにしてる。

96 :デフォルトの名無しさん:2015/02/24(火) 12:16:53.92 ID:lFZ8d0+y
関数全体を覆わなければ問題ない。
一番ベストな使い方は関数呼び出しの部分だけに使用する。
try{ func() }
そうでなくても全体で使用しなければ、tryの掛かっていない部分はfor文等一定のブロックごとに最適化が働く。

97 :デフォルトの名無しさん:2015/02/24(火) 12:32:14.82 ID:6vv1mCHr
>>94
try catchの使い方を間違えてるんでしょ。

try catchを正しく使うということは
try catchを使わないことを意味するw

何を行っているかわからないと思うが、
基本的に、windowのerrorイベントを使えばいいんだよ。
errorイベントは、誰もcatchしない時に呼ばれる所。
ここでまとめて処理すればいいし、普通はここで処理するもの。

例外的に途中でcatchしなくちゃいけない時だけcatchをする。
だからtry catchを正しく使う = try catchを使わないということになる。

逆に間違った使い方をしていると、catchしてalert()とかreturn falseとかするから、
間違った使い方 = try catchが多くなる。

98 :デフォルトの名無しさん:2015/02/24(火) 12:48:11.36 ID:wY5F80Ar
>>94
try-catch は例外を捕捉しなければエラー処理出来ない場合に使うもの
例外が発生する条件は確定しているのだから、 try-catch を使わなくても対応出来る場合が大半を占める
try-catch を使うのは new ActiveXObject() で対応する引数に応じて処理を分ける等の例外的なケースに限られる

99 :デフォルトの名無しさん:2015/02/24(火) 16:54:22.71 ID:gLNZIunY
netbeansを使ってるんだけど最初にテンプレが出ますよね?あれを編集する方法ないですか?

100 :デフォルトの名無しさん:2015/02/25(水) 22:58:43.24 ID:JtIRtORE
現行スレ

+ JavaScript の質問用スレッド vol.123 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1423915644/

101 :デフォルトの名無しさん:2015/02/25(水) 23:20:48.35 ID:JFD+ngFs
>>99
[ツール]-[テンプレート]
[エディタで開く]

102 :デフォルトの名無しさん:2015/02/27(金) 18:16:56.06 ID:6eP810Kn
>>101
テンプレのタグが分かりません・・・

103 :デフォルトの名無しさん:2015/02/27(金) 19:56:27.10 ID:Wvtuv0/g
>>102
それは自分で努力すればいいよね?

104 :デフォルトの名無しさん:2015/03/13(金) 19:23:10.11 ID:UBRcUR4y
jsonの日

105 :デフォルトの名無しさん:2015/04/12(日) 11:08:10.55 ID:7j69OB5F
『関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間』
http://www.amazon.co.jp/dp/4798043761/

せっかくだからJavaScriptで関数型プログラミングを学んでみるのも面白いかもしれないな。

106 :デフォルトの名無しさん:2015/04/12(日) 17:02:14.80 ID:PVRHL1t5
>>105
Qiitaアカバンされたポエマー、毛の壁先生じゃんw

107 :デフォルトの名無しさん:2015/05/18(月) 15:33:55.56 ID:lIw4CyOJ
JavaScriptが20周年。開発者のBrendan Eich氏が過去と未来についてのスライドを公開
ttp://www.publickey1.jp/blog/15/javascript20brendan_eich.html

108 :デフォルトの名無しさん:2015/05/18(月) 17:37:17.88 ID:rf0kuBu1
>>107
たった10日で書いたのか。
通りでクソなはずだ。

109 :デフォルトの名無しさん:2015/05/20(水) 01:48:48.87 ID:zDiYcCDM
言語としてはかなりシンプルだったからな。
LexとYacc使っただろうし、スタックマシンな
バイトコードインタープリタはSchemeのインタープリタを
Cで書いたことがあれば難しくない。

コードを10日で書いたからクソというよりは、
書く前に言語仕様をきちんと練らなかったからクソなんだろう。

110 :デフォルトの名無しさん:2015/05/20(水) 05:27:02.66 ID:iajmjkjM
10日で書いたにしては良くできてるけど、もともとVBAみたいなものなのに、
後からいろいろ理屈を考えて素晴らしいものみたいに言いくるめようと
したのがいけなかったんじゃないの。

アプリに付属させるマクロだと思えば、納得の仕様だと思うけど。
元々そういうものなんだし。

111 :デフォルトの名無しさん:2015/05/20(水) 11:19:23.20 ID:0vsGwB+G
>>109
すまないが、ゴミをシンプルって言う風潮やめてくれるか?

112 :デフォルトの名無しさん:2015/05/20(水) 12:06:13.47 ID:D22K7RGs
ClojureScript使い始めたらJSのクソさが
気にならなくなってきた。

113 :デフォルトの名無しさん:2015/05/20(水) 12:18:11.33 ID:qzEPJuIN
誰でも10日で出来る作業なら
クソだろうさw

10日でとても出来ないような作業を
10日で作ったのならば、それは優秀ってことだよ。

優秀な人が作ったのだから、とても良く出来ている。

114 :デフォルトの名無しさん:2015/05/20(水) 14:27:44.16 ID:0vsGwB+G
>>113←こういうの権威主義の馬鹿っていうんだよねぇ。日本人に実に多い。

115 :デフォルトの名無しさん:2015/05/20(水) 15:12:28.11 ID:qzEPJuIN
どれだよ権威ってw
権威じゃなくて実力だろw

116 :デフォルトの名無しさん:2015/05/23(土) 05:06:34.47 ID:aWFfanUl
jsスレでdisるのもアレだけど
権威主義以外の何物でもない

10日で作ったのは凄いかもしれんが別に洗練されてもないしシンプルでもない
初期のjsって文字列演算、暗黙変換とか無駄に長いfunctionとか、
中途半端にvbやC++の真似もしてて、バージョン違いの挙動もあって普通にクソ
初期のを優秀とか言う奴はES6使わないで欲しい

本人はサブセット言語嫌いとかlisp嫌いとか好き勝手言ってるみたいだけど
素直にパクリ元のselfのサブセットを素直に実装すりゃよかったと思うわ

117 :デフォルトの名無しさん:2015/05/23(土) 08:57:54.91 ID:3bf42BAL
だいたい名前からしてクソだよ。
全然関係無いJavaパクってるんだし。

118 :デフォルトの名無しさん:2015/05/23(土) 10:54:12.24 ID:vTpQyjFi
>>116
お前こそ権威主義じゃねーかw
オリジナルは偉いんだ?w

119 :デフォルトの名無しさん:2015/05/24(日) 00:11:51.40 ID:hZNW9MV5
>>118
日本語読めないならそう言ってくれよな
噛み砕いて話してやるからさ

120 :デフォルトの名無しさん:2015/05/24(日) 13:15:55.75 ID:bCeKXRbu
>>119
じゃあどこが権威主義なのか
噛み砕いて説明してください。

その前に前提として権威主義とは何かを書いておきますね。

http://ja.wikipedia.org/wiki/%E6%A8%A9%E5%A8%81%E4%B8%BB%E7%BE%A9
> 権威主義(けんいしゅぎ)とは、権威に服従するという個人や社会組織の姿勢、思想、体制である[1][2]。権威主義の反対は個人主義や民主主義である。
> 政治学上の用法では、権威主義体制とは非民主的な体制の総称であり、通常は独裁、
> 専制、全体主義などを含むが、権威主義体制を民主主義体制と全体主義体制の中間とする立場もある[5][6]。

http://d.hatena.ne.jp/keyword/%B8%A2%B0%D2%BC%E7%B5%C1
> 権威(人を服従、強制させる力)に価値をおき、それに対して自己卑下や盲目的服従をする態度のこと。
> また逆に人にそれを要求する態度のこと。心理学的には、権威や伝統、社会的に価値のあると
> されているものを無批判に承認し、これに服従、依存し、融通が利かないパーソナリティを指す。

121 :デフォルトの名無しさん:2015/05/24(日) 15:11:00.39 ID:9Q9ph3Hr
オリジナルがえらいのではなくて
パクリ損ないでオリジナルより劣化してるのがクソ、
っていう単純な話だと思うのだが……

122 :デフォルトの名無しさん:2015/05/24(日) 18:48:24.27 ID:hZNW9MV5
>>120
10日で作業したというだけで優秀として
優秀な人、その人が作ったからスバラシイ

全然中身に言及してねえじゃんw
どこに権威主義以外の要素があるんだよw

123 :デフォルトの名無しさん:2015/05/24(日) 22:02:35.19 ID:bCeKXRbu
>>122
権威はどこにいったの?w

124 :デフォルトの名無しさん:2015/05/25(月) 17:36:12.90 ID:2/V0nnt+
>>121
まさかここまで使われるとは思ってなかったんだろうな

125 :デフォルトの名無しさん:2015/05/25(月) 18:03:08.64 ID:MD5bLCSX
>>116
ユーザが100万人ほどの言語を10日で作ってから言え

126 :デフォルトの名無しさん:2015/05/25(月) 21:15:36.88 ID:Pr0+1HdK
>>125
権威主義万歳!

127 :デフォルトの名無しさん:2015/05/25(月) 21:28:29.13 ID:Pr0+1HdK
流石に初期JSの規模で大変とか言ってるのは
インタプリタの作り方もわからない初心者だけだよな?

クソ言語でも普及したPHPと違って言語そのものの需要で使われたわけでもなし
JSが普及したのはウェブブラウザが先進的だったから

そもそも本人も公開してるのに何マンセーしてんだかw

128 :デフォルトの名無しさん:2015/05/25(月) 21:29:17.23 ID:Pr0+1HdK
公開 -> 後悔

129 :デフォルトの名無しさん:2015/05/26(火) 00:12:46.62 ID:xYtlptqc
>>127
オレもそう思うんだけどねえ。
Schemeのインタープリタ書いたことがあればさまえ難しくはない。

130 :デフォルトの名無しさん:2015/05/26(火) 15:21:59.38 ID:jJpgaPYe
学部レベルのインタプリタよりエロ動画サイト作る方が難しい

131 :デフォルトの名無しさん:2015/05/26(火) 18:58:13.73 ID:CP1OCp5D
JavaScriptライブラリのスレにも書いたのですが,過疎っていたのでこちらで質問させてください
openlayers3についてです

http://openlayers.org/en/v3.5.0/examples/kml-timezones.htmlをそのままコピーして
ローカルで実行したのですが,サンプルのようにTimezonesが表示されません(地図は表示されます)
kmlファイルはhttps://github.com/openlayers/ol3にあるdataフォルダをhtmlと同じ階層に設置しました
他のkmlファイルを読み込むサンプルも同様に動かないのですが何が原因でしょうか

132 :デフォルトの名無しさん:2015/05/27(水) 11:16:44.16 ID:XkCb2CMh
馬鹿には無理

133 :デフォルトの名無しさん:2015/05/28(木) 07:16:02.03 ID:4DphScwy
>>132
だからあなたには答えられないんですね。なるほど。

134 :デフォルトの名無しさん:2015/05/28(木) 07:59:14.48 ID:616UB9cr
>>133←答えられない上にコードも書けないアホ

135 :デフォルトの名無しさん:2015/05/28(木) 13:22:35.68 ID:E8n2j0BJ
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
url: 'timezones.kml',//url: 'data/kml/timezones.kml',

136 :デフォルトの名無しさん:2015/05/28(木) 17:23:07.74 ID:4ci5OfPn
>>131
普通に動く。timezones.kmlをhtmlと同階層に置いて>>135を書き換えても動く。

137 :デフォルトの名無しさん:2015/05/28(木) 19:02:19.37 ID:V96RG34r
>>135
>>136
ありがとうございます
IE,Opera,Chromeだと動かないのですが,firefoxだとサンプル通り動きました
これってコードにブラウザ依存の部分があるのでしょうか?
それともブラウザの設定の問題でしょうか?

138 :デフォルトの名無しさん:2015/05/29(金) 07:06:31.36 ID:hjMnAajE
>>137
firefox以外はデフォルトではローカルファイルへのアスセスが制限されているからでは?
http://tmlife.net/programming/javascript/how-to-chrome-ajax.html

139 :デフォルトの名無しさん:2015/05/30(土) 07:45:51.67 ID:xVK15s94
ローカルテストはサーバ立ててやるものだと思うが、fileスキームで実行してるのか

140 :デフォルトの名無しさん:2015/05/30(土) 08:33:00.97 ID:Rpgfw2oh
>>138
>>139
サーバたててやったらどのブラウザでも動きました
ありがとうございました

141 :デフォルトの名無しさん:2015/05/30(土) 10:26:22.21 ID:3Gf/DalK
最近やたらめったらモジュールに切り分けてたら共通部分の重複が酷いことになってた
現在のスコープ内にimport,requireできれば便利なんだが

142 :デフォルトの名無しさん:2015/05/30(土) 12:21:21.30 ID:skc6DNlZ
現時点でもやはりES3で書くべきですか?
ES5出てからもう何年も経ってるしObject.create()とか配列まわりの関数とか色々追加されてるのに使えないのが歯がゆいです。
ネット見てると結構ES5の機能使ってる人が多いですが、そういう方々はIE8とか切り捨ててるんですかね?

143 :デフォルトの名無しさん:2015/05/30(土) 13:40:15.04 ID:HkfQYaI5
>>142
サポートサイクルを見たらどうでしょう?
2016年1月まではIE8対応は切れません。

144 :デフォルトの名無しさん:2015/05/30(土) 13:41:11.94 ID:HkfQYaI5
IE8 でもpolyfillで何とかなる場面が多いとは思いますが

145 :デフォルトの名無しさん:2015/05/30(土) 14:06:06.57 ID:ebcCMrL3
>>142
lodash使ってる。なんとIE6以上から対応してる。

実装不可能なものを除いて、ES5で提供されている関数が提供されてる。
Object.create相当のメソッドもある。
https://lodash.com/docs#create

どうしてもES5だけでやりたいってわけじゃなく
ES5で提供された便利な関数を使いたいならlodashオススメ。
lodashにはES5よりも多くの機能が追加されてる。

146 :デフォルトの名無しさん:2015/05/31(日) 02:38:34.37 ID:474JDHci
>>143
ありがとうございます。
ぐぐってみたら2016年1月以降は最新版のIEしかサポートされないんですね。
こういうのを境界にして考えるのですね。勉強になりました。
polyfillというのはes-shimsとかのことですよね?Object.createに対応してないので選択肢から外れました。

>>145
ありがとうございます。今回は素のJSでやりたかったのでlodashは使えません><

147 :デフォルトの名無しさん:2015/05/31(日) 02:41:25.56 ID:474JDHci
でももうすぐES6が出るしキリが無いですね
ブラウザ対応状況とか考えるの諦めてlodashとかunderscoreとかそういうのに完全依存する方が正しいのかも

148 :デフォルトの名無しさん:2015/05/31(日) 08:20:05.87 ID:6IDXNIVy
>>146-147
Object.create はES3の範囲内で完全実装は出来ない為、制限付きを理解した上で polyfill を書く必要がある
lodash は forEach 等で ES5 互換でないコードが見受けられるので ES 標準を目指すのであればお勧めしない
コードを読む限りでは 仕様に忠実なライブラリではなく、独自の世界を構築するタイプのようだから

149 :デフォルトの名無しさん:2015/06/01(月) 15:26:03.49 ID:dTiEpsP/
underscoreって可読性低下しない?
_から始まるってのがそもそも論外なんだけど…
知らない人間が見たら何だコリャ?ふざけてんのか?
これを考えた奴は保守性を考慮しないオナニー馬鹿なのか?って思うだろ。

150 :デフォルトの名無しさん:2015/06/01(月) 16:19:05.72 ID:fqMWxMza
>>149
ま、普通使わない。
オナニーって言えばその通り。少なくとも個人的に使うのだったら文句言う
アレはないが、プロジェクトなんかでこんなもの使ってる奴いたら、排除する。

151 :デフォルトの名無しさん:2015/06/01(月) 16:49:15.47 ID:4t8ilUI7
>>149
> 知らない人間が見たら何だコリャ?ふざけてんのか?
それを言い始めたら、$.hogeってなんだ?ってことにもなる。

>>150
> ま、普通使わない。
以外と使われてるよ?

http://www.infoq.com/jp/news/2015/04/lodash-utility-library
> JavaScriptユーティリティライブラリのlodashがバージョン3.5に達して,npmパッケージリポジトリの中で
> 最も多く参照されるライブラリになった。もはや代用品などではなく,信頼できる選択肢のひとつだ。

http://matsukaz.hatenablog.com/entry/2014/04/09/082410 に上げられてるようなよく使う機能は、
オレオレ実装されるより、既知のライブラリのメソッド使って欲しい。

152 :デフォルトの名無しさん:2015/06/01(月) 17:05:38.13 ID:dTiEpsP/
javascript使いってエンジニアとして未成熟なのか文系が多いのか、
保守性を考慮しないのばっかりだよな。
多言語では保守性において禁忌とされている事を平気でやる
先人が築きあげたバグを排除するコツのようなものをを完全に無視してる
たぶん将来はjavascriptの仕様が整理されて、
jQueryとかunderscoreみたいな非直観的で腐ったキーワードを使うライブラリは完全非推奨になる。

153 :デフォルトの名無しさん:2015/06/01(月) 17:20:57.79 ID:4t8ilUI7
Javaの人かな

154 :デフォルトの名無しさん:2015/06/01(月) 17:24:57.76 ID:TGyjCQFp
hagedo

155 :デフォルトの名無しさん:2015/06/01(月) 19:51:34.16 ID:lFnhdSIE
>>152
だってJataScriptが使いにくいクソ言語じゃん。
細かいこと気にしてられないって、クソだから。

156 :デフォルトの名無しさん:2015/06/01(月) 19:59:11.62 ID:9HWSCI34
>>152
こういう関数の部分の保守性とかどうでもいいよw
単純に自分実装のライブラリに入れ替えれば済む話なんだから。

それより問題なのはフレームワークだ。
馬鹿が使うとフレームワークにガッチリ組み込まれて
別のものに変えるのがすごく大変になる。

157 :デフォルトの名無しさん:2015/06/01(月) 20:00:16.98 ID:9HWSCI34
>>151
> > ま、普通使わない。
> 以外と使われてるよ?

だよな。Node関連では一番使われているライブラリだったはず。
何処かにデータが有ったはずなんだが。

好き嫌いは個人の好みとして、一番使われているという
事実を知らないとしたら、モグリだろうw

158 :デフォルトの名無しさん:2015/06/01(月) 20:02:41.82 ID:9HWSCI34
あったあった。この記事だ。

lodash, あなたが既に使っているJavaScriptライブラリ
http://www.infoq.com/jp/news/2015/04/lodash-utility-library

JavaScriptユーティリティライブラリのlodashがバージョン3.5に達して,
npmパッケージリポジトリの中で最も多く参照されるライブラリになった。
もはや代用品などではなく,信頼できる選択肢のひとつだ。


何の根拠もない「使われてない」は無視していいよ。
だって、本人が無知だから、使われていることを「知らない」という
状態でも、自分の知ってる小さな経験だけから
使われてないって発言するだろうからさw

159 :デフォルトの名無しさん:2015/06/01(月) 20:33:19.40 ID:qMAgmJxR
そんなことよりもNode.jsのREPLでアンダースコアが使えないのはどうすればいいの?

REPL単体で使うぶんには別の名前を使っても気にならないけど、.loadで読み込むファイルでアンダースコアが
使われていた場合は、ファイルを書き換えなければならず、かなり気持ちが悪い

こんな定番のライブラリで、Node.jsのことを考慮していない名前をデフォルトにするとも思えないから、
何か解決策はあると思うんだけど…

160 :デフォルトの名無しさん:2015/06/01(月) 20:42:18.22 ID:e+Q3qVuq
>>149
perlのデフォルト演算子($_)の名残だと思ってた

161 :デフォルトの名無しさん:2015/06/01(月) 20:49:28.66 ID:9HWSCI34
>>159
グローバル変数とローカル変数の違いわかってる?

REPLで使うのはグローバル変数の_。
ローカル変数の_(lodash)が名前かぶっても
何の問題もないんだが。

名前かぶってわかりづらいというのなら、
var i だってずいぶん被ってるはずなんだが。

162 :デフォルトの名無しさん:2015/06/01(月) 20:52:38.62 ID:9HWSCI34
>>160
いやー、普通、_で思い出すのは、
C言語などで広く使われてる多言語の仕組みである
GetTextの_関数でしょw

あれだって、_で始まる関数なわけだけど、
何だこりゃの前に、普通GetText思い出すよね?

>>149は無知なんじゃないかって思うだけなんだが。

163 :デフォルトの名無しさん:2015/06/01(月) 21:51:26.69 ID:dTiEpsP/
>>162
_で始まるって言い方はおかしかったな。
C言語系の_は名前が続くから識別に問題ないが、_だけというのがクソだって話
これを初めて拝んだとき、_だけを変数名にするなんて一体このバカはどんな教育を受けているんだと思ったわ。

164 :デフォルトの名無しさん:2015/06/01(月) 22:48:12.23 ID:VQX8/s75
>>163
うん。それでgettextは、_ だけの
関数名なんだが、恥の上塗りしてどうするの?

165 :デフォルトの名無しさん:2015/06/01(月) 22:56:29.23 ID:qMAgmJxR
>>161
流石にそれくらいは分かってるけど、UnderscoreやLodashは普通グローバルに読み込むものじゃないの?
まさか関数ごとにrequireを書くわけでもあるまいし、少なくともvar iとは次元が違うものだと分かると思うんだけど…

166 :デフォルトの名無しさん:2015/06/01(月) 22:59:26.58 ID:VQX8/s75
lodash使うアプリでグローバルなんて聞いたことがない。

普通nodeでライブラリを使うときは、
ローカル変数に、略

いわんでもわかるだろ?
知ってるならなw

167 :デフォルトの名無しさん:2015/06/01(月) 23:00:05.05 ID:VQX8/s75
訂正

lodash使うアプリでグローバルなんて聞いたことがない。
node使うアプリでグローバル変数なんて聞いたことがない。

168 :デフォルトの名無しさん:2015/06/01(月) 23:01:04.60 ID:e+Q3qVuq
CakePHPなんかの__()ならともかく、underscore.jsでGetTextの方の_を、
どうすれば連想できるのかわからない

169 :デフォルトの名無しさん:2015/06/01(月) 23:01:38.04 ID:dTiEpsP/
>>164
そんなどうでもいい知識はどうでもいい

170 :デフォルトの名無しさん:2015/06/01(月) 23:03:51.00 ID:dTiEpsP/
_を変数名にするのはゴミだってのは100人に聞いて99人が納得する話。
ほんとjQueryといい、javascriptのライブラリ作ってる奴は基地外だわ。

171 :デフォルトの名無しさん:2015/06/01(月) 23:06:02.95 ID:qMAgmJxR
>> 166,167
何が言いたいのか分からんのだけど、ファイルの頭で
var _ = require('lodash'); // またはunderscore
とするのは十分、一般的な使い方じゃないか?

適当に検索したサンプルコードでも、ファイルの頭でrequireをしているものがほとんどだし

172 :デフォルトの名無しさん:2015/06/01(月) 23:08:20.48 ID:e+Q3qVuq
>>170
デフォルトに近い機能を誰もタイプしたくないから

173 :デフォルトの名無しさん:2015/06/01(月) 23:08:27.29 ID:VQX8/s75
>>171
はい、だからファイルの頭で
var _ = require('lodash'); // またはunderscore
とローカル変数に代入してるって言ってるわけですが。

174 :デフォルトの名無しさん:2015/06/01(月) 23:12:31.08 ID:qMAgmJxR
>>173
それで>>159に戻るんだが、そのファイルをREPLから.loadで読み込むと名前が衝突して困るという話なんだが
何かおかしいこと言ってるかな?

175 :デフォルトの名無しさん:2015/06/01(月) 23:16:47.51 ID:VQX8/s75
>>174
それは作り方が悪いだけだろう。
自分で作ったものを自分でロードして
問題が起きたって騒いでいるだけ。

176 :デフォルトの名無しさん:2015/06/01(月) 23:18:28.56 ID:e+Q3qVuq
>>174はqiitaのポストへの巧妙なステマ

177 :デフォルトの名無しさん:2015/06/01(月) 23:18:37.37 ID:VQX8/s75
ヒント

普通はREPLでライブラリを読み込むときはrequireを使う。

178 :デフォルトの名無しさん:2015/06/01(月) 23:20:50.21 ID:qMAgmJxR
>>175
だから、どのように作り方が悪いのかを>>159で聞いているわけ

>>176
何故qiitaが出てくるの?


なんか話が通じない人多すぎ…

179 :デフォルトの名無しさん:2015/06/01(月) 23:20:51.76 ID:e+Q3qVuq
ttp://stackoverflow.com/questions/5691901/using-the-underscore-module-with-node-js

180 :デフォルトの名無しさん:2015/06/01(月) 23:21:19.02 ID:dTiEpsP/
>>172
underscoreというものの存在を知ってる人間じゃないと、おふざけか本気なのか理解不能
知らない人でも直観的にわかるようにするべき。
_.なんていかにも意味ありげに書かれてたら、知らない人間はjavascriptに新しい構文でも出来たのかと勘違いする。

181 :デフォルトの名無しさん:2015/06/01(月) 23:22:02.34 ID:qMAgmJxR
>>177
それは別な名前を使うってことじゃないの?
それなら>>159で書いたよ

182 :デフォルトの名無しさん:2015/06/01(月) 23:23:01.97 ID:VQX8/s75
>>178
> だから、どのように作り方が悪いのかを>>159で聞いているわけ

簡単な話。

.loadでAというファイルとBというファイルの
二つを読み込んだ時を考えればいい。

同じ変数を使っていれば、混乱が起きる。
だから.loadなんかを使っては駄目だ。

REPLはAというファイルの前に
別のファイルを読み込んでいると考えればいい。

nodeの標準に合わせてrequireで読み込め。
.loadは簡易なツールにすぎない。

183 :デフォルトの名無しさん:2015/06/01(月) 23:23:03.40 ID:e+Q3qVuq
>>180
プログラマなら皆、知ってるから

184 :デフォルトの名無しさん:2015/06/01(月) 23:23:55.32 ID:VQX8/s75
>>180
_.なんていかにも意味ありげに書かれてたら、知らない人間は
普通調べる

185 :デフォルトの名無しさん:2015/06/01(月) 23:29:50.29 ID:qMAgmJxR
>>182

> .loadでAというファイルとBというファイルの
> 二つを読み込んだ時を考えればいい。
これに関しては自分の場合は混乱が起きたことは無いな
REPLで必要になるのは常に新しくロードされたものだから

> nodeの標準に合わせてrequireで読み込め。
.> loadは簡易なツールにすぎない。
その簡易なツールとしての使い方を聞いたつもりだが、まぁうまい方法は無いってことで
答えてくれたことは感謝するよ、ありがとう

186 :デフォルトの名無しさん:2015/06/02(火) 07:22:03.36 ID:ex2Jk34L
>>183-184
こんな記述を許すなんて、webプログラマはどうかしてるわ
C++等の堅牢な言語が理解できないからスクリプトに逃げたってのもあるのかねぇ

187 :デフォルトの名無しさん:2015/06/02(火) 07:56:44.99 ID:ex2Jk34L
javascriptって手作業感のあるかなりアナログな言語だよな。
コンパイルすれば型間違いやスペルミスを全部チェックしてくれるC++の方が楽だわ。

188 :デフォルトの名無しさん:2015/06/02(火) 08:03:09.37 ID:rgUwgwJK
デフォルトで存在しなければならないような機能の構文は
可能な限り軽くしたい、というだけの話なのだが、
まあ、キチガイみたいだし、相手にする必要もなさそう。

189 :デフォルトの名無しさん:2015/06/02(火) 08:07:16.76 ID:rgUwgwJK
>>187
>コンパイルすれば型間違いやスペルミスを全部チェックしてくれるC++の方が楽だわ。

静的検査なのに型安全じゃないクソみたいな型システム自慢されても……

190 :デフォルトの名無しさん:2015/06/02(火) 10:18:05.55 ID:JpMYfsQK
>>186
$と_を選択したjQueryとundersocreの作者は天才だと思うぞ

191 :デフォルトの名無しさん:2015/06/02(火) 11:02:57.63 ID:fIlyBYj2
>C++等の堅牢な言語が理解できないからスクリプトに逃げたってのもあるのかねぇ

ここ笑うところでOK?

192 :デフォルトの名無しさん:2015/06/02(火) 11:03:56.96 ID:Liw06aa4
C++が型安全じゃないってどういうこと?

193 :デフォルトの名無しさん:2015/06/02(火) 11:47:29.34 ID:JpMYfsQK
>>192
検索してみた

『型安全性とは何か』
http://postd.cc/what-is-type-safety/

194 :デフォルトの名無しさん:2015/06/02(火) 12:47:31.17 ID:qfQ5Cs59
スクリプト言語なら_とかもありだと思うよ
直感的に理解不能なのはむしろC言語のテクニカルすぎるポインタ操作とか、処理系依存処理

195 :デフォルトの名無しさん:2015/06/02(火) 17:49:06.36 ID:RKN2cQRO
>>190
思わない。逆にショボッと思うだけ。

196 :デフォルトの名無しさん:2015/06/02(火) 17:53:04.66 ID:4q1LDLUC
Yes, I do.

197 :デフォルトの名無しさん:2015/06/02(火) 20:48:01.61 ID:80AN9G/c
>>195
理由は?

198 :デフォルトの名無しさん:2015/06/02(火) 20:57:50.64 ID:ex2Jk34L
_なんて使わないで堂々と大文字でUNDERSCORE.でいいのに
面倒くさいから_にしたなんていっても、
UNDERSCOREのようなループ処理は他の頻出するキーワードに比べてそう頻繁に使うもんじゃないから、
UNDERSCOREと打ち込むくらい苦にはならない
むしろ見ただけでUNDERSCOREとわかるメリットのほうが大きい。

199 :デフォルトの名無しさん:2015/06/02(火) 20:58:44.32 ID:80AN9G/c
>>190
> $と_を選択したjQueryとundersocreの作者は天才だと思うぞ

天才じゃなくてズルいと思ったな。
そんな特等席を取るなんてw

でもjQueryとlodashなら許せるよ。

DOM操作目的が多いJavaScriptで標準よりも
優れたライブラリに仕上げたjQueryは高く評価できるし。

JavaScriptという言語自体に足りない(そして他の言語にはある)
基本的な機能を備えたlodashも一文字名前空間を与える価値はある。

これ以外に一文字を与える価値が有るものなんてまず無いだろう。
(あえて言うのなら多言語のためのgettextだろうね)

http://ja.wikipedia.org/wiki/Gettext
> まず、gettextが利用されるようソースコードの修正を行なう。これはほとんどのプログラミング言語において、
> ソースコード中の文字列がまずgettext関数へ渡されるよう、文字列をラップしていく作業となる。
> 読みやすさやキータイプの手間を省くため gettextには通常 _ のエイリアスが付けられる。C言語では、
>
> printf("My name is %s.\n", my_name);
>
> を以下のように変更する:
>
> printf(_("My name is %s.\n"), my_name);

200 :デフォルトの名無しさん:2015/06/02(火) 21:00:08.82 ID:80AN9G/c
>>198
開発効率と可読性が悪いだろw

なんで多く出てくるものに、
そんなに長い情報量を与えないといけないんだ?

圧縮の基本だぞ。
多く使うものに短いビットを割り当てるのは。

201 :デフォルトの名無しさん:2015/06/02(火) 21:08:24.71 ID:ex2Jk34L
>>200
そんなに画面を占領するほど出てこないだろ。

202 :デフォルトの名無しさん:2015/06/02(火) 23:09:26.72 ID:tDj3/Qmg
圧縮率が気になる人は var, a, b, c; でも使えばいい
_ が気にならないなら Java でも PHP でも同じように使えばいい
それが誰が見てもコードの意図を理解できるものであると思うのならな

203 :デフォルトの名無しさん:2015/06/03(水) 08:42:27.59 ID:tNzh/NJ7
> それが誰が見てもコードの意図を理解できるものであると思うのならな

ん? 馬鹿が見てもわかるコードなんてあると思うのか?
何の知識も持たない奴が、forとか見て、繰り返しだな。なんてわかると思うのか?

知識があるプログラマが見てわかれば十分だろw

204 :デフォルトの名無しさん:2015/06/03(水) 09:13:26.09 ID:L99ZSHzZ
>>203←こういう極論振りかざす馬鹿はプロジェクトから最初に外したいねぇ♪

205 :デフォルトの名無しさん:2015/06/03(水) 09:32:01.02 ID:HnGZ0ASm
そもそもjQueryの根幹を成していたcssQuery作者はJSに習熟していたから$なんて使わなかったが、
当時JS初心者が浅い知識で無茶苦茶に作ったprototypejsが流行っていてユーザーがそこで$にすっかり慣れてしまっていたから、彼らを取り込もうと図った時に敢えて$を使った。

206 :デフォルトの名無しさん:2015/06/03(水) 09:41:02.46 ID:HnGZ0ASm
jQueryリリース日から知っているのって、俺以外で何人いるかな、まあ、ライバル心が凄くて、露骨に他のライブラリーを威圧する画像を貼っていて苦笑ものだった。
実際、query api がなかった当時において、飛び抜けた存在だった。
誰も知らないだろうが、既に消した10年ほど前のブログで俺が日本で最初にjQueryにお墨付きを出したので、変な責任感があって、今や粗大ゴミと化したjQueryを徹底的に駆除しなきゃならないと思っている。

207 :デフォルトの名無しさん:2015/06/03(水) 09:53:38.81 ID:L99ZSHzZ
>>205
今じゃすっかり死に絶えたね prototype.jsは

未だに$使ってる奴は、PHPでもやってろって思うね。

208 :デフォルトの名無しさん:2015/06/03(水) 09:53:42.15 ID:HnGZ0ASm
どうでもいいが、underscorejsはグローバルで名前がかち合わないよう自動処理してるだろ。だから_にこだわりも何もないよ、あれは。あの作者はさすがだなと思う。

209 :デフォルトの名無しさん:2015/06/03(水) 10:04:47.49 ID:HnGZ0ASm
jQueryでみんなが慣れてしまったメソッドチェーンはOOPであるJSならではの妥協の産物であって決して素敵な何かではない。

210 :デフォルトの名無しさん:2015/06/03(水) 17:34:44.34 ID:/Ca0vDfD
> jQueryでみんなが慣れてしまったメソッドチェーンはOOPであるJSならではの妥協の産物であって決して素敵な何かではない。

メソッドチェーン便利じゃん
メソッドチェーンを否定するなら、代わりに何を推すのだろうか

211 :デフォルトの名無しさん:2015/06/03(水) 17:50:56.37 ID:oCZofESS
CoffeeScript

212 :デフォルトの名無しさん:2015/06/03(水) 21:53:47.03 ID:tNzh/NJ7
>>206
> jQueryリリース日から知っているのって、俺以外で何人いるかな、まあ、ライバル心が凄くて、露骨に他のライブラリーを威圧する画像を貼っていて苦笑ものだった。

知ってるも何も、Internet Archiveに残ってるよ。
その画像ってどれのこと?

https://web.archive.org/web/20060203025710/http://jquery.com/

213 :デフォルトの名無しさん:2015/06/03(水) 21:56:52.15 ID:tNzh/NJ7
>>209
jQueryでみんなが慣れてしまったメソッドチェーンは
jQueryができるより前から知っていたが、はて?

214 :デフォルトの名無しさん:2015/06/04(木) 07:09:21.45 ID:p4ZTcGym
そもそも、$ や _ の話にメソッドチェーンは関係なかろう

215 :デフォルトの名無しさん:2015/06/04(木) 07:56:18.16 ID:0Z7pWiJ+
ただのライブラリの話を持ち込まれてもな

216 :デフォルトの名無しさん:2015/06/04(木) 11:41:14.80 ID:sc3w8p67
vue.js でelを指定しない時にHTMLを生成できるって書いてある記事を見かけたのだけど、どうやればいいんだ?

217 :デフォルトの名無しさん:2015/06/04(木) 15:50:39.91 ID:LzIda4YJ
そこの記事書いた人に聞けよゆとり

218 :デフォルトの名無しさん:2015/06/04(木) 16:48:24.05 ID:TldR44zJ
本人乙

219 :デフォルトの名無しさん:2015/06/04(木) 17:08:20.45 ID:JWskV460
まあ名前付けが傲慢な感じはあるね
prototypeとかqueryとかnodeとかbootstrapとか、
一般的なコンピュータ用語になんでもjs付ければ許されるのかと

ここ5年くらい、Web屋の無知と傲慢が招いた名前空間の汚染が激しいように思う

220 :デフォルトの名無しさん:2015/06/04(木) 17:16:37.66 ID:yVQOALuO
>>219
> ここ5年くらい、Web屋の無知と傲慢が招いた名前空間の汚染が激しい

という無知

221 :デフォルトの名無しさん:2015/06/04(木) 18:11:41.00 ID:JWskV460
>>220
おっWeb屋だ、元気?

ところでv8をビルドするときに使う
bootstrapスクリプトの機序をどうやって検索したらいいか教えてくれよw

222 :デフォルトの名無しさん:2015/06/04(木) 21:53:09.33 ID:PemmKaGK
>>221
v8のビルド方法で検索すればいいんじゃね?

検索したら、How to Download and Build V8っていうのが見つかったけど。
https://developers.google.com/v8/build?hl=ja

223 :デフォルトの名無しさん:2015/06/04(木) 23:15:35.68 ID:U3atrZZO
>>219
世の中の大半は、おまえより生産的で知識豊富な人たちが開発したと思ってるけどね

224 :デフォルトの名無しさん:2015/06/05(金) 07:38:59.00 ID:DEUjZ497
>>223
そういう話はキッチリソースつけて、話してくれや。

225 :デフォルトの名無しさん:2015/06/05(金) 09:03:32.52 ID:P0ImBG10
キッチ&リリース

226 :デフォルトの名無しさん:2015/06/07(日) 07:11:03.31 ID:ohZIkVP1
ま、ウェブ屋の大半が馬鹿なのは本当だろう
巨大なページに普通のjquery適用させて重い重い言ってるのよく見るしな

227 :デフォルトの名無しさん:2015/06/07(日) 10:09:01.52 ID:QDivtYyn
中古のスマホやタブレットでデザイナーに作られたようなjQuery満載の糞ページを表示させると電力不足を引き起こされてバッテリー残量が正確に認識されなくなってOSが緊急終了させられる。
今やスマホどころかタブレットもバッテリー内蔵で交換は困難/不可能だからバッテリーが寿命になっても使い続けられている端末はいくらでもある。

228 :デフォルトの名無しさん:2015/06/07(日) 10:38:19.95 ID:yTv0X04Z
はいはい

229 :デフォルトの名無しさん:2015/06/07(日) 11:28:19.29 ID:J7/rKSpK
>>226
とにかく書き捨ての糞プロジェクトが増えた
こんな流れはGoogleがつくった感じする

230 :デフォルトの名無しさん:2015/06/07(日) 12:55:15.14 ID:+aAn4ks1
誰かのせいにして安心するのは間違ってる
それは作った当人らの責任だろ

231 :デフォルトの名無しさん:2015/06/07(日) 21:23:07.05 ID:J7/rKSpK
詐欺業者が横行してて
姉歯的案件だらけだよ
年金記録流出も起こるべくして起きた

232 :デフォルトの名無しさん:2015/06/08(月) 02:32:14.37 ID:DLynV3iC
なんだお前ら生理か?

233 :デフォルトの名無しさん:2015/06/08(月) 04:59:15.44 ID:TkpGbpl3
ソフトバンクテレコム()

234 :デフォルトの名無しさん:2015/06/17(水) 17:09:08.15 ID:FiJHYwC6
関係無いけど久しぶりにJSLint使おうと思ったら随分変わってるのな
つーか何で x /= 3; でストップするんだ?わけわからんのだが

235 :デフォルトの名無しさん:2015/07/02(木) 17:04:18.93 ID:p+4VzYpK
他人が作ったコードをメンテすることになってJSDocアノテーションされてたので
ドキュメント化しようという話になった
開発時にはがJSDoc Toolkit(https://code.google.com/p/jsdoc-toolkit/)を使っていたようなのだが
それはすでにサポート終了してテンプレートも消えていた

それでJSDoc3(https://github.com/jsdoc3/jsdoc)を試しているのだがデフォルトのテンプレートが
どうにも満足のいかないものだったので、テンプレートをいくつか探して試した
なかには not found のエラーを出すものがあり、そろそろ疑問に感じてきた

それで JSDoc を jsdoc -T としてテスト実行してみたところ大量の not found
えっ? テストしてないでリリースしてるの? それともこちらの環境の問題?
ちなみに Windows 7 環境で同梱のバッチで実行してるのだけれども
java 上で動くのだからその辺は一緒のはず?
javaランタイムのバージョン?

もし Windows 上で JSDoc3 を使っている方がいたら
安定して動作している環境を教えてほしい

236 :デフォルトの名無しさん:2015/07/02(木) 17:09:48.72 ID:eJl3FSc8
>>235
$ git clone https://github.com/jsdoc3/jsdoc
Initialized empty Git repository in /home/hoge/src/jsdoc/.git/
remote: Counting objects: 16429, done.
remote: Total 16429 (delta 0), reused 0 (delta 0), pack-reused 16429
Receiving objects: 100% (16429/16429), 16.16 MiB | 377 KiB/s, done.
Resolving deltas: 100% (8177/8177), done.
$ cd jsdoc/
$ ./jsdoc -T
Running tests...
.....(略)....

Finished in 4.993 seconds
1163 tests, 2965 assertions, 0 failures

.....(略)....

Finished in 0.054 seconds
33 tests, 60 assertions, 0 failures

237 :デフォルトの名無しさん:2015/07/02(木) 17:10:25.70 ID:eJl3FSc8
あ、これCentOS 6.6ね。

238 :デフォルトの名無しさん:2015/07/02(木) 17:11:59.32 ID:eJl3FSc8
ちなみに、
$ java -version
openjdk version "1.8.0_45"
OpenJDK Runtime Environment (build 1.8.0_45-b13)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)

239 :デフォルトの名無しさん:2015/07/02(木) 17:18:31.81 ID:p+4VzYpK
同じ手順を Windows 上の Git Bash にて行ってみた

$ git clone https://github.com/jsdoc3/jsdoc
Cloning into 'jsdoc'...
remote: Counting objects: 16429, done.
remote: Total 16429 (delta 0), reused 0 (delta 0), pack-reused 16429
Receiving objects: 100% (16429/16429), 16.16 MiB | 1.17 MiB/s, done.
Resolving deltas: 100% (8177/8177), done.
Checking connectivity... done.
Checking out files: 100% (620/620), done.

$ cd jsdoc/
$ ./jsdoc -T
js: exception from uncaught JavaScript throw: Error: Module "c:/Users/xxxxxx/Documents/GitHub/jsdoc/jsdoc.js" not found.

うわーん

240 :デフォルトの名無しさん:2015/07/02(木) 17:20:04.04 ID:p+4VzYpK
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode)

です

241 :デフォルトの名無しさん:2015/07/02(木) 17:21:39.94 ID:eJl3FSc8
>>239
Windowsは、jsdoc.cmdを実行するみたいだよ。

ただ、俺には理解不能なエラーが出た。
Javaとか知らんし。

> $ .\jsdoc.cmd -T
> Running tests...
> org.mozilla.javascript.EcmaError: ReferenceError: "self" is not defined. (file:/C:/Temp/jsdoc/node_m
> odules/bluebird/js/main/captured_trace.js#464)

242 :デフォルトの名無しさん:2015/07/02(木) 17:34:40.81 ID:p+4VzYpK
やっぱ Linux環境を用意しないとダメなんかなあ
ただテストではエラー出るけど実際に使ってみた際にはエラーは出ないんだよなあ

テンプレートはデフォルトと
https://github.com/Nijikokun/minami
https://github.com/davidshimjs/jaguarjs-jsdoc
はエラー無しで通った

https://github.com/bvalosek/jsdoc3-bootstrap
https://github.com/terryweiss/docstrap
https://github.com/DBCDK/jsdoc3Template
はダメだった

243 :デフォルトの名無しさん:2015/07/02(木) 17:43:03.98 ID:eJl3FSc8
Macでもやってみた。
3年位使ってたけど、Java入ってないし。JDKのインストール方法をググる所から始めた。

Web開発にMac使ってる人が多いのは、こういうところかもね。

$ ./jsdoc -T
Running tests...
....(略)...

Finished in 3.486 seconds
1163 tests, 2965 assertions, 0 failures

....(略)...

Finished in 0.024 seconds
33 tests, 60 assertions, 0 failures

244 :デフォルトの名無しさん:2015/07/02(木) 18:58:45.62 ID:p+4VzYpK
あとでちゃんと JDK 入れてみるか

245 :デフォルトの名無しさん:2015/07/17(金) 23:16:41.01 ID:GZ2lmC/i
ttp://www.bluefoun.pos.to/games/howto/htimg.html
ここに出てくる関数gameBodyって意味あんのか・・・?
これ書いただけじゃ何も実行できんぞ

246 :デフォルトの名無しさん:2015/07/17(金) 23:24:31.53 ID:XR8NxmBX
はーい今日のおバカさん↑登場

247 :デフォルトの名無しさん:2015/07/24(金) 23:57:05.40 ID:QlYyU5j9
迷子なんでここでいいかな?
cordova(phonegap)で躓いてるんだけど、専用スレが見当たらない
誘導plz

248 :デフォルトの名無しさん:2015/07/25(土) 00:05:32.97 ID:385UensT
そもそもフレームワークスレがないんだわ
自分で建ててもいいんじゃない

249 :デフォルトの名無しさん:2015/07/26(日) 00:45:58.44 ID:Nu2ySp1+
webアプリの伝票を表示する画面のHTMLで、テーブルタグでエクセル方眼紙作ってあった
列とか必要以上に多くて無駄にセルの結合してあった

250 :デフォルトの名無しさん:2015/07/26(日) 00:46:27.27 ID:Nu2ySp1+
gbk

251 :デフォルトの名無しさん:2015/07/26(日) 08:27:53.84 ID:lKG+wP//
>>249
すごく重そうなサイトだなーw

252 :デフォルトの名無しさん:2015/08/02(日) 18:40:44.98 ID:mqZtRy/B
数字の1と文字の1が一致して笑った。
カス言語すぎる。

253 :デフォルトの名無しさん:2015/08/02(日) 18:45:01.04 ID:dTRZmQiN
たしかperlも一致してた気がする

254 :デフォルトの名無しさん:2015/08/02(日) 19:22:32.84 ID:sI4u8psA
=== とか !== を知らないのだろうか?

255 :デフォルトの名無しさん:2015/08/02(日) 19:23:25.05 ID:ea/y5J7a
JSは互換を安易に切れないからな
残りカスのような変な仕様は山ほどある

256 :デフォルトの名無しさん:2015/08/02(日) 19:30:32.53 ID:qmwBoa+Z
>>249
もしかしてマジでEXCELでデザインしたものを変換してるのかもな

257 :デフォルトの名無しさん:2015/08/02(日) 19:34:25.89 ID:56YeXZNf
===使わないとか狂ってるな
カス過ぎる

258 :デフォルトの名無しさん:2015/08/02(日) 19:37:57.46 ID:qmwBoa+Z
むしろ==の使いどころがよくわからん

259 :デフォルトの名無しさん:2015/08/02(日) 19:41:23.07 ID:mqZtRy/B
じゃあ、==の存在意義はなんだよ

260 :デフォルトの名無しさん:2015/08/02(日) 19:49:47.26 ID:dTRZmQiN
explicit宣言で==がsyntaxerrorになったりせんのけ

261 :デフォルトの名無しさん:2015/08/02(日) 20:51:00.19 ID:j05l/s8s
変数に型がない言語ではどうしても、
== と === 相当の機能が必要になる。
変数に型がない言語では全て同じ。

262 :デフォルトの名無しさん:2015/08/02(日) 21:47:56.95 ID:sI4u8psA
ID:mqZtRy/B は素直に静的な型宣言を必要とするコンパイル言語を使っとけ

263 :デフォルトの名無しさん:2015/08/02(日) 22:13:12.22 ID:dTRZmQiN
CoffeeScriptおすすめですお

264 :デフォルトの名無しさん:2015/08/02(日) 22:15:15.51 ID:j05l/s8s
言語としては悪くないが、
将来性として悪い。

BabelなどでES6が使えるようになった今、
CoffeeScriptの役目は終わった。
優位性が無くなったのだから。

CoffeeScriptはES6をつくるための
犠牲になったのだ。

265 :デフォルトの名無しさん:2015/08/02(日) 22:36:51.46 ID:+B7/KlLQ
>>259
null == undefinedがありますので

266 :デフォルトの名無しさん:2015/08/02(日) 23:11:50.36 ID:Q2JrvHPp
>>260
JSLint使っとけ

267 :デフォルトの名無しさん:2015/08/03(月) 05:17:31.66 ID:M3KvY+a0
>>261
luaならそんなクソ仕様ないけど

268 :デフォルトの名無しさん:2015/08/03(月) 20:20:01.84 ID:OzQ4PZKS
>>267
でもこういうクソ仕様はありますね。

2.2.1 - 変換
Luaは文字列と数値を実行時に自動的に変換する。 すべての数学演算は、
文字列に適用されると、一般的な変換ルールに基づいてその文字列を数値に変換しようとする。


ただし、例外があって


2.5.2 - 関係演算子
2.2.1 の変換ルールは等価比較には適用されない。 そのため、"0"==0 は false に評価され、
t[0] と t["0"] は異なったテーブルエントリを示す。


一貫性がない。

269 :デフォルトの名無しさん:2015/08/04(火) 11:19:43.50 ID:Wrx2TKJj
NaN !== NaN は他言語でもそうなのかな
これだけは直感的でないと感じてしまう

270 :デフォルトの名無しさん:2015/08/04(火) 20:47:31.71 ID:LaebqzUe
>>269
Rubyも同じ
http://docs.ruby-lang.org/ja/search/class:Float/version:2.0.0/query:NAN/
> ただし、NaN 同士の比較では常に false を返します。

Pythonでも同様
http://d.hatena.ne.jp/yosshi71jp/20090920/1253415431
> nanは非数(not a number)、infは無限(infinity)。通常、
> この表示になってしまったら、これにどんな演算を行っても、結果はもう変わらない。

PHPでも
PHP 型の比較表
http://php.net/manual/ja/types.comparisons.php
> この値を、自分自身を含む他の値と比較すると、緩い比較であっても厳しい比較であっても
> 結果は FALSE となります (つまり NAN != NAN であり NAN !== NAN であるということです)。

さらにPerlでも
http://perldoc.jp/docs/perl/5.6.1/perlop.pod
> NaN はどの値に対しても(NaN に対してでさえも) "<", "==", ">", "<=", ">=" の
> いずれも成立しないので、これらは全て偽となります。

SQLでも似た仕様がある。

NULL は NULL と等しくない!?
http://blog.livedoor.jp/i_am_best/archives/7845603.html

271 :デフォルトの名無しさん:2015/08/04(火) 20:48:25.72 ID:LaebqzUe
>>269
> NaN !== NaN は他言語でもそうなのかな
> これだけは直感的でないと感じてしまう

直感的じゃないという意見はわからなくもないが、
他言語でも同じなわけで、それを知らないということは、
君の経験不足ってのがよく分かるねw

272 :デフォルトの名無しさん:2015/08/04(火) 20:50:43.13 ID:LaebqzUe
ついでに調べた。

C#も同じ
http://d.hatena.ne.jp/tgk/20061109/1163069036

Javaも同じ
http://d.hatena.ne.jp/Kappuccino/20080805/1217905115

C言語でも同じ
http://www.c-tipsref.com/words/not_a_number.html
> NaN を使った算術演算の結果は常に NaN になる

273 :デフォルトの名無しさん:2015/08/04(火) 21:03:34.53 ID:SiN2Ipli
a = NaN, b = NaN
aとbを比較しようとしたときにどういう問題が発生するか考えれば納得出来るだろう

274 :デフォルトの名無しさん:2015/08/04(火) 21:18:44.87 ID:LaebqzUe
>>273
わかりづらいw

var a = "a";
var b = "b";

parseInt(a) == parseInt(b)

これがtrueだとおかしいだろ?
ぐらいのことを言えよ。

275 :デフォルトの名無しさん:2015/08/04(火) 21:25:12.39 ID:MmQrnXHp
は?
NaN という状態の意味を考えろよ?
言語でしか考えてなくてコンピュータで処理するってこと微塵も考えてないだろ?

276 :デフォルトの名無しさん:2015/08/04(火) 21:34:13.30 ID:SiN2Ipli
>>274
分かろうとする努力が大切

277 :デフォルトの名無しさん:2015/08/04(火) 21:38:57.14 ID:eMvPKlqH
NaNでそーなるのっ!? (ジャンプ)

278 :デフォルトの名無しさん:2015/08/04(火) 21:56:56.46 ID:2w4CQfTI
>>271
他言語の経験がないのは認めるけど、煽りとかどうでもいいから
NaN !== NaN が成立する合理的な理由があるなら教えて欲しい
「他言語でもそうだから」という教科書的な答えでは納得できない

>>273-274
その比較はする必要性を全く感じないので、そのコードの目的がわからない
null, undefined は等価なのに NaN だけ特別扱いする理由がわからない

279 :デフォルトの名無しさん:2015/08/04(火) 22:14:51.15 ID:SiN2Ipli
>>278
nullやundefinedは演算の結果でなるものではない

280 :デフォルトの名無しさん:2015/08/04(火) 22:56:02.17 ID:MmQrnXHp
>>278
null や undefined は言語上で特定の意味を与えられた値にすぎない
NaN はそれとは全く違う
不正な演算によって生じた結果を表す状態で、これは言語ではなくてコンピュータの仕組みから定義されているもの
「不正な値」だと理解してもらっていい
不正な値なので大小比較自体が成立しないのでその結果も不明となる
あとは自分で NaN をググるなり、コンピュータでの数値表現について勉強するなりしてくれ

281 :デフォルトの名無しさん:2015/08/04(火) 23:21:37.01 ID:2w4CQfTI
>>279-280
NaN は Number ではない不定値のようなものか
何となくだが、理解した
ありがとう

282 :デフォルトの名無しさん:2015/08/05(水) 00:11:47.63 ID:GLQwjMtk
しかし大小比較自体が成立しないんだったら
言語側では例外を投げてもいいような気もするが
IEEE754で演算上の振る舞いも規定されているのか

283 :デフォルトの名無しさん:2015/08/05(水) 07:43:38.95 ID:dSgZbAfK
>>281
NaNが何の略か知らないの?

284 :デフォルトの名無しさん:2015/08/05(水) 07:46:27.13 ID:PB1eetSA
NaNの略かだって?

285 :デフォルトの名無しさん:2015/08/05(水) 09:03:37.80 ID:HdJkl2eK
Number and Number

286 :デフォルトの名無しさん:2015/08/05(水) 11:11:39.52 ID:A+1+0YPe
>>283
"Not a Number" だろう?
"Not a Number" からは不定値か固定値かは読み取れないと思うが

287 :デフォルトの名無しさん:2015/08/05(水) 13:37:35.99 ID:PzT2XX1y
isNaN

288 :デフォルトの名無しさん:2015/08/05(水) 16:16:26.21 ID:xgMUKO3v
現行スレ
+ JavaScript の質問用スレッド vol.125 + [転載禁止]
http://peace.2ch.net/test/read.cgi/hp/1436910657/l50

289 :デフォルトの名無しさん:2015/08/05(水) 18:24:22.43 ID:KU6oSpKD
ナンだって?

290 :デフォルトの名無しさん:2015/08/05(水) 19:53:39.57 ID:HdJkl2eK
                               / {;;;;;;> _八_ :: :|
                         /)   ..:::::::::::ヽ ( : |
                           , - '   .. '' {.. :::( 丶 _)  |
                          /....    ,.... .. :::     ::: |
                   _/{:::::r‐  ,.::::::::::/   :   :  }
                _ イ   :::::   {:::::::::}. ...   :::  . ´ ^}
            _... , ィ  ... ::   .. ::  , ::::::::::::      .:.  . ,'
             /:::   . ´      ゛   :::::: :: ::::::::) ...:::.::.  }
       .. イ:...::   ´ ,..::::::::::::::. ..::::..        :::"゛.. ::::  ,'
      ,.´  ...  .:. :: ´(::::::::: ゝ .:::::::ノ    ;..  ハ     .. ,′
.     /  {::::::::..  ::: ::::  "" ::  ......  ⌒ヽ  {     {
    /:::.      /  .... -<::  :::::::(:::::::   }  レ:::::::::::... {
.    {ヽ      <  :::   ::   ::     ::::  { :::::::::::: ヽ
    {:: ..       ___{      ,....:.:.:.:.::ヽ ,.    { i::::::::::::   |
    ヾ::::    ´        ,'.:.:.:.:.:.:.:.:.:.   :: .::.  ゛"゛  .,′
     \       y :.:.:.:: ヾ::  ::  :: } .. /:   `,´  /
.        \      ..::.::.::.. `    ::::::ゝ :: ::: ::.     /
           \    ヾ:._.:   ..   ,:.: −       _ン
           \    :::::  ... ..  .  "゛    ,..ィ ~
            ヽ _ ::::     ....:::. ::::::::::_ .ン
                ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

291 :デフォルトの名無しさん:2015/08/05(水) 19:57:24.97 ID:HdJkl2eK
                   /                             ヽ
                    /                              ヽ
                    /                     人         ト、 |
                   /   >‐ァ              / _\       ! jノ
               /  / /            /,=彡'⌒  V ,=ミ   \
                 / /  /           r==彡tテ丁>   ∨ /ヽ |   \___,
             //    /        __  /`¨´ ヽ.ゞ'′    リ ノ /     _ノ
               {'    . ′      ⌒≫t示             /    <
                   /          >ヘヽゞイ              ∨      ヽ
             /       ,, ’     ヽ丿              ∨     !
             /  _  ..  ´          `ー  _,. -‐'’       /  \f⌒ヽ. |
             ̄                 ヽ ´           /     \   ヽ!
                                  \       /  !     /`≫‐-
            -‐…‐-                 \     /   !   /`y'´
            // ̄)    `丶                  _ア爪      .'  /`y'
          // /       ‘,             -‐</ノ ヽ   ′/`y'
       // /          L     ,-<     ∨\ ! _, イヽ/
       | し'           丿 |   /    ヽ.    ヽ/ 丁 〉 //
       | r−、         / /  /  .′          ̄  ̄
       | U  `ー― - イ /    /  '
       | U           |      /   !


                    若草物語 ナンとジョー先生

292 :デフォルトの名無しさん:2015/08/05(水) 22:58:19.31 ID:Vg22nrpW
これからjavascript一本で生きます
よろしくおねがいしまうー

293 :デフォルトの名無しさん:2015/10/04(日) 11:02:40.14 ID:K1qsk9YZ
よくsetTimeoutつかって関数を一定時間繰り返し実行する例を見るけど
メモリリーク(スタックオーバーフロー)しそうな気がしてならねえ
function viewTime()
{
var date = new Date();//これはスタックに貯まるのか?
console.log("date = " + date);
setTimeout(viewTime,1000);
}

294 :デフォルトの名無しさん:2015/10/04(日) 11:03:55.39 ID:K1qsk9YZ
ああ違う、非同期だからsetTimeoutが終わった時点で消滅するのか
納得

295 :デフォルトの名無しさん:2015/10/05(月) 02:42:12.90 ID:uvbnrVeH
割り込みとかイベントハンドラとかそういう概念

296 :デフォルトの名無しさん:2015/10/05(月) 06:12:57.62 ID:cBREl52D
ローカル変数なんだから関数終了で破棄されるだろ
非同期とか割り込みとか関係無い

297 :デフォルトの名無しさん:2015/10/05(月) 06:40:12.29 ID:sGblq84u
>>296
わからんやつだな
setTimeout が 指定時間後に実行する関数を設定しているだけでそこで呼び出してるわけじゃない
ってすぐに理解できてないと

viewTime()
 setTimeout()
  viewTime()
   setTimeout()
    viewTime()
     ...

みたいに再帰呼び出ししてるように錯覚しちゃうってことだろうよ
再帰呼び出しなら呼び元は終了してないからやばいよね

次の段階として、非同期で呼ばれるとなんとなく理解はしていても
別のコンテキストで実行されるってのがわかってないと this とか使ってあれえ?ってなことになる

298 :デフォルトの名無しさん:2015/10/05(月) 09:58:01.89 ID:YN/6GJzS
>>297
それは仮想的なコードだと思うけど、クロージャじゃないんだから一回毎に viewTime 内のメモリはGCが解放してくれないとおかしいんじゃない?
そうでなければ、ブラウザのバグだと思うけど

299 :デフォルトの名無しさん:2015/10/05(月) 14:17:26.26 ID:zntwOtDH
エスケープ解析!

300 :デフォルトの名無しさん:2015/10/26(月) 04:16:59.02 ID:AGaCWwZd
はい現行スレ
http://peace.2ch.net/test/read.cgi/hp/1444186237/l50

301 :610:2015/11/05(木) 21:03:50.50 ID:O9StB1rc
じゃあここでいいぞ。

一応俺のスタンスを言っておくと、俺はお前みたいな奴が嫌いじゃない。
お前はあのスレの中で唯一積極的にコードを書き、IDを付けて議論に持ち込み、論理的に解決しようとする。この点はいい。
ただなあ、技術的に余りにも稚拙すぎるから、色々空回りしている。
だからやる気があるのなら少しはサポートしてやるよ。上達したいかどうかはお前が決めろ。

ちなみにマジでウザイから無駄に吠えるのは止めろ。お前が大したことがないのは事実なんだよ。
今のお前ではあのベンチマークがどれだけ間抜けなことになっているのか分からないのだろうが、
上達した後から読み返せば今のお前の痛さは発狂レベルだぞ。
まあ、今のお前には俺が嘘を言っているとしか思えないのだろうけども。

とはいえ、あのスレの中の初心者で上達する可能性があるのはお前だけだ。
他の馬鹿共はお前と同様にあのベンチの問題が分からないにもかかわらず、煽ることしかできない無能共だ。
そもそも俺はお前みたいに「自分でやる」タイプじゃないとプログラミングには向かないと思っているので、
一から教えてくださいとか言われても死ねとしか思わない。
だからあのスレにたむろしている馬鹿共が何であそこにいるのかも謎なんだが。

もしやるのなら、こちらのスレの内容は向こうには投稿しないように。ゴミ共が増えるだけだから。
ベンチマークの結果がデタラメすぎるので訂正したくなると思うが、その必要もない。
心配せずともJavaScriptの個人的Web情報はデタラメばかりだし、
馬鹿は馬鹿のままでいればいいし、強制的に教育する方法もないんだよ。
今のお前のように、自分で馬鹿を止めますと決心させるしかないんだ。
そして自分で学ぼうとする心がある奴は、あの経緯ならこちらを見ている。だから、転載する必要は全くない。
マジであのスレ終わっているぞ。いろんな意味で。

まあとにかく、どうするかはお前が決めろ。

302 :デフォルトの名無しさん:2015/11/05(木) 21:49:27.17 ID:VallSrWs
お前が一番終わってる

303 :デフォルトの名無しさん:2015/11/06(金) 18:35:45.77 ID:F7EIvq3A
どこで拾ったコピペ?

304 :デフォルトの名無しさん:2015/11/11(水) 10:08:35.38 ID:M5AnRRSD
>>301の輝かしい功績

+ JavaScript の質問用スレッド vol.126 +
http://peace.2ch.net/test/read.cgi/hp/1439005423/
+ JavaScript の質問用スレッド vol.125 + [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1436400138/
+ JavaScript の質問用スレッド vol.124 + [転載禁止©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1427008867/l50
+ JavaScript の質問用スレッド vol.123 + [転載禁止©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1422084185/l50
+ JavaScript の質問用スレッド vol.123 + [転載禁止©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1423910471/l50
+ JavaScript の質問用スレッド vol.122 + [転載禁止©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1418395948/l50
+ JavaScript の質問用スレッド vol.121 +
http://peace.2ch.net/test/read.cgi/hp/1410603104/l50

305 :デフォルトの名無しさん:2015/11/28(土) 21:50:08.90 ID:u/RqRVR/
立てました。よろしく。

JavaScript情報交換所(プログラミング既習者専用)
http://peace.2ch.net/test/read.cgi/tech/1448714123/

306 :デフォルトの名無しさん:2015/12/06(日) 22:19:33.92 ID:NQ6kkq7S
Microsoft、「Edge」のJavaScriptエンジン「Chakra」をオープンソース化へ
http://www.itmedia.co.jp/news/articles/1512/06/news012.html

307 :デフォルトの名無しさん:2015/12/07(月) 00:52:50.11 ID:D3MoacxB
チャクラとか
あっちにアジアかぶれがいるのかな

308 :デフォルトの名無しさん:2015/12/07(月) 08:33:58.70 ID:d0GjWYYK
MSの今のCEOってインド系だったような

309 :デフォルトの名無しさん:2015/12/07(月) 15:57:54.79 ID:KuRdWB2c
小川美潮

310 :デフォルトの名無しさん:2016/03/20(日) 12:13:50.50 ID:k733Y0LD
保守

311 :デフォルトの名無しさん:2016/03/26(土) 00:52:55.36 ID:VGHlAznE
with(this){してその中でプロパティ読むのってアリ?}

312 :デフォルトの名無しさん:2016/04/01(金) 09:32:53.04 ID:WD++Qk2m
withはjavascriptの汚点。今すぐ脳内から消去しろ。

313 :デフォルトの名無しさん:2016/05/01(日) 15:21:38.46 ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


314 :デフォルトの名無しさん:2016/06/09(木) 17:18:01.82 ID:dpBG783z
たまにwithあったらなって思うことはあるな
例えばWebpackがモジュールに引数で渡す挙動とか

315 :デフォルトの名無しさん:2016/06/29(水) 13:17:10.60 ID:+ZYTNDiN
http://www.cybersyndrome.net/
ここの検索結果画面、例えば
http://www.cybersyndrome.net/search.cgi?q=&a=&f=&s=&n=
からプロキシ一覧を取得しようとしてXMLHttpRequestを使ってresponseTextを見てるんだけど
どうもscriptを動かさないとプロキシが表示されないみたい
そんなわけでresponseTextの中の3番目のスクリプトを動かしてプロキシ一覧を表示させたいんだけど
どうするのが良策ですか?ちなみにChrome

316 :デフォルトの名無しさん:2016/06/29(水) 13:24:53.48 ID:oESip30m
Node.js

317 :デフォルトの名無しさん:2016/06/29(水) 13:52:20.39 ID:+ZYTNDiN
scriptを取り出してevalで行けました

318 :デフォルトの名無しさん:2016/10/26(水) 10:00:03.07 ID:LA3y7fsO
java挫折したんでこっちにきました
だいぶとっつきやすい・・・気がする

319 :デフォルトの名無しさん:2016/10/26(水) 13:13:36.39 ID:6SHMskVi
そりゃまったく別物だからな

111 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)