13/09/26 15:34:20.26
( ^ω^) 初学者・迷子・ロリ幼女はこちらで
_、_
( ,_ノ` ) プロフェッショナルはECMAScript デス 4へ
【前スレ】
JavaScriptスレ2
スレリンク(tech板)l50
【関連スレ】
ECMAScript デス 4
スレリンク(tech板)
+ JavaScript の質問用スレッド vol.109 +
スレリンク(hp板)
【jQuery】JavaScript ライブラリ総合質問所 vol.3
スレリンク(hp板)
【node.js】サーバサイドjavascript 2【Rhino】
スレリンク(tech板)
むしろjavascriptでゲーム作ろうぜ
スレリンク(gamedev板)
Canvasについて語ろう
スレリンク(hp板)
2:デフォルトの名無しさん
13/09/26 15:41:43.87
< `∀´>ニダー
3:デフォルトの名無しさん
13/09/26 17:22:27.98
■関連スレ■
CoffeeScript
スレリンク(tech板)l50
4:デフォルトの名無しさん
13/09/29 01:10:32.44
【ボイド】JavaScriptとHTML5で『群れ』をシミュレーションしてみよう【プログラミング】
URLリンク(ottati.hatenablog.com)
>ボイドを知っていますか?ボイド(Boids)はCraig Raynoldsによって発表された人工生命シミュレーションプログラムです。
あーこういうので合戦ゲーム作りたいと思ってたんだよなー
5:デフォルトの名無しさん
13/09/29 17:32:17.92
サイ本ってリファレンスも買わなきゃだめなもの?
6:デフォルトの名無しさん
13/09/29 17:49:37.63
サイ本なんて買わなくていい
それよりもJavascriptパターンを買いなさい
7:デフォルトの名無しさん
13/09/30 12:22:33.53
サイ本なんて買わなくていい
それよりサイを買いなさい
8:デフォルトの名無しさん
13/09/30 15:17:02.86
シロサイ買ってきました
次は何をすればいいですか
9:デフォルトの名無しさん
13/09/30 16:41:56.97
クックブック一冊、手打ちしたらいい思う
10:デフォルトの名無しさん
13/09/30 19:25:33.47
次はキリンだな。動物園の影の人気もの。外せないね
11:デフォルトの名無しさん
13/10/01 01:50:42.38
質問失礼します。
javascriptのcanvas上の矩形内にhtmlを表示したいです。
しかもそのhtmlが貼られた矩形を回転したいです。
可能ならばhtmlを画像化せずに表示したいのですが、可能でしょうか?
よろしくお願いします。
12:デフォルトの名無しさん
13/10/01 03:32:42.30
>>11
canvsでというのは無理だと思う。cssで同じ効果を狙うのは頑張ったら出来るんじゃないかな?
質問は↓の方がいいかも
+ JavaScript の質問用スレッド vol.109 +
スレリンク(hp板)
13:11
13/10/01 08:47:19.64
>>12
ありがとうございます。
教えていただいた先で聞いてみます。
14:デフォルトの名無しさん
13/10/01 10:23:24.60
C++からjavascriptに移行してきたんだけど
{}でスコープが区切られないとなると、名前の衝突を防ぐには
細かく関数化するのが定石ですかね?
15:デフォルトの名無しさん
13/10/01 12:59:22.21
>>14
function地獄
16:デフォルトの名無しさん
13/10/01 13:32:39.49
(function () {
ょぅι゛ょ
})()
(function () {
ょぅι゛ょ
})()
17:デフォルトの名無しさん
13/10/01 13:41:35.12
functionを ()で括る意味がいまだに分からない
18:デフォルトの名無しさん
13/10/01 15:06:18.69
即時関数だよ。ググレカス
19:デフォルトの名無しさん
13/10/01 16:16:33.56
>>17
function式として解釈させるためだよ
だから括弧じゃなくても !function () {}() でもいい
20:デフォルトの名無しさん
13/10/01 19:23:46.45
いくない!(`ヘ´)
21:デフォルトの名無しさん
13/10/01 19:45:29.44
>>16
書き込んでしばらくしてそれも思いつきました
それってスコープとして有効なんですよね?
22:デフォルトの名無しさん
13/10/01 20:07:30.55
即時関数って言うのね,ググったら何となく分かったよ
戻り値が無いんなら>>19のでもいいんだね
自分の場合は使う事無さそう
23:デフォルトの名無しさん
13/10/01 21:37:01.32
varの代わりにletを使えばブロックスコープになる。
ただし、今はまだ使えないブラウザが生き残ってるから、
ブラウザを指定できる場合か、
サーバーサイドでのみで使うことになる。
24:デフォルトの名無しさん
13/10/01 21:44:16.90
let てBASICかよw
25:デフォルトの名無しさん
13/10/01 21:49:56.39
>>24
その発想はなかった。
lisp, scheme, haskell, python, ml などにもあるから
知っている人にとっては、そんな発想は絶対に浮かばない
あ、分かりやすく言うとお前BASICしか知らんのか、ザコめって
言ってるんだからねw
26:デフォルトの名無しさん
13/10/01 21:55:47.91
ズラズラ言語並べてるけどお前は基本(BASIC)がなってないんだよw
27:デフォルトの名無しさん
13/10/01 21:56:58.46
みなさん、笑うところですよ?(棒)
28:デフォルトの名無しさん
13/10/01 22:04:33.26
HA HA HA HA!
29:デフォルトの名無しさん
13/10/02 00:55:30.09
関数のオーバーヘッドがーっていうのが納得できない。内部で最適化しろよって思う
30:デフォルトの名無しさん
13/10/02 01:02:01.97
その最適化をする時間が、オーバーヘッドなんだろ。
っていうかいきなり何の話だ?
31:デフォルトの名無しさん
13/10/02 02:23:53.51
言葉がスベってて痛々しい
32:デフォルトの名無しさん
13/10/02 03:11:23.92
例えば、var a = new Array(); と var a = []; は同じだけど[]の方が推奨とか
じゃあ内部で完全に同じ処理にすればいいじゃん
という話
33:デフォルトの名無しさん
13/10/02 04:57:04.28
Arrayが隠蔽されてないか確認が必要なんじゃね?
34:デフォルトの名無しさん
13/10/02 07:58:27.62
>>32
new Arrayと[]は同じじゃないぞ。
配列の初期化をするのに[]を使うのが推奨な理由は
new Array(5) を実行してみればわかる。
この答えは[ undefined, undefined, undefined, undefined, undefined] だ。
new Array(5, 6) の答えは [5, 6] なのにな。
URLリンク(developer.mozilla.org)
引数の数で最適化の仕方を変えればいいと思った?
違う。君は速度のことしか頭に無いようだが、
[]が推奨の理由は、Arrayコンストラクに一貫性がなく
勘違いする可能性があるからだよ。
そしてもう一つの理由はArrayコンストラクタは書き換えることが可能だからだ、
Array = function() { ・・・ }
そんなことせんだろうが、出来る以上new Arrayは実行時に処理するしかない。
それに対して[]はコンパイル時に処理する。動的なものはコンパイル時に最適化出来ない。
35:デフォルトの名無しさん
13/10/02 12:04:20.83
backborn.js、、、 難しいな。 javascriptが難しいのか、設計思想が難しいのか、、、 やはり、馬鹿には無理みたい。
36:デフォルトの名無しさん
13/10/02 13:47:24.66
haha, koyatume
37:デフォルトの名無しさん
13/10/02 21:46:57.71
>>35
backbone.js以外のMVCフレームワーク使ったことある?
ないならそれは難しいだろうね
38:デフォルトの名無しさん
13/10/02 21:48:34.61
$ってよく見るけどどういうふうに使われてるの?
なんかライブラリごとに別々の意味があるっぽく見えるんだが
39:デフォルトの名無しさん
13/10/02 22:10:51.83
$はprototype.jsもしくはjQuery、またはその互換ライブラリが
タイプするのが簡単な1文字の関数(クラス・オブジェクト)名として使ってるもの
$を関数名として使うとか一文字とか普通はやるべきではない使い方だけど、
俺的には準標準レベルの汎用ライブラリと言ってもいいものだから許容する。
jQueryにおいては$()を使って、jQueryオブジェクトにラップしたオブジェクトを
入れる変数に$から始める名前をつけるという規約が
オライリーのどれかの本に乗っている。
prototype.jsにおいては、$の仲間として$$や$Fを使用している。
> ライブラリごとに別々の意味があるっぽく見えるんだが
というのはよくわからない。
思い当たるとしたらjQueryは
$(selector) ・・・ セレクタにマッチしたjQueryオブジェクトを返す使い方
$(html) ・・・ HTMLからDOMを生成する使い方
$(function(){...}) ・・・ $(document).ready()の短縮形
$.each等 ・・・ $オブジェクトとしての使い方
などのように引数によって複数の使い方がある。
40:デフォルトの名無しさん
13/10/02 22:18:08.46
>>39
おあ、詳しくありがとうございます
なるほど、とりあえず有名なライブラリのお決まりとして解釈しました
ライブラリごとというのは、アドベのjavascriptでは$オブジェクトがまた別の意味で定義されていたので
そう思った次第でした
41:デフォルトの名無しさん
13/10/02 22:34:10.89
adobeでも使ってるのか?
$はjQuery、_はunderscoreっていうかlodashに
くれてやれw
どうするだけの十分な理由がある。
42:デフォルトの名無しさん
13/10/05 13:48:16.68
github、RubyとMVCの限界を悟りC#とMVVMに全面移行 / オープンソース界に激震
スレリンク(poverty板)
43:デフォルトの名無しさん
13/10/07 02:18:44.37
>>11
SVGの<foreignObject>内にHTMLを埋め込めるからそれを描画する
44:デフォルトの名無しさん
13/10/11 09:37:16.73
質問
htmlドキュメントに動的にelementを加える場合
var elem = document.createElement("div");
var child = document.createElement("a");
...
elem.appendChild(child);
...
などすると思いますが、この子要素の追加がやや大変です
例えば
var elem = document.createXHTML("<div><a href="...">...</a></div>");
などhtml書式を直接入力するような方法はないでしょうか?
45:デフォルトの名無しさん
13/10/11 09:41:42.66
innerHTML
46:デフォルトの名無しさん
13/10/11 09:47:04.60
>>45
ありがとうございます、調べみます
47:デフォルトの名無しさん
13/10/11 09:59:12.89
>>45
var elem = document.createElement("div");
elem.innerHTML = "<a href='...'>...</a>";
できました、ありがとうございます
48:デフォルトの名無しさん
13/10/16 12:02:31.90
asm.jsって重たい処理ではFirefoxで効率が250%、
Chromeでも110%くらいになるのが凄い好感触だけど
軽い処理はFirefoxではオーバーヘッドが凄い大きいのな
Chrome 32.0.1671 と Firefox 27.0 が同環境
↑重い
URLリンク(jsperf.com)
URLリンク(jsperf.com)
URLリンク(jsperf.com)
URLリンク(jsperf.com)
URLリンク(jsperf.com)
↓軽い
ベンチは沢山のを総合して見ないと本質は見極められないな
あとFirefoxは関数コールや再帰が高速という常識はもう通用しないみたいだ
49:デフォルトの名無しさん
13/10/16 12:31:48.08
効率が250%…
悪くなってんじゃねーかw
50:デフォルトの名無しさん
13/10/16 13:08:13.74
???
51:デフォルトの名無しさん
13/10/17 04:26:43.71
URLリンク(wiki.ecmascript.org)
ここのトリプルバインドテクニックは感動したわ……
var bind = Function.prototype.bind
var uncurryThis = bind.bind(bind.call)
['1','2','3'].map(parseInt) //[1, NaN, NaN]
['1','2','3'].map(uncurryThis(parseInt)) //[0, 1, 2]
52:デフォルトの名無しさん
13/10/17 08:55:54.97
???
53:デフォルトの名無しさん
13/10/17 09:13:27.82
プログラミングが出来ても日本語が不自由なやつが多い
54:デフォルトの名無しさん
13/10/18 19:29:48.84
asm.jsっぽく書くことも総合的になかなか有効みたいだな
URLリンク(jsperf.com)
URLリンク(jsperf.com)
55:デフォルトの名無しさん
13/10/20 06:08:17.10
>>51
古すぎ。一体いつの話題をしてるのか。
URLリンク(stillpedant.hatenablog.com)
56:デフォルトの名無しさん
13/10/20 06:28:51.25
>>51
感動したのはいいが、使い方わかってないじゃん。
馬鹿かお前。parseIntでインデックス番号取り出してどうするんだか。
57:デフォルトの名無しさん
13/10/20 14:11:40.97
なんでforEachってネイティブ関数なのに
糞みたいに遅いの?
URLリンク(jsperf.com)
58:デフォルトの名無しさん
13/10/20 17:50:53.10
その話はJavaScript質問スレで全く同じように
lodashとの比較としてこの前出たが同一人物か?
lodashは配列の穴なんて気にしないでforloopのように
ただ0から最大インデックスまで回すだけ
ネイティブforEachはin等で要素が存在するか確認する
だから[0,,2,3,,,6,7,,9]みたいなのでは根本的に動作が違う
その仕様差のオーバーヘッドの問題
59:デフォルトの名無しさん
13/10/20 18:25:53.22
なるほど。
実質違うものの動作を比べているわけか。
差が出るのも当然だな。
60:デフォルトの名無しさん
13/10/20 21:18:09.60
> in等で要素が存在するか確認する
これって具体的には何してるの?
61:デフォルトの名無しさん
13/10/20 21:38:24.31
要素が存在するか確認してるんだろ?
これ以上具体的にって
何が聞きたいんだ?
62:デフォルトの名無しさん
13/10/20 21:40:02.31
要素を確認してどうするの
なければ結局undefinedがコールバックに返るのに
63:デフォルトの名無しさん
13/10/21 00:40:18.62
undefinedを引数にコールバックが呼ばれるのと
コールバックが呼ばれないのでは、
動きが全く違うだろ。
64:デフォルトの名無しさん
13/10/21 07:56:22.67
>>58を試せばすぐ分かるようなことをなぜ聞くのか
65:デフォルトの名無しさん
13/10/21 07:59:37.36
[0,,2,3] だと 0,2,3 しか渡らないのに
[0,undefined,2,3] だと 0,undefined,2,3 が渡るのってなんでだっけ?
66:デフォルトの名無しさん
13/10/21 08:30:04.20
undefinedとnullは別ものだから
67:デフォルトの名無しさん
13/10/21 12:37:25.61
javascript側からflashで設定出来る変数の変数名って取得可能ですか?
例えば、ニコニコ動画の動画プレイヤーのコメント入力部分の変数名など
68:デフォルトの名無しさん
13/10/21 12:57:59.19
>>65
11.1.4 Array Initialiser
>
> Array elements may be elided at the beginning, middle or end of the element list. Whenever a comma in the
> element list is not preceded by an AssignmentExpression
> (i.e., a comma at the beginning or after another comma),
> the missing array element contributes to the length of the Array and increases the index of subsequent elements.
> Elided array elements are not defined. If an element is elided at the end of an array,
> that element does not contribute to the length of the Array.
これかな
省略すると length だけ影響を受ける
69:デフォルトの名無しさん
13/10/21 21:54:59.55
>>65
[0,,2,3]
↓
{
0:0,
2:2,
3:3
}
[0,undefined,2,3]
↓
{
0:0,
1:undefined,
2:2,
3:3
}
70:デフォルトの名無しさん
13/10/22 23:25:52.36
nullとundefinedが別々にあることでメリットある?
71:デフォルトの名無しさん
13/10/23 00:23:37.23
データベースのフィールドに値を入れる。
値がある場合、nullを代入する場合、省略された場合
が表現できる。
72:デフォルトの名無しさん
13/10/23 17:13:23.67
以前はundefinedにmatch使ってもerrorにならなかったのにerrorになるようになって
いちいちチェック入れないといけなくなったのが不満
73:デフォルトの名無しさん
13/10/23 18:52:18.21
undefined以前にmatchは文字列型のものだろ何言ってんだこいつ
74:デフォルトの名無しさん
13/10/24 10:35:56.13
>>69
なんでわざわざオブジェクトに変換すんだ?
だから遅いのか
なんでこんな糞みたいな実装を選んだのかも謎
75:デフォルトの名無しさん
13/10/24 21:57:55.88
そもそもjavascriptだと配列⊂オブジェクトじゃないっけ
76:デフォルトの名無しさん
13/10/25 13:57:21.14
わざわざオブジェクト?
何言ってんだか
JavaScriptの配列はlengthをハックした特殊なオブジェクトだろ
それに全くもって遅くねえ
JSエンジンが配列の最適化にどれほど力を入れてると思ってんだ
77:デフォルトの名無しさん
13/10/25 14:54:34.11
なぜそんな言い方しかできないのかしら
78:デフォルトの名無しさん
13/10/25 16:53:37.97
>>77
知りもしないものを糞呼ばわりしてる方が悪いと思うが
79:デフォルトの名無しさん
13/10/26 02:57:10.71
ここはあの殺伐としたふいんき(ryで有名な2ちゃんねるだぞ
半年ろむって刮目して相対しやがれ
80:デフォルトの名無しさん
13/10/26 03:21:36.73
配列がオブジェクトであるくらいは知っておこうぜ……
81:デフォルトの名無しさん
13/10/26 09:30:57.11
はやくES6来ねえかな
82:デフォルトの名無しさん
13/10/28 09:48:16.37
半年後には結構実装されてそう
83:デフォルトの名無しさん
13/10/31 10:31:32.55
個々の記事が全然正しくないと、JS質問スレで教えてもらったのですが、
詳しくは教えてもらえませんでした。
URLリンク(compute-taso.blogspot.jp)
少しでもどこが良くてどこが悪いのか教えてもらえませんでしょうか?
84:デフォルトの名無しさん
13/10/31 13:05:37.69
>>83
全て悪い。仕様を読め
85:デフォルトの名無しさん
13/10/31 13:48:52.78
>>84
説明できないのなら無理しなくていいよ
86:デフォルトの名無しさん
13/10/31 13:58:42.56
Object.create って全部のブラウザで使えるの?
87:デフォルトの名無しさん
13/10/31 16:33:52.37
使える
IEは確か9から
88:デフォルトの名無しさん
13/11/06 09:23:19.78
ie6のシェアが増えたというニュースをみましたが
原因は何ですか?
もはやgoogleも対応してないですよね
そんなブラウザで不便を感じないのか
89:デフォルトの名無しさん
13/11/06 15:41:15.85
中国人に聞いて来いよ
90:デフォルトの名無しさん
13/11/06 19:43:56.07
>>89
ちょっと面白いじゃねえか(´・ω・`)
91:デフォルトの名無しさん
13/11/10 13:02:45.23
>>88
元々の統計がいい加減なんではないか
92:デフォルトの名無しさん
13/11/10 13:15:18.39
せやな
93:デフォルトの名無しさん
13/11/10 13:23:28.09
>>88
憶測でデマ流そうとしてるようだけど新機能には対応してないけど検索するのに支障ないくらいには対応してるから
94:デフォルトの名無しさん
13/11/10 22:20:25.29
URLリンク(www.dartlang.org)
ついにdart2jsがaltJSとして覚醒しました
95:デフォルトの名無しさん
13/11/14 17:57:13.13
死ねバカwwwwwwwwwwwwwwwwwwwwwwww
死ねwwwwwwwwwwwwwwwwwwwwwwww
死ねwwwwwwwwwwwwwwwwwwwwwwww
死ねwwwwwwwwwwwwwwwwwwwwwwww
ゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ゴミゴミゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwww
ゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwwwwwwwww
死ねゴミwwwwwwwwwwwwwwwwwwwwwwwwコラwwwwwwwwwwww
死ねコラゴミwwwwwwwwwwwwwwwwww
ゴミwwwwwwwwwゴミwwwwwwwwwwwゴミwwwwwwwwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
96:デフォルトの名無しさん
13/11/14 20:42:13.31
PromiseがES6に入ってもうすぐV8にも入りそうだけど
実際どのくらいPromise使って知ってる?
URLリンク(chromiumcodereview.appspot.com)
97:デフォルトの名無しさん
13/11/14 21:12:56.14
新しいAltJS見つけた
URLリンク(eleks.github.io)
98:デフォルトの名無しさん
13/11/16 07:38:56.18
>>97
クソ笑ったw
99:デフォルトの名無しさん
13/11/17 04:57:57.71
URLリンク(developer.mozilla.org) がリニューアルされてなんか微妙
100:デフォルトの名無しさん
13/11/17 11:53:52.73
トップページがちょっと変わっただけじゃん
101:デフォルトの名無しさん
13/11/20 17:16:48.72
MDNにアクセスできなくなってたと思ったんだが
102:デフォルトの名無しさん
13/11/22 19:10:48.31
>>97
これはジョーク?
103:デフォルトの名無しさん
13/11/22 19:12:59.95
github.io って phishing サイトか
104:デフォルトの名無しさん
13/11/24 08:57:29.52
正規表現がまったくわからん
教えろください
hogefuga12345678...9yokei
hogefugaは固定の文字列
12345678...9は任意の数字列、桁も任意
yokeiはその後に続く任意の文字列
この時
hogefuga12345678...9
だけ抜き出したい
どうしたりいの?
105:デフォルトの名無しさん
13/11/24 09:08:01.06
解決した
hogefuga[1-9][0-9]*
楽勝じゃん
106:デフォルトの名無しさん
13/11/24 16:03:43.31
^hogefuga\d+$
こうだろ
107:デフォルトの名無しさん
13/11/24 16:08:26.17
>>106
後ろに任意の文字列が続くって分かってるんだから、^はともかく$は付けちゃ駄目だろ。
108:デフォルトの名無しさん
13/11/24 20:06:45.82
hogefuga\d+
109:デフォルトの名無しさん
13/12/02 16:37:18.13
URLリンク(i.imgur.com)
お願いします
110:デフォルトの名無しさん
13/12/02 17:25:16.99
氏名と点数のデータはどんな形式でどこにあるんだ
111:デフォルトの名無しさん
13/12/02 18:01:59.58
URLリンク(furoshiki.hatenadiary.jp)
URLリンク(www.slideshare.net)
URLリンク(furoshiki.hatenadiary.jp)
URLリンク(furoshiki.hatenadiary.jp)
URLリンク(furoshiki.hatenadiary.jp)
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
112:デフォルトの名無しさん
13/12/02 23:18:18.00
Windows 8 and 8.1 API Index
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
後半の Windows Runtime classes 見ると、JavaScriptでUSBデバイスや各種センサー扱うAPIが在ってウホッという感じ。
113:デフォルトの名無しさん
13/12/03 03:40:45.03
CopyRect
114:デフォルトの名無しさん
13/12/05 00:56:43.05
URLリンク(pypi.python.org)
115:デフォルトの名無しさん
13/12/07 23:02:18.85
WebアプリでJavascriptなんて担当したら大変なことになるな
サーバサイドの方がはるかに楽だよな
116:デフォルトの名無しさん
13/12/07 23:52:06.47
物によるとしか
個人的には先月やった課金サーバ絡みのWebサービスの方がピリピリしてて重かった
JSで表層組む方が責務的にはラクだと思うけどな。バッドノウハウなんぼのもんじゃい
サーバサイドもセットで回されたら結局キツイんだけどさ
117:デフォルトの名無しさん
13/12/11 01:57:21.14
最近のウェブアプリは項目を触るごとにAjaxでサーバとガンガン通信するから
昔に比べてJSのやること激増してるよな
サーバサイドはJSON返すだけとかだとかなり楽だし
118:デフォルトの名無しさん
13/12/14 06:42:59.34
coolなデモ2本来たぜ
Racer S (three.js)
URLリンク(helloracer.com)
Monster Madness Online (Unreal Engine)
URLリンク(www.playverse.com)
動作環境はもとより、ロードおせーんだよな・・・
これでは一時期Flashサイトが忌避されたのと何ら異なるところがない
たぶんネットが10倍くらい速くならないとだめだわ
119:デフォルトの名無しさん
13/12/14 22:48:34.33
Javascriptスレ全部に毎回連投するやつ死ねよ
120:デフォルトの名無しさん
13/12/15 07:23:38.52
その通り
死ねよ
121:デフォルトの名無しさん
13/12/15 15:47:10.11
情報を貼ってくれるのはいいが
どれか一つのスレに絞ってくれ
javascripterは全部のスレ見てるよ
122:デフォルトの名無しさん
13/12/16 09:29:43.66
2chって21世紀を10年過ぎてもクロスポストに対応してないのな
123:デフォルトの名無しさん
13/12/16 11:49:12.77
リニューアル汁
124:デフォルトの名無しさん
13/12/22 03:38:15.71
ググっても
URLリンク(ap.atmarkit.co.jp)
URLリンク(ap.atmarkit.co.jp)
しか話が出てこないけどさ、JScriptのsetTimeoutって普通に49.7日問題発生するよな?
多分、timeout+starttime<GetTickCount()的な判定なんだと思うけど、
setTimeout("alert(0);",(1<<32)-1);とかだと普通に0秒でタイムアウトしてしまう。
応用すれば対象PCの起動からの時間も49.7日以下なら計測可能という。
例:URLリンク(jsbin.com)
WindowsXP SP3(32bit)+IE8はコレでシステム起動時間もどきを取れるの確認したけど、他だとどーよ?
125:デフォルトの名無しさん
13/12/22 05:44:08.55
>>124
49.7日問題っていうのは、49.7日を超えるとカウンタが0に
リセットされるという問題ではなく、リセットされることを考慮していない
コードがシステムにあって、そのためにシステムが不具合を起こすことだよ。
カウンタが0になるのは単なる仕様。
それからな、JavaScriptの仕様上
1<<30 ・・・ 1073741824
1<<31 ・・・ -2147483648
1<<32 ・・・ 1
1<<32-1 ・・・0
これはな32bitのビットシフトっていうのはな・・・
めんどくせぇから、あとは自分で調べろや。
もう少ししっかりと理屈を理解して
ちゃんと検証しましょう。終わり。
126:デフォルトの名無しさん
13/12/22 06:32:13.36
>>125
>カウンタが0になるのは単なる仕様。
リセットじゃ無くてオーバーフローだから0を経由するかは不定なんだけど、それは知ってるよ。
>1<<32-1 ・・・0
ああそこはポカミスしたわ。
んでそこのミスはそれとして、
setTimeout("alert(0);",4294967294);
setTimeout("alert(0);",(1<<30)*4-1);
でも0秒でタイムアウトするし、GetTickCountの値の推定が出来る事も検証してるんだけど…
URLリンク(jsbin.com) の実行結果
step at T=0xfffff000 M=0x80000000 timeout=0x7ffff000
step at T=0xfffff000 M=0x40000000 timeout=0xbffff000
中略
step at T=0xfdf37000 M=0x2000 timeout=0xfdf35000
step at T=0xfdf35000 M=0x1000 timeout=0xfdf34000
uptime 0day 09:33:10 .016
>systeminfo|find "起動時刻"
システム起動時刻: 50 日、2 時間、41 分、15 秒
>type test.c
#include <stdio.h>
#include <windows.h>
int main(){DWORD t=GetTickCount();
printf("%2dday %02d:%02d:%02d.%04d %d\n",t/1000/60/60/24,t/1000/60/60%24,t/1000/60%60,t/1000%60,t%1000,t);}
>tcc -run test.c
0day 09:38:32.0235 34712235
127:デフォルトの名無しさん
13/12/22 09:40:54.92
uptimeを知りたいんならWMI使えよ
128:デフォルトの名無しさん
13/12/22 10:16:01.42
>>126
PCを起動したのが2013/12/08, 23:21:23
uptimeで13 day(s), 10 hour(s), 50 minute(s), 4 second(s)とでてるわけだが、
>>126の実行結果は
Chrome、uptime 24day 20:31:23 .648
その後に起動したIE uptime 24day 20:31:23 .648
実行後に起動したFirefox uptime 24day 20:31:23 .648
で、全部同じ数値を示していたぞ?
129:デフォルトの名無しさん
13/12/22 10:22:01.30
>>126
> setTimeout("alert(0);",4294967294);
> setTimeout("alert(0);",(1<<30)*4-1);
> でも0秒でタイムアウトするし、GetTickCountの値の推定が出来る事も検証してるんだけど…
なんで、0秒でタイムアウトするのと、正常に動作する境目を調べないの?
setTimeout("alert(0);",2147483647); ・・・ 正常
setTimeout("alert(0);",2147483648); ・・・ 以上
この数値見たことあるよね?
2^32 / 2 -1
符号付き32bitで表せる最大の正の数だよ。
130:124
13/12/22 22:21:13.35
>>129
> なんで、0秒でタイムアウトするのと、正常に動作する境目を調べないの?
URLリンク(jsbin.com) のコードが正常に動作する境目を調べるコードだよ・・・orz
そもそも最初に0秒タイムアウトして境界調べたら49.7日だったからこの検証してるのに・・・orz
なんでお前ら揃いも揃って「うちで再現しないならそんなもの存在しない」的な思考なんだよ・・・orz
最初から環境書いて検証コードまで貼って他だとどーよって聞いてんのになんなんだよ・・・orz
それに、32bit環境でミリ秒扱う以上2^32に上限が来るのは仕方ないとしても2^31が上限なのはやっぱバグじゃないか・・・orz
まぁ環境によってタイムアウトの上限が「0xFFFFffff-GetTickCount()-1」な場合と「0x7FFFffff」な場合があるのはわかった。
64bit版なのかとかIEいくつなのかとか、0x7FFFffffが上限になる環境は何かわからないけど。
WindowsXP SP3(32bit)+IE8はコレでシステム起動時間もどきを取れるの確認したけど、他だとどーよ?
131:デフォルトの名無しさん
13/12/22 22:30:11.86
最上位ビットは符号だからね~
132:デフォルトの名無しさん
13/12/23 00:37:09.46
>>130
> なんでお前ら揃いも揃って「うちで再現しないならそんなもの存在しない」的な思考なんだよ・・・orz
お前が最初に環境書かないから
133:124
13/12/23 00:46:47.49
>>131
longならそうだが、GetTickCountとかはDWORDでunsigned longでしょ。
コレの取り扱いを間違えると49.7日問題が24.9日問題に化ける。
JavaScriptだとビット演算時の型変換が入らなければ関係ない・・・はずだよな?
>>132
>お前が最初に環境書かないから
>>>>124最終行
>>WindowsXP SP3(32bit)+IE8はコレでシステム起動時間もどきを取れるの確認したけど、他だとどーよ?
お前ら酷すぎ…泣いていい?
134:デフォルトの名無しさん
13/12/23 01:01:35.68
JavaScriptスレでDWORDだunsigned longだとか言ってもね
とりあえずJavaScriptの数値は全て128ビットの浮動小数点数ね,これはどの環境でも変わらない
けどビット演算すると32ビットの符号付き整数にキャストされるの
135:124
13/12/23 01:52:04.52
>>134
一定値以下の整数は4バイトで一定値を超えたら浮動小数点数に変換するが、
計算上の振る舞いは同じになるから通常は関係しない、って最適化してる実装もあるんじゃなかったっけ。
そもそもこれはsetTimeoutの実装(Cとかその辺)も絡んでるからJavaScriptの数値型だけの話じゃないよ。
136:デフォルトの名無しさん
13/12/23 23:27:02.02
見栄えのよいグラフ作りたいんだけどやっぱD3かね?
137:デフォルトの名無しさん
13/12/24 13:30:32.06
幼女しかいないスレで何言ってんだコイツ?>>124
138:デフォルトの名無しさん
13/12/24 14:51:17.43
幼女なら仕方ないね。
再現する環境ではちょっと面白い(特定条件で脆弱性になる)バグだから幾つか他のスレに投げて終わりにするわ。
139:デフォルトの名無しさん
13/12/25 01:32:53.45
馬鹿にされて終わりだと思う
140:デフォルトの名無しさん
13/12/25 05:30:12.26
どこら辺が馬鹿なん?
141:デフォルトの名無しさん
13/12/31 16:59:24.89
>>134,135
仕様は64bit浮動小数点型
最新の著名な実装では整数はx86では「31」bit符号付き、x64では「53」bit符号付き整数として扱おうとしている
さらには32bit不動小数点型も活用され始めてる
142:デフォルトの名無しさん
13/12/31 17:36:14.23
そんな事されたら互換性無くなっちゃう><;
143:デフォルトの名無しさん
13/12/31 19:08:16.00
>>141
ああそっちか。4倍精度とか普通使わんよなぁと思ったわ。
でもネイティブ関数の内部実装は普通に整数型じゃね?
>>142
桁が溢れる時はちゃんと上位互換の型に切り替えるんじゃない?
32bitのはasm.jsのfloat活用の話かな。元々単精度の演算をjsに変換する場合に、
floorで単精度に切り詰めるようにしてそれを検出したら単精度で演算するとか何とか。
144:デフォルトの名無しさん
13/12/31 20:56:06.54
Float32Arrayが使わる箇所などfloatで最適化しようと思えば可能な箇所は沢山ある
勿論asm.jsに限らずJITでもそういう最適化は可能
そろそろやること付きたのでエンジンとしてはそういうとこ弄るしかない
仕様としてはマルチスレッドやSIMDを活用する方向や型付けを強くする方向で進行中
145:デフォルトの名無しさん
14/01/01 15:13:10.71
ES7になれば
int64_num = 9223372036854775807L
とか
decimal_num = decimal("79228162514264337593543950335")
とかできるようになるんでしょ?
146:デフォルトの名無しさん
14/01/05 20:44:02.39
>>136
日本はレベルの低いプログラマが多いのでd3は流行らないと見た。
jqueryも使いこなせない低レベルプログラマばかりだもの。
147:デフォルトの名無しさん
14/01/05 20:55:26.95
レベルが低いからjQuery使うんだが
148:デフォルトの名無しさん
14/01/06 02:26:57.24
自分が難しいと思うものは
使いこなせない人が低レベルだと思うものです。
つまり>>146はjQueryを難しいと思ってるのです。
149:デフォルトの名無しさん
14/01/06 02:40:04.28
D3そんなに難しくないだろ。
コピペするだけで簡単に動くぞ。
150:デフォルトの名無しさん
14/01/06 05:50:36.62
146低能杉
151:デフォルトの名無しさん
14/01/07 03:16:30.34
146の言うことは筋が通ってるな。
152:デフォルトの名無しさん
14/01/07 22:27:37.43
真の低能者は150
153:デフォルトの名無しさん
14/01/07 22:31:49.36
ふっふっふ
そやつらは果たして俺の低脳さに敵うのか?
おちんちんびろーん
…びろーん
154:デフォルトの名無しさん
14/01/08 00:17:48.75
>>152
一般庶民以下は、天才と低能を同じ低能と見る
155:153
14/01/08 00:20:34.51
同意だぜ
ごめんもう消える
156:153
14/01/08 21:52:15.87
と思わせておいてからの、びろーん
157:デフォルトの名無しさん
14/01/08 22:35:27.50
あなたは偽物ですね
158:153
14/01/11 21:44:28.79
いや俺はお前だよ。もう一つの別人格。
159:153
14/01/12 06:27:31.65
お前は誰だ?
160:デフォルトの名無しさん
14/01/19 12:48:15.65
jQueryで下記のように所持しているツリー用のデータをkeyを指定してtitleを変更する
処理を作りたいんですが、どのようにしたらいいでしょうか?
子が何階層まであるかは不明で、うまいやり方が思いつきません。
[{"key":"1", "title":"ファイル1", "children":{{"key":"12", "title":"ファイル2", "children":{...}}}},{"key":"2"...}]
161:デフォルトの名無しさん
14/01/19 12:59:50.46
javascriptもjQueryも関係なくツリー構造の再帰処理だよな?
func(node)
{
for(i = 0 ; i < node.children.length ; i++)
{
func(node.children[i]);
}
doSomething(node);
}
162:デフォルトの名無しさん
14/01/19 13:00:21.18
>>160
線形リストでござるか?
ループでたどるのがいんじゃないかしら。
function main() {
var n = search(node, "1");
if (n != null)
n.title = "タイトル";
}
function search(node, key) {
for (var n = node; n != null; n = n.children)
if (n.key == key)
return n;
return null;
}
163:デフォルトの名無しさん
14/01/19 13:02:26.69
>>160
jQueryはDOM、つまりHTML用のライブラリだから
そんな用途には使えないよ。
普通に再帰処理書けば良い。
164:デフォルトの名無しさん
14/01/19 14:20:21.14
>>162
1
12
...
2
...
こういう構造だから線形リストではないよね。
最初の階層で一文字目が決まり、次の階層で2文字目が決まると
考えると構造はトライに近いかな。
[{key:"1", title:"title1", children:[{key:"12", title:"title12", children:[]}]}, {key:"2", title:"title2", children:[]}]
構造の一貫性を考えるとデータの定義はこうじゃないかな。
165:デフォルトの名無しさん
14/01/19 14:23:13.81
こういう構造ってよくあるんだけど、
ここでいうchildrenっていうキーどうしても必要だよね。
なんかね、違和感があるだよ。
childrenは不要ではないかと。
こういう構造を扱う、汎用的なライブラリが作れそうなんだが、
childrenというキーを引数に取らなきゃいけないのが
なんか気持ち悪い。
でも普通に考えたらやっぱりいるよなぁ。なんだろこの違和感。
166:デフォルトの名無しさん
14/01/19 14:26:01.16
>>160
URLリンク(friendpaste.com)
167:デフォルトの名無しさん
14/01/19 14:30:51.72
>>166
ちょっと冗長だし使いにくいね。
もう少し頑張ってみて。
168:デフォルトの名無しさん
14/01/19 14:32:52.40
>>167
俺には無理だからもっと簡潔な書き方を君が俺に教えてください。
169:デフォルトの名無しさん
14/01/19 14:46:54.04
>>165
childrenが嫌いならparentをもったらいいじゃない!!
木構造をデータベースに入れるときはparentを保存するようにしてた。
それを読み込んでchildrenに変換するのが超面倒だった思い出がありまくり。
170:デフォルトの名無しさん
14/01/19 15:16:43.62
>>168
// 汎用関数
function select_node(nodes, children_key, callback) {
var ret = [];
function recursive(nodes) {
if ( !nodes ) { return }
for ( var i = 0 ; i < nodes.length; i++ ) {
var node = nodes[i];
if ( callback(nodes) ) { ret.push(nodes) }
recursive(nodes[children_key]);
}
}
recursive(nodes);
return ret;
}
var nodes = [ { key:"1", title:"title1", children: [ { key:"12", title:"title12" } ] }, { key:"2", title:"title2" } ];
// nodeを選択する
var founds = select_node(nodes, 'children', function(node) {
return node.key === "12";
});
// 見つかったものを書き換える
for(var i = 0; i < founds.length; i++) {
founds[i].title = "rename " + founds[i].title;
}
171:デフォルトの名無しさん
14/01/19 15:23:14.98
>>170
if文の改行で誤魔化してるだけだよね。
簡潔さの欠片もないし、階層がいくつか不明って言ってるんだから再帰はないよね。
話にならないな君。
172:デフォルトの名無しさん
14/01/19 15:30:15.53
>>171
わかってないね。
汎用関数っていうのは、一度作ってしまえばもう二度と見る必要がないってことだよ。
つまり、ツリー構造から検索するキーが違う別の処理を書くのに、
コピペする必要はなく、これだけでよくなってる。
var founds = select_node(nodes, 'children', function(node) {
return node.key === "1" || node.key === "2";
});
あんたの場合、長ったらしいコードに埋め込まれているからコピペするしかなくなってる。
見つかったものを書き換えるルールもこれだけで変更できる。
for(var i = 0; i < founds.length; i++) {
founds[i].title = founds[i].title + "を変更"
}
テストコードを書くときを考えても、select_nodeのテストコードを一度書けば終わりだし、
残りの書き換えコードはあとは間違えないような些細なコードだし、
そのテストコードも簡単。配列与えて変わっているか調べれば良い。
えっと、ここまでの偉そうなことを君、言える?
173:デフォルトの名無しさん
14/01/19 15:33:44.66
このコードはjQueryと同じ発想で(というかjQueryよりもずっと前からある発想だが)
ツリー上になっているDOMを$(セレクタ)で配列の形に変換するのと一緒。
select_nodeが$(セレクタ)のかわりでツリーを条件を元に見つけた配列にしている。
ツリーをそのまま扱うのは面倒なので、一旦見つかったノードの配列にしてしまう。
そうすれば後は、簡単に処理できるってわけ。
174:デフォルトの名無しさん
14/01/19 15:43:39.40
>>172-173
冗長の人、スタックオーバーフローの言い訳をお忘れのようですが?
175:デフォルトの名無しさん
14/01/19 15:45:20.84
冗長君は自分のコードが簡潔で他人のコードが冗長に見える病を患っておられるのです。
誰もが通る道です。やさしく見守ってあげましょう。
176:デフォルトの名無しさん
14/01/19 15:48:42.69
>>174
再帰コードをディスってるの?
再帰コードであるかぎりスタックオーバーフローの
可能性は限りなく0に近いが0にはならない。
お前、再帰を一切使うなって言ってるのか?
177:デフォルトの名無しさん
14/01/19 15:49:14.11
>>175
分かりました。
再帰も書けない冗長なコード書いた君ですねw
178:デフォルトの名無しさん
14/01/19 15:50:30.83
圧倒的な差を見せつけると、反論ではなく
口ばっかりしかでてこないものよ。
179:デフォルトの名無しさん
14/01/19 15:58:35.60
>>176
>再帰コードであるかぎりスタックオーバーフローの
>可能性は限りなく0に近いが0にはならない。
可能性が限りなく0に近いことの根拠はなんなの?
例として提示されたデータは最初の階層が1文字で
次の階層が2文字になってる。階層の深さが文字列の長さに比例すると
考えるなら限りなく0に近いなんて言えないと思うんだけど。
>>177
>再帰も書けない冗長なコード書いた君ですねw
書かなかったことと書けないことが同じことだとするなら
君はトライのコードを書けないからパフォーマンスが悪く
スタックオーバフローの可能性のある劣悪なコードを書いたってことになるけど。
180:デフォルトの名無しさん
14/01/19 16:05:22.81
>>178
冗長君、君はなかなか痛い子だねw
181:デフォルトの名無しさん
14/01/19 16:05:50.48
> 可能性が限りなく0に近いことの根拠はなんなの?
現在のスタックの量は、JavaScriptが動くマシンであれば
十分な量が与えられている。
かりにスタックの量が1MB、1回の関数呼び出しに
100バイト消費するとして10000階層になる。
nodeで実験したら、20930階層までできた。
反論終わり。
182:デフォルトの名無しさん
14/01/19 16:10:03.22
>>181
反論じゃなくて回答ね。俺の質問に答えてくれたんだから。
文字列は何文字まで可能なのかな?
183:デフォルトの名無しさん
14/01/19 16:13:18.78
>>182
文字列の長さは影響ない。
スタックを使うものじゃないのだから当然の話だが。
184:デフォルトの名無しさん
14/01/19 16:14:33.68
> 例として提示されたデータは最初の階層が1文字で
> 次の階層が2文字になってる。階層の深さが文字列の長さに比例すると
メモリ使用量=スタック使用量とか思っていそうw
スタックも知らないのかな?
いや、そもそも、階層の深さが文字列な長さに比例するってのが
意味不明だな。
どういう意味?
185:デフォルトの名無しさん
14/01/19 16:14:34.75
>>183
ちょっと何言ってるのかわからないからできるだけ省略しないで言ってくれると
助かるんだけど、文字列の長さは何に影響がないの?
186:デフォルトの名無しさん
14/01/19 16:15:04.63
>>185
いや、そもsも、文字列の長さが
なんで階層の深さに比例するんだよw
187:デフォルトの名無しさん
14/01/19 16:17:46.12
階層の深さが文字列の長さに比例って、何の文字列の話してるんだろ?
188:デフォルトの名無しさん
14/01/19 16:19:59.74
>>186
質問の答えになってないよw
階段とばすと会話がかみ合わなくなるからちょっとそういうやめてもらいたい。
>>160のデータの例では最初の階層はkeyが1文字で次の階層はkeyが2文字になってる。
そのことからトライに近い構造なんだろうと思って俺はコードを示した。
189:160
14/01/19 16:21:30.58
>188
別に例が一階層目のキーの1、二階層のキーにたまたま12って書いただけで、
別に階層が深くなれば、キーの名前も伸びていくなんて言ってませんよ。
190:デフォルトの名無しさん
14/01/19 16:22:21.97
>>188
仮にキーの長さが伸びていったとしても、
それで消費するのはヒープの量じゃん。
ヒープはスタックとは別のメモリ領域に
割り当てられるって知らないの?
191:184
14/01/19 16:24:41.26
やっぱりこいつはスタック使用量とメモリ使用量を
ごっちゃにしているって説であっていたようだw
192:デフォルトの名無しさん
14/01/19 16:24:42.39
>>189
いまさら出てこられて後出しされても困るんでできれば黙ってて欲しいかな。
keyの文字列と階層が比例するとは言ってはいないけど、keyの文字列と階層が
比例しないとも言っていないんで、俺はそれが比例するものだという仮定のもとで
コードを書いた。
193:デフォルトの名無しさん
14/01/19 16:25:31.69
ワロタwww
> 例として提示されたデータは最初の階層が1文字で
> 次の階層が2文字になってる。階層の深さが文字列の長さに比例すると
> 考えるなら限りなく0に近いなんて言えないと思うんだけど。
↓
> keyの文字列と階層が比例するとは言ってはいないけど、keyの文字列と階層が
194:デフォルトの名無しさん
14/01/19 16:26:37.58
なんで階層の深さとキーの長さが比例するって
考えたんだwwww
そのほうが頭がおかしい。
195:デフォルトの名無しさん
14/01/19 16:27:46.03
だいたい>>160で
> jQueryで下記のように所持しているツリー用のデータをkeyを指定してtitleを変更する
> 処理を作りたいんですが、どのようにしたらいいでしょうか?
って書いてあるじゃんw
196:デフォルトの名無しさん
14/01/19 16:28:37.69
>>190
>>191
いや、君は間違ってる。
俺がどういうことを考えたのかという認識に関しては>>189が合ってる。
俺が考えたことはkeyの長さと階層が比例する、かつ、階層の深さは不明だから再帰で
処理するとスタックオーバフローのおそれがあるよねということ。だから君はただ間違ってる。
ヒープとかは関係ないかな。
197:デフォルトの名無しさん
14/01/19 16:29:10.13
>>192
だからさ、キーの長さが階層に比例したとしても
キーの長さはスタック領域ではなく、ヒープ領域に格納されるから
キーの長さは全く無関係なの。
なんでキーの長さにこだわってるのさ?
198:デフォルトの名無しさん
14/01/19 16:31:09.36
>>194
トライっていう文字列を管理するデータ構造があってそれに
近いデータ構造なのかなって考えた。頭はおかしくないと思うんだけどなあ。
まあ本人が言っても説得力ないかw
>>195
うん? ちょっと何を言っているのかよくわからない。
199:デフォルトの名無しさん
14/01/19 16:31:43.98
階層の深さが不明だから、スタックが~っていうのならわかるが、
キーの長さは一体どこから出てきたんだw
キーの長さの話をした時点で、お前が馬鹿だっていうのは
みんなにバレてるんだよ。
200:デフォルトの名無しさん
14/01/19 16:33:04.17
>>198
> トライっていう文字列を管理するデータ構造があってそれに
質問を読め
>>160
> jQueryで下記のように所持しているツリー用のデータをkeyを指定してtitleを変更する
ツリー用のデータって書いてあるだろ。
お前、よく仕様をちゃんと読まないで突っ走って作っちゃって
あとからこれじゃだめだって青くなるタイプだろ?
201:デフォルトの名無しさん
14/01/19 16:36:11.36
>>197
文字列の長さと階層の深さが比例すると仮定するなら
文字列の長さが30000文字だったとするなら30000階層ノードを再帰的に
たどることになるでしょう。文字列の長さがヒープに格納されるっていうのはどういう
話をしているのかわからない。
>>193
最初読んでちょっと意味がわからなかったんだけど、たぶん主格を
読み間違ってるんじゃないかと。
>階層の深さが文字列の長さに比例すると考える
これの考えるという動作の主体は俺。
>keyの文字列と階層が比例するとは言ってはいないけど
これの言ってはいないという動作の主体は質問者である>>160。
これでたぶんわかるんじゃないかと。
202:デフォルトの名無しさん
14/01/19 16:36:59.45
トライは文字の種類が多くなるとメモリを大量に消費するんだが?
203:デフォルトの名無しさん
14/01/19 16:38:00.21
>>201
> 文字列の長さと階層の深さが比例すると仮定するなら
だから、仕様にそんなこと書いてないのに
仕様に書いてないことに対応するためのコードかくなって
こういう奴がいると迷惑なんだよ。
使いもしない、余計なものを作りやがっって。
204:デフォルトの名無しさん
14/01/19 16:40:11.59
>>201
本当にお前は頭が悪いな。
> 文字列の長さが30000文字だったとするなら30000階層ノードを再帰的に
> たどることになるでしょう。文字列の長さがヒープに格納されるっていうのはどういう
文字列の長さが30000文字じゃなくても、
30000階層のノードがあれば同じことだろ。
つまり、スタックというのは階層が増えるたびに消費するもので
文字列の長さとはまったく関係ない。
だから文字列の長さ話をする必要はないんだよ。
そこからお前が、無駄なことを考えてるってわかるわけさ。
205:デフォルトの名無しさん
14/01/19 16:40:29.64
>>200
>ツリー用のデータって書いてあるだろ。
書いてあるね、トライもツリーだから言葉上の整合性はとれるのよね。
>お前、よく仕様をちゃんと読まないで突っ走って作っちゃって
>あとからこれじゃだめだって青くなるタイプだろ?
どうなんだろうね、いまは働いていないけどこの先IT業界で
働き出したらそういうことになるのかもしれないね。まあ仕事就けるか
自体わからないけどね。君はそんな俺のことを思い浮かべながら仕事に
精を出したらいいと思うよ。
206:デフォルトの名無しさん
14/01/19 16:44:17.77
>>205
必要にならないものをせっせと書いてる馬鹿がいたなーって思い出せばいいのか?w
どうせならこの言葉を覚えよう
URLリンク(ja.wikipedia.org)
"You ain't gonna need it"[1]、縮めて YAGNI とは、機能は実際に必要となるまでは追加しないのがよいとする、エクストリーム・プログラミングにおける原則である。
理由[編集]
YAGNI原則を提唱する人々は、その理由として以下を挙げている。
あとで使うだろうとの予測の元に作ったものは、実際には10%程度しか使われない。したがってそれに費やした時間の90%は無駄になる[2]。
余計な機能があると我々の仕事が遅くなり、リソースを浪費する[2]。
予期しない変更に対しては設計を単純にすることが備えとなるが、今必要とする以上の機能を追加すると設計がより複雑になってしまう[2]。
あなたの人生の時間は貴重である。あなたの能力は単にコードを書くためではなく、現実の問題に集中するために使うべきである[3]。
結局はその機能は必要ないかもしれない。もしそうなったら、あなたがその機能を実装するのに費やした時間も、他のみんながそれを読むのに費やした時間も、その機能が占めていたスペースも、すべて無駄になってしまうだろう[3]。
コードをすばやく実装するために最も良い方法は、あまりコードを書かないことである。バグを減らすために最も良い方法も、あまりコードを書かないことである[3]。
207:デフォルトの名無しさん
14/01/19 16:45:13.16
>>203
俺は仕事でコード書いたわけじゃないし、質問読んで思いついたままに
コード書いただけだよ。君はたぶん嘘を言ってると思うんだよね。
君は何も迷惑していないよ。迷惑を受ける道理がない。俺の返信を迷惑だと
思うなら俺に返信してこないと思うし。俺の言ってること筋通ってない?
>>204
>文字列の長さが30000文字じゃなくても、
>30000階層のノードがあれば同じことだろ。
同じことだね。それで、いまは文字列の長さと階層が比例するっていう仮定で
話をしているんだから、文字列の長さと階層はとうぜん関係あるし、深い階層を
再帰でたどればスタックオーバーフローになるよね。
208:デフォルトの名無しさん
14/01/19 16:45:43.84
トライって言葉を使いたかったおこちゃまだなw
209:デフォルトの名無しさん
14/01/19 16:48:14.16
>>206
それはちょっと説得力に欠けるかと・・・
>>172
>つまり、ツリー構造から検索するキーが違う別の処理を書くのに、
>コピペする必要はなく、これだけでよくなってる。
こういうふうに言ってしまってるわけだし。読んでないと思ったでしょ?
俺読んでるんだからね。
210:デフォルトの名無しさん
14/01/19 16:48:26.12
>>207
> 俺の言ってること筋通ってない?
うん。ガキだなって思うよ。
非論理的で、おおよそ数学者や技術者に向いていない性格
211:デフォルトの名無しさん
14/01/19 16:49:06.13
>>208
まあそれもあるかな、コードを書きたかったっていうのが近いけど、まあどっちでもいいかw
212:デフォルトの名無しさん
14/01/19 16:49:21.65
>>209
> それはちょっと説得力に欠けるかと・・・
有名な言葉 VS お前
説得力があるのはどっちだと思う?
213:デフォルトの名無しさん
14/01/19 16:49:59.36
>>209
> 俺読んでるんだからね。
読んでるから何なんだよwwww
214:デフォルトの名無しさん
14/01/19 16:50:37.09
>>210
どこが非論理的かな?俺もまだ君から論理的な言葉を聞いていないな。
215:デフォルトの名無しさん
14/01/19 16:54:18.45
>>212
いやそうじゃなくて、伝わらんもんだな。
たとえばダウンタウンの浜田が人の頭を叩いちゃいけません
っていっても説得力感じないでしょ。浜田はそれで笑いを
とりまくってるわけだし。そういうこと。わかるだろ。わかれ。
216:デフォルトの名無しさん
14/01/19 16:58:15.65
>>214
非論理的だろ。
スタックがオーバーするのは、階層の深さが問題になるのであって
文字列の長さは問題にならない。
文字列の長さが階層の深さに比例するというのは
お前が勝手に決めたルールであって、そんなルールは
ツリーという言葉には適用されない。
お前が言ってるのはキーの長さが階層の深さに比例する場合
(※注意トライツリーにこのような定義はない)であって
いまはそんな特殊なツリーの話はしていない。
故にキーの長さは階層の深さ(とスタックオーバーフロー)は無関係。
お前が言ってるのは「哺乳類は卵を生むよ。カモノハシと仮定するならね」って
言っているようなもん。
十分非論理的だ。
217:デフォルトの名無しさん
14/01/19 17:01:35.11
>>215
> たとえばダウンタウンの浜田が人の頭を叩いちゃいけません
> っていっても説得力感じないでしょ。浜田はそれで笑いを
確かにお前が何を言っても説得力ないね。
はたから見てお笑い芸人みたいだからかな?w
218:デフォルトの名無しさん
14/01/19 17:05:43.94
人を笑わすお笑い芸人と
単に笑われているやつを一緒にするなw
219:デフォルトの名無しさん
14/01/19 17:24:50.85
>>217
それはちょっと卑怯な論法かな。
確かにと言って話を変えてるよね。
君は>>206でYAGNIを覚えようと俺に言った。
しかし、言った本人が>>172でYAGNIを破ってるじゃないか。
どういうことなんだい。っていうのが俺が言いたかったこと。
確かにって思ってくれる?
>>216
>文字列の長さが階層の深さに比例するというのは
>お前が勝手に決めたルールであって、そんなルールは
>ツリーという言葉には適用されない。
俺はデータを見て文字列の長さと階層の深さが比例すると仮定してコードを
示しただけだから、仮定はルールとは違うよね。それはそのとおり。
文字列の長さと階層の深さが比例するという仮定はツリーという言葉のみから
導いたものでもないのですべてのツリーに当てはまるというのは偽である。
これもそのとおり。なんだか疲れるなあ。なんかあれだな、ストローマン論法しかけられてるみたいw
文字列の長さが階層の深さに比例するというのはルールだなんて俺言ってないし、
そのルールがツリーという言葉に適用されるとも言ってないw
では文字列の長さが階層の深さに比例するというのはルールだといったのは誰か? 君だよね。
そのルールがツリーという言葉に適用されるといったのは誰か? これも君だよね。
こういう自作自演の論法は無益なだけだと思うんだよなあ。俺無職なんだけど、お仕事してる人は
毎日こういうことと戦っているの?おじさん働きたくない!!
220:デフォルトの名無しさん
14/01/19 17:35:29.27
>>219
> しかし、言った本人が>>172でYAGNIを破ってるじゃないか。
破ってないよ。
きれいなコードを書いただけ。
221:デフォルトの名無しさん
14/01/19 17:36:21.17
カモノハシ君必死だなw
222:デフォルトの名無しさん
14/01/19 17:38:53.06
>>216
>「哺乳類は卵を生むよ。カモノハシと仮定するならね」
どうでもいいっちゃどうでもいいんだけど、これって筋通ってないか?
(大前提)すべてのカモノハシと呼ばれるものは卵を産むものだ。
(小前提)すべての哺乳類と呼ばれるものはカモノハシと呼ばれるものだ。
(結論)ゆえにすべての哺乳類と呼ばれるものは卵を産むものだ。
小前提が間違ってるから論証としては間違ってるけど演繹は正しいよね。
小前提が成り立たないだけで。演繹が正しいならじゅうぶん論理的だと思うよ。
223:デフォルトの名無しさん
14/01/19 17:42:28.58
>>220
じゃあ俺も破ってないよ、仮定がたまたま違ってただけ。
224:デフォルトの名無しさん
14/01/19 17:42:35.08
「哺乳類は卵を生むよ。哺乳類=カモノハシという仮定が正しければね」
性格には、だろ?
225:デフォルトの名無しさん
14/01/19 17:43:41.35
>>223
仮定が間違っていたのだから
答えが間違っているっていうんだよ。
ツリーはトライツリーじゃないし、
トライツリーは階層が深くなるとキーが長くなると決まっていない。
226:デフォルトの名無しさん
14/01/19 17:56:08.61
>>225
>仮定が間違っていたのだから
>答えが間違っているっていうんだよ。
んなアホな。俺いまのプロジェクト終わったら結婚するんだと言った人が
プロジェクトが終わらなかったとしても子どもができちゃって結婚する
かもしれないだろ。プロジェクトが終わるという仮定は間違ってても
結婚するという答えはあってるかもしれないだろ。俺はまだあきらめてない。
安西先生も言ってた、あきらめたらなんとかかんとかって。
>ツリーはトライツリーじゃないし
そうだね、質問した本人がそういう旨のこといってるからそれは間違いない。
>トライツリーは階層が深くなるとキーが長くなると決まっていない。
トライは文字ごとにノード作るんだから文字列が長ければ階層も深くなるよ。
227:デフォルトの名無しさん
14/01/19 18:19:52.93
>>226
トライツリーを、理解するのに精一杯でしょw
文字列が合って、そこからトライツリーにするんじゃなくて、
トライツリーという構造が合って、その実装に
文字列キーに使ったり、文字列以外の物をキーに使ったりするわけ。
主体は文字列ではなくて、トライツリーなんだよ。
まだまだ素人、抽象化って考え方ができていない。
文字列がなければトライツリーという構造をイメージ出来ないでしょう?
228:デフォルトの名無しさん
14/01/19 18:28:53.18
>>227
理解してるつもりなんだけどなあ。
>>166でコードも書いたし。
>文字列キーに使ったり、文字列以外の物をキーに使ったりするわけ。
トライで文字列以外のものも管理できるよって話ね。
文字列以外のものって数値とか?
>主体は文字列ではなくて、トライツリーなんだよ。
これはちょっと意味がわからない。何の主体?
229:デフォルトの名無しさん
14/01/19 18:31:17.20
トライツリーに文字列は必須ではない。
つまり、文字列は不要って話。
230:デフォルトの名無しさん
14/01/19 18:32:48.93
>>228
コードは真似すればいいだけだから誰でもかける。
重要なのは考え方。
素人は、何かを知ったらそれで全部やろうとしてしまう。
つまり、ツリーと聞いてトライツリーのしかも一実装を
前提にしてしまうのがその証拠。
考え方を理解しているのではなく、
その一例を知ってるだけ。
231:デフォルトの名無しさん
14/01/19 18:33:04.27
>>229
ちょっと勝手に話を終わらせないで欲しいなwまあいいや君あまり知らなそうだし。
232:デフォルトの名無しさん
14/01/19 18:34:32.25
>>230
俺は素人だと君は言ってるだけだね。
そういう話は興味ないわw悪いけど。
技術的な話が聞けるかと思って話し振ってみたんだけど、無理そうだからいいですw
233:デフォルトの名無しさん
14/01/19 18:36:21.16
だいたいツリーって言っているだけなのに、
トライツリーであるという思い込みで
アルゴリズム書くのが馬鹿だよね。
トライツリーじゃなかったらどうなるのさ?
あなたのアルゴリズムは使えません。って言われるのが落ち。
仕様をきかずに突っ走って実装する
典型的な素人を脱したつもりの素人。
234:デフォルトの名無しさん
14/01/19 18:40:29.86
>>232
技術的な話?
>>160の話だよね。
>>160の問題を解決する、正しくて素晴らしい実装を示しただろ。
それを理解できず的はずれな指摘で難癖つけてるのはお前
お前が出したものはトライツリーでなければ使いものにならない
アマチュアコード書いて自己満足しているみたいだけど。
そして延々と自分の都合のいい話をしているだけ。
235:デフォルトの名無しさん
14/01/19 18:47:56.92
>>233
仕事でここにいるわけじゃないし。仕事もしてないし。
素人というなら俺は生粋の素人。
ここはこうなのかと詳細つめて実装するのも面倒なんで
質問文読んでこういう仮定でこういうコード書いたって提示して
あとは質問者が選ぶだろうからそれでいいかと。俺のコードを
何がなんでも使えと質問者に押し付けてるわけではないし、
押し付けることができるわけでもないし。質問者がありがとうございましたと
返信してくれたらラッキくらいの本当に謙虚な気持ちで俺はここにいるわけ。
あなたのアルゴリズムは使えませんと言われてもじゃあしょうがないとしか思わないので
まあ別にどうでもいいかなそのへんは。君はそういうの気にするほう?大変じゃない?ここ2chだよ。
おじさん君のメンタルが心配だよ。
236:デフォルトの名無しさん
14/01/19 18:59:50.29
>>234
正しいことを判断するのは君じゃないよねw
素晴らしいと自分で言うのはあれだよね、あれだと思うよ。君、あれだよ。
俺はトライのような構造という仮定でコードを書いた。
君は俺とは違う仮定でコードを書いた。
仮定が違うからお互いに言い合うことが的外れなのはまあ仕方ないかと。
すこしくらいすれ違うほうが会話は弾むものだよ、ご愛嬌ってことで。
俺と話して楽しかったでしょう?いやあ俺もね思わず時間を忘れたね、ひさびさに楽しかったね。
237:デフォルトの名無しさん
14/01/19 19:31:47.82
>>235
仕事かどうかじゃなくて、
プログラマかどうかね。
本物のプログラマの品質と
素人(お前の)の違い。
仕事してなくても本物のプログラマはいる。
ようはゴミコードばらまかないでくれって話。
238:デフォルトの名無しさん
14/01/19 19:33:22.90
>>236
> 俺はトライのような構造という仮定でコードを書いた。
その仮定のでお前は無駄なコードを書いた。
トライではなかったのだから。
まあ、トライにしてもコードの質は低いけどねw
かろうじて動く程度のコード
メンテナンス性など一切考慮されていない。
239:デフォルトの名無しさん
14/01/19 19:59:00.97
>>237
プログラマじゃないしプログラマのようにコード書けると
思ってるわけでもないんで、なんで君はそう何度も俺に素人だと
言ってくるのかちょっとよくわからない。恋心とは違うでしょ?
違うと思うわ。俺はねそのへん冷静に考えられるだけの頭は持ってるつもりだから
君が俺に思いをよせてるとは当然思っていないよ、でも君がもしよ、もし女で、
ある程度容姿が優れていて俺のことを少なからず思っているというのなら
俺はメールアドレスを交換する用意があることをお伝えせざるを得ない。
>ようはゴミコードばらまかないでくれって話。
い や だ。
>>238
無駄というならこうやって2chをながめていることさえも
君にとっては無駄なことだろう。俺は生活の一部だけどねw
俺にとって無駄なことだからやるべきじゃないと俺のことを
心配してくれているとしたらほんとうにありがとうございます。
>メンテナンス性など一切考慮されていない。
そうだね。2chに投稿したコードを今後ともメンテナンスしていこうなどという
気概はまったく持っていない。俺もITのお仕事に就いたらそういうふうに考えるように
なるのかなあ。それって幸せなことなんだろうか。いまの俺には皆目わからない。
240:デフォルトの名無しさん
14/01/19 20:13:41.75
>>239
うぜぇw
241:デフォルトの名無しさん
14/01/19 20:13:48.82
単純な話、そういう気概で議論したい人は(多分)2chにはいないと思うから
好きなだけ一人相撲するといいよ
242:デフォルトの名無しさん
14/01/19 20:16:09.66
なに恋とかわけわからんこと言い出してるんだろw
こいつ脳みそおかしいw
243:153
14/01/19 21:33:49.95
誰が誰だかわからんが
>>167の偉そうな感じの悪さは頂点クラス
どうせこいつのせいだろ荒れたの
244:デフォルトの名無しさん
14/01/19 21:38:36.54
末尾再起はES6からコールスタックを消費しないで良いよう定められたから心配しなくて大丈夫よ。
URLリンク(wiki.ecmascript.org)
245:デフォルトの名無しさん
14/01/19 21:40:48.97
じゃあせっかくなので話題変える意味で
nodeとそのchildrenが与えられるとして、末尾再帰を使ってツリー全体を処理するコードってどう書く?
246:デフォルトの名無しさん
14/01/19 21:45:16.57
すでにJavaScriptの話じゃ無くなってるな
247:デフォルトの名無しさん
14/01/19 22:08:38.50
>>243
その言葉にカチンときたの?w
248:デフォルトの名無しさん
14/01/19 22:09:37.36
>>245
再帰はスタックオーバーフローするから
使うべきじゃない。トライって知ってるか?
249:デフォルトの名無しさん
14/01/19 22:11:43.48
>>245
これを末尾再帰にすればいいだけ?
ノードを処理するコード自体は
コールバックに分離されているからいいよね?
// 汎用関数
function select_node(nodes, children_key, callback) {
var ret = [];
function recursive(nodes) {
if ( !nodes ) { return }
for ( var i = 0 ; i < nodes.length; i++ ) {
var node = nodes[i];
if ( callback(nodes) ) { ret.push(nodes) }
recursive(nodes[children_key]);
}
}
recursive(nodes);
return ret;
}
250:デフォルトの名無しさん
14/01/19 22:37:31.45
>>247
カモメ、カモメ、カチン、カチン。
かを抜いて言ってみな、おじさんからのアドバイスだ。
もう寝るからね。
251:デフォルトの名無しさん
14/01/20 00:12:20.77
幼女か?幼女が来たのか?
252:デフォルトの名無しさん
14/01/20 00:13:37.11
>>250
カモメ、カモメ、カチン、カチン。
かを抜いて言ってみな、おじさんからのアドバイスだ。
253:153
14/01/20 04:31:28.20
コミュ力低い人間が一人いるだけで皆が迷惑してしまうねぇ
254:デフォルトの名無しさん
14/01/20 05:33:10.42
>>253
そういう排斥活動に力入れたらいじめと変わらなくなるよ。
冷静になるための魔法の言葉を教えてあげよう。
かもめかもめかちんかちん。
心の中でこれを唱えればいい。
かちんかちんっていうのがいかにも冷たそうでしょう。
南極の空を雄大に羽ばたくカモメさんを意識した言葉。
クールになれるおまじない。唱えるときはかを抜くんだよ。
255:153
14/01/20 07:22:01.96
変なやつばっか
256:デフォルトの名無しさん
14/01/20 07:43:31.49
ンーwwwwwwwwwwww
257:デフォルトの名無しさん
14/01/20 14:48:29.65
コードに駄目出しされたときの反応、桃白白とかピラフに似てるな
全部同一人物だったりして
258:153
14/01/20 18:34:25.11
しつけえなぁ
こういう低能とはネットでもリアルでも絡みたくないものだ
259:デフォルトの名無しさん
14/01/20 22:43:13.85
>>252
力(ちから)を抜いてだろ
260:デフォルトの名無しさん
14/01/20 22:47:39.53
>>258
じゃあ出てけよ
261:デフォルトの名無しさん
14/01/20 23:22:41.73
>>249
何回も同じゴミコード晒す奴の気がしれない。
ゴミコードばらまかないでくれ。
262:153
14/01/21 00:15:35.66
ゴミゴミ言うなら ここをこうしたほうが良いですよって言う生産的アドバイスをしろな
そして自分がまず作って見せてみろ
批判だけならどんな低能でも出来るからな
263:デフォルトの名無しさん
14/01/21 01:41:25.31
どんな低脳でもできるからそういう書き込みがあるんだと分かってんだろ
逃げるだけよ
そして別口の煽りを繰り返す
そんで構うなっていう奴が出てきてスルー検定失敗と煽られる流れが続く訳だ
で、なんで君コテ気取ってんの?
153ってお前じゃないぞ
264:デフォルトの名無しさん
14/01/21 05:13:22.94
>>262
>批判だけならどんな低能でも出来るからな
お前が言うな
265:デフォルトの名無しさん
14/01/21 05:16:38.13
他人を落としてのし上がっただけの低学歴が
自分のコードが優れていると思い込むひどい現状を目の当たりにし
京大法学部を出た自分としては戦慄している
266:デフォルトの名無しさん
14/01/21 05:24:21.89
>>262
アマチュアコード書いて自己満足しているみたいだけど。
そして延々と自分の都合のいい話をしているだけ。
267:デフォルトの名無しさん
14/01/21 05:25:19.38
>>262
本物のプログラマの品質と
素人(お前の)の違い。
仕事してなくても本物のプログラマはいる。
ようはゴミコードばらまかないでくれって話。
268:153
14/01/21 06:08:28.60
本物のプログラマはコードで人を納得させる
269:153
14/01/21 06:16:30.42
人を馬鹿にするだけの非生産的発言ばかり繰り返す奴は
誰にも必要とされてないよ
この機会に自分を変えるきっかけになったらどうかね
270:デフォルトの名無しさん
14/01/21 07:07:13.11
>>268
>>249は偽物のプログラマであることが明らかになりました
271:デフォルトの名無しさん
14/01/21 07:11:39.69
>>269
お前はなんでここにいるんだ?
誰にも必要とされないからだろうがw
他人に言う前に自分が変われよw
僕はこうして変わりましたという
エピソードを創価学会のように発表してみろよ
池田大作先生を崇めろ
272:デフォルトの名無しさん
14/01/21 07:33:13.40
勝手に妄想して余計な気を回す奴っているよね
273:デフォルトの名無しさん
14/01/21 08:29:33.64
死ねゴミ共がw
死ねゴミ共がw
274:デフォルトの名無しさん
14/01/21 08:44:08.58
死ねゴミ
275:デフォルトの名無しさん
14/01/21 10:28:30.48
>>269
コードレビュー文化全否定ですか
276:デフォルトの名無しさん
14/01/21 13:58:07.42
>>275
「人を馬鹿にするだけの非生産的発言ばかり繰り返す」コードレビューしかできないならしないほうが良いな。
普通、バグの指摘や非効率部分の指摘(≒効率化の提案)で生産的な行為をするんじゃないの?
馬鹿なミスは馬鹿にされるかもしれんが、生産性ゼロなコードレビューなんてコードレビューじゃないだろ。
コードレビューと銘打たれた無意味なパワハラ業務会議とでも呼んでゴミ箱に捨てろ、そんなもん。
277:デフォルトの名無しさん
14/01/21 14:39:57.23
>>276
自分の書くコードが、他人から見たらゴミコードだってわかるだけでも儲けものでしょ
278:デフォルトの名無しさん
14/01/21 14:54:45.23
>>276
> 普通、バグの指摘や非効率部分の指摘(≒効率化の提案)で生産的な行為をするんじゃないの?
仕事でやるレビューはそうだけど、ここじゃそんなことを期待しても無駄。
279:デフォルトの名無しさん
14/01/21 15:09:02.25
>>276
warningを0にしろとか言われた日には泡噴いた
280:デフォルトの名無しさん
14/01/21 15:18:15.07
>>279
いやしろよ
281:153
14/01/21 20:51:37.22
具体的良案を示すっていうのは、頭が悪い人には出来ないからなぁ
確かに期待しても、その根本の問題がある限りは無駄かもしれないな・・。
282:デフォルトの名無しさん
14/01/22 00:27:13.81
>>277
罵倒するだけだと他人から見てゴミだって示せてないけれど
ちゃんと他人から見たらゴミだって示せてるなら一応は生産的
275が生産的なコードレビューの存在を認めてるかどうかは知らん
>>279
しろよ。コンパイラの問題なら警告無効化オプションでも個別に付けとけ
>>281
頭が悪くて人格も悪いとか救いようがねぇな
それでやる気があったり世渡り上手いと始末に負えん
283:デフォルトの名無しさん
14/01/23 10:32:19.15
死ねゴミ共がw
284:デフォルトの名無しさん
14/01/23 20:54:32.67
Jqueryで現在のキャレット位置を取得して文字列の貼り付けをしたいのですが、
「document.selection.createRange()」でキャレット位置を取得できません。
ちなみに、IE11です。
285:デフォルトの名無しさん
14/01/24 00:39:45.75
入門者のJavaScript
作りながら学ぶWebプログラミング
URLリンク(bookclub.kodansha.co.jp)
ブルーバックスのような一般人向けのシリーズからもJS本が出る時代。
普及したな。
286:デフォルトの名無しさん
14/01/24 14:06:42.69
[参考] ベンチマーク - FOR-NEXT10億回ループ - DarkBASIC
J AS INTEGER
T=TIMER()
FOR J=0 TO 1000000000:NEXT J
PRINT (TIMER()-T)/1000.0:WAIT KEY
参考 旧Ver CeleronD2.66GHz -------- 20.853秒
参考 旧Ver Core i7-4770K 3.5GHz ---- 5.501秒
参考 77RC7 Core i7-4770K 3.5GHz --- 1.798秒 (旧Verの約3.06倍)
参考 Core i7-4770K 3.5GHz Windows8 64bit版 JavaScript - 1.506秒
<script>
var t=Date.now();
var j=0;
for(j=0; j<1000000000; j++){}
document.write( (Date.now()-t)/1000.0 );
</script>
JavaScriptに並んだと言うコトは…もはやVC++もJavaScriptも不要w
ソース隠蔽可能なDarkBASIC 77RC7の圧勝。
287:デフォルトの名無しさん
14/01/25 07:04:39.93
死ねゴミ共がw
288:デフォルトの名無しさん
14/01/25 16:39:38.82
初歩的な質問です。
勉強目的で初歩的な暗算問題を出すプログラムを組んでみて、出題ごとに制限時間を設定したいんですが
うまくいきません
出題問題を繰り返すdo while文の中にsetTimeout(関数,時間)と入れてみて制限時間後に時間切れのフラグを
立てる関数を動かすというやり方を試したのですが、setTimeoutの性格上、do while文が終了後に処理される
ので、全く意味がありませんでした。
何かいい方法はないでしょうか?
289:デフォルトの名無しさん
14/01/25 16:56:05.73
ソース全文貼り付け
290:デフォルトの名無しさん
14/01/25 17:14:30.43
var timeover = 0; //時間切れのフラグ
function game(){
var basic = 0; //基本値
var max_math = 11; //最大値
var limit; //制限時間
var question = 0; //問題数
var count = 0; //正答数
var flg = 0; //お手つき回数
var ans //利用者の回答。初期値は空白
var mark; //正答、誤答のマーク
//成績表の初期化
var result = document.getElementById("judge").value;
result = "";
document.getElementById("judge").innerHTML = result;
//問題の作成
//最低、1回は問題を通すためdo while文を使用する。
var timestop = setTimeout("setlimit()",1000);
do{
//出題形式の変更
if (question < 20){
basic = 10;
limit = 1000;
}
else{
basic = 20;
max_math = 80;
limit = 30000;
}
291:デフォルトの名無しさん
14/01/25 17:15:47.90
//乱数の発生
var fst = basic + Math.floor(Math.random()* max_math);
var scd = basic + Math.floor(Math.random()* max_math);
//問題の変数 関数make_ques
var just = make_ques(fst,scd);
//制限時間設定
ans = prompt(question+1 + "問目:" + fst + "×" + scd );
//時間内に回答されたか?
if(timeover != 1){
//正答かどうか?
if(just == ans){
//confirm("正解です");
mark = "○";
count++; //正答数のカウント
}
else{
var exam = confirm("残念、答えは"+just+"です。あなたの答え"+ans);
mark = "×";
flg++; //お手つきの回数
}
}
else{
var exam = confirm("時間切れです。答えは"+just);
mark = "×";
flg++; //お手つきの回数
}
292:デフォルトの名無しさん
14/01/25 17:16:48.43
clearTimeout(timestop);
document.getElementById("judge").innerHTML += mark;
timeover = 0; //時間制限フラグのリセット
question++ ;//問題の追加
//回答権の放棄による処理
if(exam == false){
alert("出題を終了します");
break;
}
//flg回のお手つきか、quesiton回の問題でループを抜ける
}while( flg < 5 && question < 100)
clearTimeout(timestop);//時間制限のリセット
var perc = (count / question) * 100;
perc = (Math.round(perc*10))/10;
var win = window.open("","result","toolbar=no,location=no,menubar=no,status=no,width=400px,height=40px,left=700px,top=300px");
win.document.write("問題数"+question+"問。正解数:"+count+"正解率:"+perc+"%");
}
//出題の計算処理を行う
function make_ques(a,b){
var c = eval(a * b );
return a,b,c;
}
//時間制限でフラグ表示
function setlimit(){
timeover = 1;
return timeover;
}
293:デフォルトの名無しさん
14/01/25 17:20:39.18
以上、貼り付けてみました。校閲お願いします
補足
ごちゃごちゃいじったせいで、setTimeoutの位置がおかしくなりました。
元々はdo while文のpromptの前にありました。
294:デフォルトの名無しさん
14/01/25 17:56:13.02
>>288
promptにはtimeoutは指定できないので、根本的に考え方を変える必要がある。
まず、画面上に出題欄(<div>とか<p>とか)と入力欄(<input type="text">)とボタンを配置。
で、timeoutだけじゃなく、入力欄への入力やボタンを押すのもdo while終了後になるから、
ループして出題を繰り返すんじゃなく、次のようにイベント駆動にする必要がある。
// グローバル変数
var question, count, flg, just, timer;
function game() {
変数を初期化;
次を出題();
}
function 次を出題() {
if (question < 100 && flg < 5) {
question++;
just = 正解;
出題欄に問題を表示;
timer = setTimeout(時間切れ, 1000);
} else {
終了時の処理;
}
}
295:デフォルトの名無しさん
14/01/25 17:59:01.83
続き。
function ボタン() {
clearTimeout(timer);
var ans = 入力欄の内容;
if (ans == just) {
正解と表示;
count++;
} else {
間違いと表示;
flg++;
}
次を出題();
}
function 時間切れ() {
時間切れと表示;
次を出題();
}
296:デフォルトの名無しさん
14/01/25 18:28:10.09
>>294->>295
アドバイス含めてありがとうございます。基本から作り直してみます
297:デフォルトの名無しさん
14/01/31 18:26:41.03
jQueryでおすすめのギャラリープラグインを教えてください。
最低でもスワイプでの拡大縮小と先読みプリロードの
機能があるやつが良いです。
298:デフォルトの名無しさん
14/01/31 23:25:00.82
URLリンク(i.imgur.com)
お願いします
299:デフォルトの名無しさん
14/02/01 00:06:00.50
お願いされてもその絵柄とやら出してもらわんとどうしようもなくね
動きゃいいならぶるぶる震わせてやらんこともないが
300:デフォルトの名無しさん
14/02/01 21:51:12.69
>>298 つくったぞ
URLリンク(jsdo.it)
301:153
14/02/01 23:03:56.44
>>300
お前センスあるな
302:512
14/02/14 23:35:22.67
>>301
自演乙
303:デフォルトの名無しさん
14/02/15 02:09:15.07
俺は153でも300でも無いけど、俺も皮肉効いててうまいと思ったよ。
>>302
よう298、宿題はできたかい?
304:153
14/02/15 21:09:48.52
>>512
大体お前は物事の真実見る目が甘すぎんだよ
いい加減にしろ良いな
305:デフォルトの名無しさん
14/02/15 22:22:35.80
分かりました
306:デフォルトの名無しさん
14/02/18 22:45:45.96
質問です
.jsがドリームウィーバーで関連付けられてしまい実行しなくなりました。
その後間違えてcmdを規定にしてしまったら直そうと思ったときに規定のチェックボックスが選択できなくなり、困っています。
変更方法が解れば教えてください
環境はwin7 64bitです
307:デフォルトの名無しさん
14/02/21 18:55:55.53
どこの>>512だよ
308:デフォルトの名無しさん
14/02/23 13:48:14.20
今更だがESはMath系の精度が厳密に定められてなから気を付けた方がいい
定数のMath.PIでさえも、「およそ3.1415926535897932」だから例え3を返す実装があっても違反だとは言えない
で、Chromeは33から三角関数の実装をネイティブからJavaScriptに移動した
この結果ChromeだけMath.cos(Math.PI/4) !== Math.SQRT1_2になった
function b(n) {
console.log(n);var a=new Uint32Array(new Float64Array([n]).buffer)
console.log('0.1'+('0'.repeat(19)+a[1].toString(2)).slice(-20) + ('0'.repeat(31)+a[0].toString(2)).slice(-32))
}
b( Math.SQRT1_2 )
__ 0.7071067811865476
__ 0.10110101000001001111001100110011111110011101111001101
b( 1/Math.sqrt(2) )
__ 0.7071067811865475
__ 0.10110101000001001111001100110011111110011101111001100
b( Math.cos(Math.PI/4) )
Ch 0.7071067811865475
Ch 0.10110101000001001111001100110011111110011101111001100
Fx 0.7071067811865476
Fx 0.10110101000001001111001100110011111110011101111001101
因みに実際の値は
__ 0.7071067811865475 24400844......
__ 0.101101010000010011110011001100111111100111011110011001 011111111......
で10進表記的にはChの方が近いが内部表現上はFxの方が近い
このところパフォーマンスのために自己ホスト化がどんどん進んで、変わりに精度がわずかに下がってる
常識だとは思うが、テストはassertEqualsではなくassertEqualsDeltaを使うようにした方がいい
309:デフォルトの名無しさん
14/02/25 04:41:28.70
こんばんは。
動的に作った関数名の中にある数値を、その関数の内部から読み込みたいのですが、何かいい方法はありませんでしょうか。
numberOfFunc=10
for(i=1;i=numberOfFunc;i++){
var dynamicFunc = "test" + i
window[dynamicFunc] = function ()
310:デフォルトの名無しさん
14/02/25 04:54:34.57
誤投稿すみませんでした。
動的に作った関数名の中にある数値を、その関数の内部から読み込みたいのですが、何かいい方法はありませんでしょうか。
numberOfFunc=10
for(i=1;i=numberOfFunc;i++){
var dynamicFunc = "test" + i;
window[dynamicFunc] = function (){
//ここからdynamicFuncに格納されている関数名iの数値を読み込みたい。
}
}
各関数内部から i の値を読み込んでみたのですが、各関数名と i の値が一致しない(関数内部の i には常にnumberOfFuncの最大値が格納されてしまう)ために、
この方法を知りたいな、と思いました。どなたか宜しくお願い致します。
311:デフォルトの名無しさん
14/02/25 06:33:18.28
var test = new Object();
for(var i=0;i<10;i++){
var dynamicFunc = 'test' + Number(i);
test[dynamicFunc] = {
num: i,
fn: function(){
console.log(this.num);
}
}
}
for(var i=0;i<10;i++){
var dynamicFunc = 'test' + Number(i);
test[dynamicFunc].fn();
}
こんな感じ?
312:デフォルトの名無しさん
14/02/25 06:46:18.77
var test = new Object();
for(var i=0;i<10;i++){
var dynamicFunc = 'test' + String(i);
test[dynamicFunc] = {
num: i,
fn: function(){
console.log(this.num);
}
}
}
for(var i=0;i<10;i++){
var dynamicFunc = 'test' + String(i);
test[dynamicFunc].fn();
}
みすってた
変数にwindowは使ったらだめじゃね
313:デフォルトの名無しさん
14/02/25 08:09:26.66
クロージャ、クロージャを使う
URLリンク(www.united-bears.co.jp)
314:デフォルトの名無しさん
14/02/25 09:14:14.22
クロージャって単語見るとどーしても野球のピッチャーが頭に浮かんでくる
315:デフォルトの名無しさん
14/02/26 01:01:29.08
野球ようわからんのだけどそっちだとどういう意味になんの?
敵の攻撃回を終わらせる役、みたいなこと?
316:デフォルトの名無しさん
14/02/26 01:05:13.25
レスするのもはばかれるが、クローザーの事だろ
317:デフォルトの名無しさん
14/02/26 01:39:20.07
>>311
>>312
>>313
レス有難うございます。
とりあえず教えて下さったコート及び方法を元に、コードを書き直してみようと思います。
318:デフォルトの名無しさん
14/02/26 04:45:19.77
なぁ、お前たちってJavaScript何に使ってるの?
JSってあんま用途が無いように思えるんだけど
HTMLで出来ない事をちょっとするだけとか
Node.jsとかあるけど、あんまよく分かんないし
自分はjavascriptからプログラミングに入ったけど、もうずっと使ってないんだよね
どんな用途があるのかなぁと
319:デフォルトの名無しさん
14/02/26 09:59:10.78
closer
と
closure
は
全然違う
320:デフォルトの名無しさん
14/02/26 10:20:03.87
>>318
HTMLで出来ない事をちょっとするだけに使ってる
321:デフォルトの名無しさん
14/02/26 21:57:36.06
>>318
> Node.jsとかあるけど、あんまよく分かんないし
つまり君にはあんまよく分かんない用途で使われてるってことじゃね?
それはともかく、最近のWebアプリケーションは結構な分量の処理をWebブラウザ上のJavaScriptで動かしてるから主にその辺で使う
いっぺんJavaScript切ったブラウザでWeb巡回してみろ、相当しょっぱくなったり動かなかったりするぞ?
322:デフォルトの名無しさん
14/02/26 22:15:58.82
Javascriptに頼ってるようなWebサイトの方がしょっぱい
323:デフォルトの名無しさん
14/02/26 23:05:06.57
…それは、いうな。
324:デフォルトの名無しさん
14/02/26 23:06:56.03
そうだそうだ
サーバ側で全部の処理をやって何が悪い
AJAXなんか廃れろ
325:デフォルトの名無しさん
14/02/27 10:03:37.69
HTML5のブラウザってjavascript無効に出来るの?
326:デフォルトの名無しさん
14/02/27 12:26:50.34
>>318別に何に使うとかじゃないんだよ
役に立つこともあるけど、役に立たせようと学んでるわけじゃない
プログラマはコードやその動作に対する美的なものに惹かれて学んでるんだよ
プログラムすること自体が楽しくて、手段が目的で自己完結してる
つまり趣味で、釣りする人が必ずしも食費減らすためにしてるわけじゃないのと同じ
まずプログラミング自体に興味があれば、普段からいろいろ調べるでしょ?
そしたらこんなのがあるんだ、って感動できるじゃん?
そういう時にパッとコンソール開いて試してみるのよ
時には長いコードを書いて遊んでみることもある
そうしてるときがプログラマにとって至高の瞬間なんだよね
プログラマはオタク、言い方変えれば研究者だからね
で、Webの日進月歩で開拓されていく可能性がプログラマの好奇心を常に刺激し
Webの開かれてて皆で共有してる感じがプログラマに安心感を与えるんだよね
さらにすぐその場で簡単に試せることと相まってプログラマは全能感を得られる
だからWebはプログラマにとって最大のパラダイスで
そこに導いてくれるJavaScriptは至高の言語なんだよね
で、逆に、それほどWebやJSやプログラミングが好きになれば
そして好きこそ物の上手なれで思いついたことをスラスラ書けるほど十分に上達すれば
実用的なことでも色んな場面で使ってみようと思えてくるはずだよ
ユーザースクリプトとか拡張機能とかでね、それがまた幸せに思えるんだよ
327:デフォルトの名無しさん
14/02/27 12:28:17.30
長い
328:デフォルトの名無しさん
14/02/27 13:30:19.82
う・・だめだ・・
この茶化したい衝動を抑えきれない・・・
329:デフォルトの名無しさん
14/02/27 14:54:35.24
イラッとさせるのがうまいな
330:153
14/02/27 16:10:52.70
縦読みは便利だな
ゴミ書き込みかどうかが数秒でわかる
331:デフォルトの名無しさん
14/02/27 23:48:40.42
>>330
縦読みでわかるのはなぜですか?
332:デフォルトの名無しさん
14/02/28 02:00:56.04
JavaScript開発でおすすめのIDEありますかね?
333:デフォルトの名無しさん
14/02/28 02:47:25.48
Chrome・・・はどっちかというとデバッガか
334:153
14/02/28 05:41:10.14
なかなか無い
誰か作れよ
1000円くらいなら出してやる
335:153
14/02/28 05:46:13.08
>>331
斜め読みでした
336:デフォルトの名無しさん
14/02/28 21:38:10.06
>>332
WebStorm一択
337:デフォルトの名無しさん
14/03/01 12:58:33.15
正直デザイン周りはjQueryで十分だしな
JSはフォーム周りぐらいか
338:デフォルトの名無しさん
14/03/01 13:24:21.91
各WebサービスのAPIを利用して何か便利なものを作る場合もJavascriptは結構使う。
339:デフォルトの名無しさん
14/03/01 16:21:20.25
使わない人(静的HTML作成に毛が生えたような程度)なら使わないだろうね。
ウェブアプリならJavaScript使いまくり。
340:デフォルトの名無しさん
14/03/01 20:21:54.57
昔はJavaScriptは避けられてたけど
今はWebアプリのメインはJavaScript開発で
サーバサイドはJSONを返却するだけ
341:デフォルトの名無しさん
14/03/01 20:23:56.09
ちなみになんで避けられてたの?
342:デフォルトの名無しさん
14/03/01 21:02:14.93
いやサーバサイドでもNode.jsでJavaScript動いてて、動的にhtml生成したり、webスクレイピンぐしてクライアントに投げたりとかしてるし。
Windows8でも今はJavaScriptでネーティブアプリ書くしな。
343:デフォルトの名無しさん
14/03/01 21:12:25.52
スクロール量に応じてアニメーションを進めるサイトあるけど、
あれって単純にアニメーションをトリガーするだけの方がいい気がする
そうしないとコードが複雑になるし
滑らかじゃない(途中でスクロールやめたらアニメーションもフリーズ)からなあ
344:153
14/03/02 00:02:59.99
()の使い方を誤用するな
345:デフォルトの名無しさん
14/03/02 00:26:22.56
プ()笑
346:デフォルトの名無しさん
14/03/02 02:36:55.16
>>342
JavaScriptを(JITではなく)ネイティブコードに変換する処理系とか実用になってんの?
それとも、ネイティブコードじゃなくてもネイティブアプリって呼ぶのが流行ってんの?
347:デフォルトの名無しさん
14/03/02 09:15:02.26
WEBアプリの対義語としてなら理解出来んでもない
348:デフォルトの名無しさん
14/03/02 10:56:04.18
AndroidでDalvikアプリがネイティブアプリと呼ばれてるのも違和感あるな。
あれもwebアプリとの対比だろうけど、そのくせNDKもあるんだからややこしいというかスッキリしない
一方で、AndroidではwebViewにオフラインhtmlを表示する形のJavaScriptアプリはネイティブとは呼ばれてないし
言ったもん勝ち状態?
349:デフォルトの名無しさん
14/03/02 11:03:56.77
>>346
URLリンク(developers.slashdot.jp)
350:デフォルトの名無しさん
14/03/02 19:48:57.93
質問なんですが、
functionでvarしたオブジェクトは通常は関数を抜けた時点で破棄されるが、returnした場合は
呼び出し元で参照されるので破棄されないという解釈でいいでしょうか?
また、returnされたオブジェクトを呼び出し元で別のオブジェクトのプロパティとしてネストした
場合、その親オブジェクトが破棄された時点でネストしたオブジェクトも一緒に破棄されるん
でしょうか?
351:デフォルトの名無しさん
14/03/02 21:14:31.48
つ GC
参照がなくなりゃ消える
352:デフォルトの名無しさん
14/03/02 22:42:54.21
>>348
Dalvikアプリをネイティブアプリなんて呼んでるアホが居るのか…
NDKが有るんだからどう考えてもDalvikアプリはネイティブじゃねぇだろ
>>349
そのスラドストーリーがどうしたの?