1 :
デフォルトの名無しさん :
2013/09/26(木) 15:34:20.26
2 :
デフォルトの名無しさん :2013/09/26(木) 15:41:43.87
< `∀´>ニダー
3 :
デフォルトの名無しさん :2013/09/26(木) 17:22:27.98
4 :
デフォルトの名無しさん :2013/09/29(日) 01:10:32.44
サイ本ってリファレンスも買わなきゃだめなもの?
サイ本なんて買わなくていい それよりもJavascriptパターンを買いなさい
サイ本なんて買わなくていい それよりサイを買いなさい
8 :
デフォルトの名無しさん :2013/09/30(月) 15:17:02.86
シロサイ買ってきました 次は何をすればいいですか
9 :
デフォルトの名無しさん :2013/09/30(月) 16:41:56.97
クックブック一冊、手打ちしたらいい思う
次はキリンだな。動物園の影の人気もの。外せないね
11 :
デフォルトの名無しさん :2013/10/01(火) 01:50:42.38
質問失礼します。 javascriptのcanvas上の矩形内にhtmlを表示したいです。 しかもそのhtmlが貼られた矩形を回転したいです。 可能ならばhtmlを画像化せずに表示したいのですが、可能でしょうか? よろしくお願いします。
13 :
11 :2013/10/01(火) 08:47:19.64
>>12 ありがとうございます。
教えていただいた先で聞いてみます。
C++からjavascriptに移行してきたんだけど {}でスコープが区切られないとなると、名前の衝突を防ぐには 細かく関数化するのが定石ですかね?
15 :
デフォルトの名無しさん :2013/10/01(火) 12:59:22.21
(function () { ょぅι゛ょ })() (function () { ょぅι゛ょ })()
functionを ()で括る意味がいまだに分からない
即時関数だよ。ググレカス
>>17 function式として解釈させるためだよ
だから括弧じゃなくても !function () {}() でもいい
いくない!(`ヘ´)
>>16 書き込んでしばらくしてそれも思いつきました
それってスコープとして有効なんですよね?
即時関数って言うのね,ググったら何となく分かったよ
戻り値が無いんなら
>>19 のでもいいんだね
自分の場合は使う事無さそう
varの代わりにletを使えばブロックスコープになる。 ただし、今はまだ使えないブラウザが生き残ってるから、 ブラウザを指定できる場合か、 サーバーサイドでのみで使うことになる。
let てBASICかよw
>>24 その発想はなかった。
lisp, scheme, haskell, python, ml などにもあるから
知っている人にとっては、そんな発想は絶対に浮かばない
あ、分かりやすく言うとお前BASICしか知らんのか、ザコめって
言ってるんだからねw
26 :
デフォルトの名無しさん :2013/10/01(火) 21:55:47.91
ズラズラ言語並べてるけどお前は基本(BASIC)がなってないんだよw
みなさん、笑うところですよ?(棒)
HA HA HA HA!
関数のオーバーヘッドがーっていうのが納得できない。内部で最適化しろよって思う
その最適化をする時間が、オーバーヘッドなんだろ。 っていうかいきなり何の話だ?
言葉がスベってて痛々しい
例えば、var a = new Array(); と var a = []; は同じだけど[]の方が推奨とか じゃあ内部で完全に同じ処理にすればいいじゃん という話
33 :
デフォルトの名無しさん :2013/10/02(水) 04:57:04.28
Arrayが隠蔽されてないか確認が必要なんじゃね?
>>32 new Arrayと[]は同じじゃないぞ。
配列の初期化をするのに[]を使うのが推奨な理由は
new Array(5) を実行してみればわかる。
この答えは[ undefined, undefined, undefined, undefined, undefined] だ。
new Array(5, 6) の答えは [5, 6] なのにな。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array 引数の数で最適化の仕方を変えればいいと思った?
違う。君は速度のことしか頭に無いようだが、
[]が推奨の理由は、Arrayコンストラクに一貫性がなく
勘違いする可能性があるからだよ。
そしてもう一つの理由はArrayコンストラクタは書き換えることが可能だからだ、
Array = function() { ・・・ }
そんなことせんだろうが、出来る以上new Arrayは実行時に処理するしかない。
それに対して[]はコンパイル時に処理する。動的なものはコンパイル時に最適化出来ない。
backborn.js、、、 難しいな。 javascriptが難しいのか、設計思想が難しいのか、、、 やはり、馬鹿には無理みたい。
haha, koyatume
>>35 backbone.js以外のMVCフレームワーク使ったことある?
ないならそれは難しいだろうね
$ってよく見るけどどういうふうに使われてるの? なんかライブラリごとに別々の意味があるっぽく見えるんだが
$はprototype.jsもしくはjQuery、またはその互換ライブラリが タイプするのが簡単な1文字の関数(クラス・オブジェクト)名として使ってるもの $を関数名として使うとか一文字とか普通はやるべきではない使い方だけど、 俺的には準標準レベルの汎用ライブラリと言ってもいいものだから許容する。 jQueryにおいては$()を使って、jQueryオブジェクトにラップしたオブジェクトを 入れる変数に$から始める名前をつけるという規約が オライリーのどれかの本に乗っている。 prototype.jsにおいては、$の仲間として$$や$Fを使用している。 > ライブラリごとに別々の意味があるっぽく見えるんだが というのはよくわからない。 思い当たるとしたらjQueryは $(selector) ・・・ セレクタにマッチしたjQueryオブジェクトを返す使い方 $(html) ・・・ HTMLからDOMを生成する使い方 $(function(){...}) ・・・ $(document).ready()の短縮形 $.each等 ・・・ $オブジェクトとしての使い方 などのように引数によって複数の使い方がある。
>>39 おあ、詳しくありがとうございます
なるほど、とりあえず有名なライブラリのお決まりとして解釈しました
ライブラリごとというのは、アドベのjavascriptでは$オブジェクトがまた別の意味で定義されていたので
そう思った次第でした
adobeでも使ってるのか? $はjQuery、_はunderscoreっていうかlodashに くれてやれw どうするだけの十分な理由がある。
42 :
デフォルトの名無しさん :2013/10/05(土) 13:48:16.68
>>11 SVGの<foreignObject>内にHTMLを埋め込めるからそれを描画する
質問 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書式を直接入力するような方法はないでしょうか?
innerHTML
>>45 var elem = document.createElement("div");
elem.innerHTML = "<a href='...'>...</a>";
できました、ありがとうございます
効率が250%… 悪くなってんじゃねーかw
???
???
プログラミングが出来ても日本語が不自由なやつが多い
>>51 感動したのはいいが、使い方わかってないじゃん。
馬鹿かお前。parseIntでインデックス番号取り出してどうするんだか。
その話はJavaScript質問スレで全く同じように lodashとの比較としてこの前出たが同一人物か? lodashは配列の穴なんて気にしないでforloopのように ただ0から最大インデックスまで回すだけ ネイティブforEachはin等で要素が存在するか確認する だから[0,,2,3,,,6,7,,9]みたいなのでは根本的に動作が違う その仕様差のオーバーヘッドの問題
なるほど。 実質違うものの動作を比べているわけか。 差が出るのも当然だな。
> in等で要素が存在するか確認する これって具体的には何してるの?
要素が存在するか確認してるんだろ? これ以上具体的にって 何が聞きたいんだ?
要素を確認してどうするの なければ結局undefinedがコールバックに返るのに
undefinedを引数にコールバックが呼ばれるのと コールバックが呼ばれないのでは、 動きが全く違うだろ。
>>58 を試せばすぐ分かるようなことをなぜ聞くのか
[0,,2,3] だと 0,2,3 しか渡らないのに [0,undefined,2,3] だと 0,undefined,2,3 が渡るのってなんでだっけ?
undefinedとnullは別ものだから
javascript側からflashで設定出来る変数の変数名って取得可能ですか? 例えば、ニコニコ動画の動画プレイヤーのコメント入力部分の変数名など
>>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 だけ影響を受ける
>>65 [0,,2,3]
↓
{
0:0,
2:2,
3:3
}
[0,undefined,2,3]
↓
{
0:0,
1:undefined,
2:2,
3:3
}
nullとundefinedが別々にあることでメリットある?
データベースのフィールドに値を入れる。 値がある場合、nullを代入する場合、省略された場合 が表現できる。
以前はundefinedにmatch使ってもerrorにならなかったのにerrorになるようになって いちいちチェック入れないといけなくなったのが不満
undefined以前にmatchは文字列型のものだろ何言ってんだこいつ
>>69 なんでわざわざオブジェクトに変換すんだ?
だから遅いのか
なんでこんな糞みたいな実装を選んだのかも謎
そもそもjavascriptだと配列⊂オブジェクトじゃないっけ
わざわざオブジェクト? 何言ってんだか JavaScriptの配列はlengthをハックした特殊なオブジェクトだろ それに全くもって遅くねえ JSエンジンが配列の最適化にどれほど力を入れてると思ってんだ
なぜそんな言い方しかできないのかしら
>>77 知りもしないものを糞呼ばわりしてる方が悪いと思うが
ここはあの殺伐としたふいんき(ryで有名な2ちゃんねるだぞ 半年ろむって刮目して相対しやがれ
配列がオブジェクトであるくらいは知っておこうぜ……
81 :
デフォルトの名無しさん :2013/10/26(土) 09:30:57.11
はやくES6来ねえかな
82 :
デフォルトの名無しさん :2013/10/28(月) 09:48:16.37
半年後には結構実装されてそう
83 :
デフォルトの名無しさん :2013/10/31(木) 10:31:32.55
Object.create って全部のブラウザで使えるの?
使える IEは確か9から
ie6のシェアが増えたというニュースをみましたが 原因は何ですか? もはやgoogleも対応してないですよね そんなブラウザで不便を感じないのか
中国人に聞いて来いよ
91 :
デフォルトの名無しさん :2013/11/10(日) 13:02:45.23
せやな
>>88 憶測でデマ流そうとしてるようだけど新機能には対応してないけど検索するのに支障ないくらいには対応してるから
95 :
デフォルトの名無しさん :2013/11/14(木) 17:57:13.13
死ねバカwwwwwwwwwwwwwwwwwwwwwwww 死ねwwwwwwwwwwwwwwwwwwwwwwww 死ねwwwwwwwwwwwwwwwwwwwwwwww 死ねwwwwwwwwwwwwwwwwwwwwwwww ゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ゴミゴミゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwww ゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwwwwwwwww 死ねゴミwwwwwwwwwwwwwwwwwwwwwwwwコラwwwwwwwwwwww 死ねコラゴミwwwwwwwwwwwwwwwwww ゴミwwwwwwwwwゴミwwwwwwwwwwwゴミwwwwwwwwwwwwwwww ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwww ゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
96 :
デフォルトの名無しさん :2013/11/14(木) 20:42:13.31
トップページがちょっと変わっただけじゃん
MDNにアクセスできなくなってたと思ったんだが
github.io って phishing サイトか
正規表現がまったくわからん 教えろください hogefuga12345678...9yokei hogefugaは固定の文字列 12345678...9は任意の数字列、桁も任意 yokeiはその後に続く任意の文字列 この時 hogefuga12345678...9 だけ抜き出したい どうしたりいの?
解決した hogefuga[1-9][0-9]* 楽勝じゃん
^hogefuga\d+$ こうだろ
>>106 後ろに任意の文字列が続くって分かってるんだから、^はともかく$は付けちゃ駄目だろ。
hogefuga\d+
109 :
デフォルトの名無しさん :2013/12/02(月) 16:37:18.13
氏名と点数のデータはどんな形式でどこにあるんだ
113 :
デフォルトの名無しさん :2013/12/03(火) 03:40:45.03
CopyRect
114 :
デフォルトの名無しさん :2013/12/05(木) 00:56:43.05
WebアプリでJavascriptなんて担当したら大変なことになるな サーバサイドの方がはるかに楽だよな
物によるとしか 個人的には先月やった課金サーバ絡みのWebサービスの方がピリピリしてて重かった JSで表層組む方が責務的にはラクだと思うけどな。バッドノウハウなんぼのもんじゃい サーバサイドもセットで回されたら結局キツイんだけどさ
最近のウェブアプリは項目を触るごとにAjaxでサーバとガンガン通信するから 昔に比べてJSのやること激増してるよな サーバサイドはJSON返すだけとかだとかなり楽だし
Javascriptスレ全部に毎回連投するやつ死ねよ
その通り 死ねよ
情報を貼ってくれるのはいいが どれか一つのスレに絞ってくれ javascripterは全部のスレ見てるよ
2chって21世紀を10年過ぎてもクロスポストに対応してないのな
123 :
デフォルトの名無しさん :2013/12/16(月) 11:49:12.77
リニューアル汁
>>124 49.7日問題っていうのは、49.7日を超えるとカウンタが0に
リセットされるという問題ではなく、リセットされることを考慮していない
コードがシステムにあって、そのためにシステムが不具合を起こすことだよ。
カウンタが0になるのは単なる仕様。
それからな、JavaScriptの仕様上
1<<30 ・・・ 1073741824
1<<31 ・・・ -2147483648
1<<32 ・・・ 1
1<<32-1 ・・・0
これはな32bitのビットシフトっていうのはな・・・
めんどくせぇから、あとは自分で調べろや。
もう少ししっかりと理屈を理解して
ちゃんと検証しましょう。終わり。
>>125 >カウンタが0になるのは単なる仕様。
リセットじゃ無くてオーバーフローだから0を経由するかは不定なんだけど、それは知ってるよ。
>1<<32-1 ・・・0
ああそこはポカミスしたわ。
んでそこのミスはそれとして、
setTimeout("alert(0);",4294967294);
setTimeout("alert(0);",(1<<30)*4-1);
でも0秒でタイムアウトするし、GetTickCountの値の推定が出来る事も検証してるんだけど…
http://jsbin.com/aBegAMI/2 の実行結果
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
uptimeを知りたいんならWMI使えよ
>>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
で、全部同じ数値を示していたぞ?
>>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 :2013/12/22(日) 22:21:13.35
>>129 > なんで、0秒でタイムアウトするのと、正常に動作する境目を調べないの?
http://jsbin.com/aBegAMI/2 のコードが正常に動作する境目を調べるコードだよ・・・orz
そもそも最初に0秒タイムアウトして境界調べたら49.7日だったからこの検証してるのに・・・orz
なんでお前ら揃いも揃って「うちで再現しないならそんなもの存在しない」的な思考なんだよ・・・orz
最初から環境書いて検証コードまで貼って他だとどーよって聞いてんのになんなんだよ・・・orz
それに、32bit環境でミリ秒扱う以上2^32に上限が来るのは仕方ないとしても2^31が上限なのはやっぱバグじゃないか・・・orz
まぁ環境によってタイムアウトの上限が「0xFFFFffff-GetTickCount()-1」な場合と「0x7FFFffff」な場合があるのはわかった。
64bit版なのかとかIEいくつなのかとか、0x7FFFffffが上限になる環境は何かわからないけど。
WindowsXP SP3(32bit)+IE8はコレでシステム起動時間もどきを取れるの確認したけど、他だとどーよ?
最上位ビットは符号だからね〜
>>130 > なんでお前ら揃いも揃って「うちで再現しないならそんなもの存在しない」的な思考なんだよ・・・orz
お前が最初に環境書かないから
133 :
124 :2013/12/23(月) 00:46:47.49
>>131 longならそうだが、GetTickCountとかはDWORDでunsigned longでしょ。
コレの取り扱いを間違えると49.7日問題が24.9日問題に化ける。
JavaScriptだとビット演算時の型変換が入らなければ関係ない・・・はずだよな?
>>132 >お前が最初に環境書かないから
>>
>>124 最終行
>>WindowsXP SP3(32bit)+IE8はコレでシステム起動時間もどきを取れるの確認したけど、他だとどーよ?
お前ら酷すぎ…泣いていい?
JavaScriptスレでDWORDだunsigned longだとか言ってもね とりあえずJavaScriptの数値は全て128ビットの浮動小数点数ね,これはどの環境でも変わらない けどビット演算すると32ビットの符号付き整数にキャストされるの
135 :
124 :2013/12/23(月) 01:52:04.52
>>134 一定値以下の整数は4バイトで一定値を超えたら浮動小数点数に変換するが、
計算上の振る舞いは同じになるから通常は関係しない、って最適化してる実装もあるんじゃなかったっけ。
そもそもこれはsetTimeoutの実装(Cとかその辺)も絡んでるからJavaScriptの数値型だけの話じゃないよ。
見栄えのよいグラフ作りたいんだけどやっぱD3かね?
幼女しかいないスレで何言ってんだコイツ?
>>124
幼女なら仕方ないね。 再現する環境ではちょっと面白い(特定条件で脆弱性になる)バグだから幾つか他のスレに投げて終わりにするわ。
馬鹿にされて終わりだと思う
どこら辺が馬鹿なん?
141 :
デフォルトの名無しさん :2013/12/31(火) 16:59:24.89
>>134 ,135
仕様は64bit浮動小数点型
最新の著名な実装では整数はx86では「31」bit符号付き、x64では「53」bit符号付き整数として扱おうとしている
さらには32bit不動小数点型も活用され始めてる
そんな事されたら互換性無くなっちゃう><;
>>141 ああそっちか。4倍精度とか普通使わんよなぁと思ったわ。
でもネイティブ関数の内部実装は普通に整数型じゃね?
>>142 桁が溢れる時はちゃんと上位互換の型に切り替えるんじゃない?
32bitのはasm.jsのfloat活用の話かな。元々単精度の演算をjsに変換する場合に、
floorで単精度に切り詰めるようにしてそれを検出したら単精度で演算するとか何とか。
Float32Arrayが使わる箇所などfloatで最適化しようと思えば可能な箇所は沢山ある 勿論asm.jsに限らずJITでもそういう最適化は可能 そろそろやること付きたのでエンジンとしてはそういうとこ弄るしかない 仕様としてはマルチスレッドやSIMDを活用する方向や型付けを強くする方向で進行中
145 :
デフォルトの名無しさん :2014/01/01(水) 15:13:10.71
ES7になれば int64_num = 9223372036854775807L とか decimal_num = decimal("79228162514264337593543950335") とかできるようになるんでしょ?
>>136 日本はレベルの低いプログラマが多いのでd3は流行らないと見た。
jqueryも使いこなせない低レベルプログラマばかりだもの。
レベルが低いからjQuery使うんだが
自分が難しいと思うものは
使いこなせない人が低レベルだと思うものです。
つまり
>>146 はjQueryを難しいと思ってるのです。
D3そんなに難しくないだろ。 コピペするだけで簡単に動くぞ。
146低能杉
146の言うことは筋が通ってるな。
真の低能者は150
ふっふっふ そやつらは果たして俺の低脳さに敵うのか? おちんちんびろーん …びろーん
>>152 一般庶民以下は、天才と低能を同じ低能と見る
155 :
153 :2014/01/08(水) 00:20:34.51
同意だぜ ごめんもう消える
156 :
153 :2014/01/08(水) 21:52:15.87
と思わせておいてからの、びろーん
あなたは偽物ですね
158 :
153 :2014/01/11(土) 21:44:28.79
いや俺はお前だよ。もう一つの別人格。
159 :
153 :2014/01/12(日) 06:27:31.65
お前は誰だ?
160 :
デフォルトの名無しさん :2014/01/19(日) 12:48:15.65
jQueryで下記のように所持しているツリー用のデータをkeyを指定してtitleを変更する 処理を作りたいんですが、どのようにしたらいいでしょうか? 子が何階層まであるかは不明で、うまいやり方が思いつきません。 [{"key":"1", "title":"ファイル1", "children":{{"key":"12", "title":"ファイル2", "children":{...}}}},{"key":"2"...}]
javascriptもjQueryも関係なくツリー構造の再帰処理だよな? func(node) { for(i = 0 ; i < node.children.length ; i++) { func(node.children[i]); } doSomething(node); }
162 :
デフォルトの名無しさん :2014/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;
}
>>160 jQueryはDOM、つまりHTML用のライブラリだから
そんな用途には使えないよ。
普通に再帰処理書けば良い。
>>162 1
12
...
2
...
こういう構造だから線形リストではないよね。
最初の階層で一文字目が決まり、次の階層で2文字目が決まると
考えると構造はトライに近いかな。
[{key:"1", title:"title1", children:[{key:"12", title:"title12", children:[]}]}, {key:"2", title:"title2", children:[]}]
構造の一貫性を考えるとデータの定義はこうじゃないかな。
こういう構造ってよくあるんだけど、 ここでいうchildrenっていうキーどうしても必要だよね。 なんかね、違和感があるだよ。 childrenは不要ではないかと。 こういう構造を扱う、汎用的なライブラリが作れそうなんだが、 childrenというキーを引数に取らなきゃいけないのが なんか気持ち悪い。 でも普通に考えたらやっぱりいるよなぁ。なんだろこの違和感。
>>166 ちょっと冗長だし使いにくいね。
もう少し頑張ってみて。
>>167 俺には無理だからもっと簡潔な書き方を君が俺に教えてください。
>>165 childrenが嫌いならparentをもったらいいじゃない!!
木構造をデータベースに入れるときはparentを保存するようにしてた。
それを読み込んでchildrenに変換するのが超面倒だった思い出がありまくり。
>>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;
}
>>170 if文の改行で誤魔化してるだけだよね。
簡潔さの欠片もないし、階層がいくつか不明って言ってるんだから再帰はないよね。
話にならないな君。
>>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のテストコードを一度書けば終わりだし、
残りの書き換えコードはあとは間違えないような些細なコードだし、
そのテストコードも簡単。配列与えて変わっているか調べれば良い。
えっと、ここまでの偉そうなことを君、言える?
このコードはjQueryと同じ発想で(というかjQueryよりもずっと前からある発想だが) ツリー上になっているDOMを$(セレクタ)で配列の形に変換するのと一緒。 select_nodeが$(セレクタ)のかわりでツリーを条件を元に見つけた配列にしている。 ツリーをそのまま扱うのは面倒なので、一旦見つかったノードの配列にしてしまう。 そうすれば後は、簡単に処理できるってわけ。
冗長君は自分のコードが簡潔で他人のコードが冗長に見える病を患っておられるのです。 誰もが通る道です。やさしく見守ってあげましょう。
>>174 再帰コードをディスってるの?
再帰コードであるかぎりスタックオーバーフローの
可能性は限りなく0に近いが0にはならない。
お前、再帰を一切使うなって言ってるのか?
>>175 分かりました。
再帰も書けない冗長なコード書いた君ですねw
圧倒的な差を見せつけると、反論ではなく 口ばっかりしかでてこないものよ。
>>176 >再帰コードであるかぎりスタックオーバーフローの
>可能性は限りなく0に近いが0にはならない。
可能性が限りなく0に近いことの根拠はなんなの?
例として提示されたデータは最初の階層が1文字で
次の階層が2文字になってる。階層の深さが文字列の長さに比例すると
考えるなら限りなく0に近いなんて言えないと思うんだけど。
>>177 >再帰も書けない冗長なコード書いた君ですねw
書かなかったことと書けないことが同じことだとするなら
君はトライのコードを書けないからパフォーマンスが悪く
スタックオーバフローの可能性のある劣悪なコードを書いたってことになるけど。
> 可能性が限りなく0に近いことの根拠はなんなの? 現在のスタックの量は、JavaScriptが動くマシンであれば 十分な量が与えられている。 かりにスタックの量が1MB、1回の関数呼び出しに 100バイト消費するとして10000階層になる。 nodeで実験したら、20930階層までできた。 反論終わり。
>>181 反論じゃなくて回答ね。俺の質問に答えてくれたんだから。
文字列は何文字まで可能なのかな?
>>182 文字列の長さは影響ない。
スタックを使うものじゃないのだから当然の話だが。
> 例として提示されたデータは最初の階層が1文字で > 次の階層が2文字になってる。階層の深さが文字列の長さに比例すると メモリ使用量=スタック使用量とか思っていそうw スタックも知らないのかな? いや、そもそも、階層の深さが文字列な長さに比例するってのが 意味不明だな。 どういう意味?
>>183 ちょっと何言ってるのかわからないからできるだけ省略しないで言ってくれると
助かるんだけど、文字列の長さは何に影響がないの?
>>185 いや、そもsも、文字列の長さが
なんで階層の深さに比例するんだよw
階層の深さが文字列の長さに比例って、何の文字列の話してるんだろ?
>>186 質問の答えになってないよw
階段とばすと会話がかみ合わなくなるからちょっとそういうやめてもらいたい。
>>160 のデータの例では最初の階層はkeyが1文字で次の階層はkeyが2文字になってる。
そのことからトライに近い構造なんだろうと思って俺はコードを示した。
189 :
160 :2014/01/19(日) 16:21:30.58
>188 別に例が一階層目のキーの1、二階層のキーにたまたま12って書いただけで、 別に階層が深くなれば、キーの名前も伸びていくなんて言ってませんよ。
>>188 仮にキーの長さが伸びていったとしても、
それで消費するのはヒープの量じゃん。
ヒープはスタックとは別のメモリ領域に
割り当てられるって知らないの?
191 :
184 :2014/01/19(日) 16:24:41.26
やっぱりこいつはスタック使用量とメモリ使用量を ごっちゃにしているって説であっていたようだw
>>189 いまさら出てこられて後出しされても困るんでできれば黙ってて欲しいかな。
keyの文字列と階層が比例するとは言ってはいないけど、keyの文字列と階層が
比例しないとも言っていないんで、俺はそれが比例するものだという仮定のもとで
コードを書いた。
ワロタwww > 例として提示されたデータは最初の階層が1文字で > 次の階層が2文字になってる。階層の深さが文字列の長さに比例すると > 考えるなら限りなく0に近いなんて言えないと思うんだけど。 ↓ > keyの文字列と階層が比例するとは言ってはいないけど、keyの文字列と階層が
なんで階層の深さとキーの長さが比例するって 考えたんだwwww そのほうが頭がおかしい。
だいたい
>>160 で
> jQueryで下記のように所持しているツリー用のデータをkeyを指定してtitleを変更する
> 処理を作りたいんですが、どのようにしたらいいでしょうか?
って書いてあるじゃんw
>>190 >>191 いや、君は間違ってる。
俺がどういうことを考えたのかという認識に関しては
>>189 が合ってる。
俺が考えたことはkeyの長さと階層が比例する、かつ、階層の深さは不明だから再帰で
処理するとスタックオーバフローのおそれがあるよねということ。だから君はただ間違ってる。
ヒープとかは関係ないかな。
>>192 だからさ、キーの長さが階層に比例したとしても
キーの長さはスタック領域ではなく、ヒープ領域に格納されるから
キーの長さは全く無関係なの。
なんでキーの長さにこだわってるのさ?
>>194 トライっていう文字列を管理するデータ構造があってそれに
近いデータ構造なのかなって考えた。頭はおかしくないと思うんだけどなあ。
まあ本人が言っても説得力ないかw
>>195 うん? ちょっと何を言っているのかよくわからない。
階層の深さが不明だから、スタックが〜っていうのならわかるが、 キーの長さは一体どこから出てきたんだw キーの長さの話をした時点で、お前が馬鹿だっていうのは みんなにバレてるんだよ。
>>198 > トライっていう文字列を管理するデータ構造があってそれに
質問を読め
>>160 > jQueryで下記のように所持しているツリー用のデータをkeyを指定してtitleを変更する
ツリー用のデータって書いてあるだろ。
お前、よく仕様をちゃんと読まないで突っ走って作っちゃって
あとからこれじゃだめだって青くなるタイプだろ?
>>197 文字列の長さと階層の深さが比例すると仮定するなら
文字列の長さが30000文字だったとするなら30000階層ノードを再帰的に
たどることになるでしょう。文字列の長さがヒープに格納されるっていうのはどういう
話をしているのかわからない。
>>193 最初読んでちょっと意味がわからなかったんだけど、たぶん主格を
読み間違ってるんじゃないかと。
>階層の深さが文字列の長さに比例すると考える
これの考えるという動作の主体は俺。
>keyの文字列と階層が比例するとは言ってはいないけど
これの言ってはいないという動作の主体は質問者である
>>160 。
これでたぶんわかるんじゃないかと。
トライは文字の種類が多くなるとメモリを大量に消費するんだが?
>>201 > 文字列の長さと階層の深さが比例すると仮定するなら
だから、仕様にそんなこと書いてないのに
仕様に書いてないことに対応するためのコードかくなって
こういう奴がいると迷惑なんだよ。
使いもしない、余計なものを作りやがっって。
>>201 本当にお前は頭が悪いな。
> 文字列の長さが30000文字だったとするなら30000階層ノードを再帰的に
> たどることになるでしょう。文字列の長さがヒープに格納されるっていうのはどういう
文字列の長さが30000文字じゃなくても、
30000階層のノードがあれば同じことだろ。
つまり、スタックというのは階層が増えるたびに消費するもので
文字列の長さとはまったく関係ない。
だから文字列の長さ話をする必要はないんだよ。
そこからお前が、無駄なことを考えてるってわかるわけさ。
>>200 >ツリー用のデータって書いてあるだろ。
書いてあるね、トライもツリーだから言葉上の整合性はとれるのよね。
>お前、よく仕様をちゃんと読まないで突っ走って作っちゃって
>あとからこれじゃだめだって青くなるタイプだろ?
どうなんだろうね、いまは働いていないけどこの先IT業界で
働き出したらそういうことになるのかもしれないね。まあ仕事就けるか
自体わからないけどね。君はそんな俺のことを思い浮かべながら仕事に
精を出したらいいと思うよ。
>>205 必要にならないものをせっせと書いてる馬鹿がいたなーって思い出せばいいのか?w
どうせならこの言葉を覚えよう
http://ja.wikipedia.org/wiki/YAGNI "You ain't gonna need it"[1]、縮めて YAGNI とは、機能は実際に必要となるまでは追加しないのがよいとする、エクストリーム・プログラミングにおける原則である。
理由[編集]
YAGNI原則を提唱する人々は、その理由として以下を挙げている。
あとで使うだろうとの予測の元に作ったものは、実際には10%程度しか使われない。したがってそれに費やした時間の90%は無駄になる[2]。
余計な機能があると我々の仕事が遅くなり、リソースを浪費する[2]。
予期しない変更に対しては設計を単純にすることが備えとなるが、今必要とする以上の機能を追加すると設計がより複雑になってしまう[2]。
あなたの人生の時間は貴重である。あなたの能力は単にコードを書くためではなく、現実の問題に集中するために使うべきである[3]。
結局はその機能は必要ないかもしれない。もしそうなったら、あなたがその機能を実装するのに費やした時間も、他のみんながそれを読むのに費やした時間も、その機能が占めていたスペースも、すべて無駄になってしまうだろう[3]。
コードをすばやく実装するために最も良い方法は、あまりコードを書かないことである。バグを減らすために最も良い方法も、あまりコードを書かないことである[3]。
>>203 俺は仕事でコード書いたわけじゃないし、質問読んで思いついたままに
コード書いただけだよ。君はたぶん嘘を言ってると思うんだよね。
君は何も迷惑していないよ。迷惑を受ける道理がない。俺の返信を迷惑だと
思うなら俺に返信してこないと思うし。俺の言ってること筋通ってない?
>>204 >文字列の長さが30000文字じゃなくても、
>30000階層のノードがあれば同じことだろ。
同じことだね。それで、いまは文字列の長さと階層が比例するっていう仮定で
話をしているんだから、文字列の長さと階層はとうぜん関係あるし、深い階層を
再帰でたどればスタックオーバーフローになるよね。
トライって言葉を使いたかったおこちゃまだなw
>>206 それはちょっと説得力に欠けるかと・・・
>>172 >つまり、ツリー構造から検索するキーが違う別の処理を書くのに、
>コピペする必要はなく、これだけでよくなってる。
こういうふうに言ってしまってるわけだし。読んでないと思ったでしょ?
俺読んでるんだからね。
>>207 > 俺の言ってること筋通ってない?
うん。ガキだなって思うよ。
非論理的で、おおよそ数学者や技術者に向いていない性格
>>208 まあそれもあるかな、コードを書きたかったっていうのが近いけど、まあどっちでもいいかw
>>209 > それはちょっと説得力に欠けるかと・・・
有名な言葉 VS お前
説得力があるのはどっちだと思う?
>>209 > 俺読んでるんだからね。
読んでるから何なんだよwwww
>>210 どこが非論理的かな?俺もまだ君から論理的な言葉を聞いていないな。
>>212 いやそうじゃなくて、伝わらんもんだな。
たとえばダウンタウンの浜田が人の頭を叩いちゃいけません
っていっても説得力感じないでしょ。浜田はそれで笑いを
とりまくってるわけだし。そういうこと。わかるだろ。わかれ。
>>214 非論理的だろ。
スタックがオーバーするのは、階層の深さが問題になるのであって
文字列の長さは問題にならない。
文字列の長さが階層の深さに比例するというのは
お前が勝手に決めたルールであって、そんなルールは
ツリーという言葉には適用されない。
お前が言ってるのはキーの長さが階層の深さに比例する場合
(※注意トライツリーにこのような定義はない)であって
いまはそんな特殊なツリーの話はしていない。
故にキーの長さは階層の深さ(とスタックオーバーフロー)は無関係。
お前が言ってるのは「哺乳類は卵を生むよ。カモノハシと仮定するならね」って
言っているようなもん。
十分非論理的だ。
>>215 > たとえばダウンタウンの浜田が人の頭を叩いちゃいけません
> っていっても説得力感じないでしょ。浜田はそれで笑いを
確かにお前が何を言っても説得力ないね。
はたから見てお笑い芸人みたいだからかな?w
人を笑わすお笑い芸人と 単に笑われているやつを一緒にするなw
>>217 それはちょっと卑怯な論法かな。
確かにと言って話を変えてるよね。
君は
>>206 でYAGNIを覚えようと俺に言った。
しかし、言った本人が
>>172 でYAGNIを破ってるじゃないか。
どういうことなんだい。っていうのが俺が言いたかったこと。
確かにって思ってくれる?
>>216 >文字列の長さが階層の深さに比例するというのは
>お前が勝手に決めたルールであって、そんなルールは
>ツリーという言葉には適用されない。
俺はデータを見て文字列の長さと階層の深さが比例すると仮定してコードを
示しただけだから、仮定はルールとは違うよね。それはそのとおり。
文字列の長さと階層の深さが比例するという仮定はツリーという言葉のみから
導いたものでもないのですべてのツリーに当てはまるというのは偽である。
これもそのとおり。なんだか疲れるなあ。なんかあれだな、ストローマン論法しかけられてるみたいw
文字列の長さが階層の深さに比例するというのはルールだなんて俺言ってないし、
そのルールがツリーという言葉に適用されるとも言ってないw
では文字列の長さが階層の深さに比例するというのはルールだといったのは誰か? 君だよね。
そのルールがツリーという言葉に適用されるといったのは誰か? これも君だよね。
こういう自作自演の論法は無益なだけだと思うんだよなあ。俺無職なんだけど、お仕事してる人は
毎日こういうことと戦っているの?おじさん働きたくない!!
>>219 > しかし、言った本人が
>>172 でYAGNIを破ってるじゃないか。
破ってないよ。
きれいなコードを書いただけ。
カモノハシ君必死だなw
>>216 >「哺乳類は卵を生むよ。カモノハシと仮定するならね」
どうでもいいっちゃどうでもいいんだけど、これって筋通ってないか?
(大前提)すべてのカモノハシと呼ばれるものは卵を産むものだ。
(小前提)すべての哺乳類と呼ばれるものはカモノハシと呼ばれるものだ。
(結論)ゆえにすべての哺乳類と呼ばれるものは卵を産むものだ。
小前提が間違ってるから論証としては間違ってるけど演繹は正しいよね。
小前提が成り立たないだけで。演繹が正しいならじゅうぶん論理的だと思うよ。
>>220 じゃあ俺も破ってないよ、仮定がたまたま違ってただけ。
「哺乳類は卵を生むよ。哺乳類=カモノハシという仮定が正しければね」 性格には、だろ?
>>223 仮定が間違っていたのだから
答えが間違っているっていうんだよ。
ツリーはトライツリーじゃないし、
トライツリーは階層が深くなるとキーが長くなると決まっていない。
>>225 >仮定が間違っていたのだから
>答えが間違っているっていうんだよ。
んなアホな。俺いまのプロジェクト終わったら結婚するんだと言った人が
プロジェクトが終わらなかったとしても子どもができちゃって結婚する
かもしれないだろ。プロジェクトが終わるという仮定は間違ってても
結婚するという答えはあってるかもしれないだろ。俺はまだあきらめてない。
安西先生も言ってた、あきらめたらなんとかかんとかって。
>ツリーはトライツリーじゃないし
そうだね、質問した本人がそういう旨のこといってるからそれは間違いない。
>トライツリーは階層が深くなるとキーが長くなると決まっていない。
トライは文字ごとにノード作るんだから文字列が長ければ階層も深くなるよ。
>>226 トライツリーを、理解するのに精一杯でしょw
文字列が合って、そこからトライツリーにするんじゃなくて、
トライツリーという構造が合って、その実装に
文字列キーに使ったり、文字列以外の物をキーに使ったりするわけ。
主体は文字列ではなくて、トライツリーなんだよ。
まだまだ素人、抽象化って考え方ができていない。
文字列がなければトライツリーという構造をイメージ出来ないでしょう?
>>227 理解してるつもりなんだけどなあ。
>>166 でコードも書いたし。
>文字列キーに使ったり、文字列以外の物をキーに使ったりするわけ。
トライで文字列以外のものも管理できるよって話ね。
文字列以外のものって数値とか?
>主体は文字列ではなくて、トライツリーなんだよ。
これはちょっと意味がわからない。何の主体?
トライツリーに文字列は必須ではない。 つまり、文字列は不要って話。
>>228 コードは真似すればいいだけだから誰でもかける。
重要なのは考え方。
素人は、何かを知ったらそれで全部やろうとしてしまう。
つまり、ツリーと聞いてトライツリーのしかも一実装を
前提にしてしまうのがその証拠。
考え方を理解しているのではなく、
その一例を知ってるだけ。
>>229 ちょっと勝手に話を終わらせないで欲しいなwまあいいや君あまり知らなそうだし。
>>230 俺は素人だと君は言ってるだけだね。
そういう話は興味ないわw悪いけど。
技術的な話が聞けるかと思って話し振ってみたんだけど、無理そうだからいいですw
だいたいツリーって言っているだけなのに、 トライツリーであるという思い込みで アルゴリズム書くのが馬鹿だよね。 トライツリーじゃなかったらどうなるのさ? あなたのアルゴリズムは使えません。って言われるのが落ち。 仕様をきかずに突っ走って実装する 典型的な素人を脱したつもりの素人。
>>232 技術的な話?
>>160 の話だよね。
>>160 の問題を解決する、正しくて素晴らしい実装を示しただろ。
それを理解できず的はずれな指摘で難癖つけてるのはお前
お前が出したものはトライツリーでなければ使いものにならない
アマチュアコード書いて自己満足しているみたいだけど。
そして延々と自分の都合のいい話をしているだけ。
>>233 仕事でここにいるわけじゃないし。仕事もしてないし。
素人というなら俺は生粋の素人。
ここはこうなのかと詳細つめて実装するのも面倒なんで
質問文読んでこういう仮定でこういうコード書いたって提示して
あとは質問者が選ぶだろうからそれでいいかと。俺のコードを
何がなんでも使えと質問者に押し付けてるわけではないし、
押し付けることができるわけでもないし。質問者がありがとうございましたと
返信してくれたらラッキくらいの本当に謙虚な気持ちで俺はここにいるわけ。
あなたのアルゴリズムは使えませんと言われてもじゃあしょうがないとしか思わないので
まあ別にどうでもいいかなそのへんは。君はそういうの気にするほう?大変じゃない?ここ2chだよ。
おじさん君のメンタルが心配だよ。
>>234 正しいことを判断するのは君じゃないよねw
素晴らしいと自分で言うのはあれだよね、あれだと思うよ。君、あれだよ。
俺はトライのような構造という仮定でコードを書いた。
君は俺とは違う仮定でコードを書いた。
仮定が違うからお互いに言い合うことが的外れなのはまあ仕方ないかと。
すこしくらいすれ違うほうが会話は弾むものだよ、ご愛嬌ってことで。
俺と話して楽しかったでしょう?いやあ俺もね思わず時間を忘れたね、ひさびさに楽しかったね。
>>235 仕事かどうかじゃなくて、
プログラマかどうかね。
本物のプログラマの品質と
素人(お前の)の違い。
仕事してなくても本物のプログラマはいる。
ようはゴミコードばらまかないでくれって話。
>>236 > 俺はトライのような構造という仮定でコードを書いた。
その仮定のでお前は無駄なコードを書いた。
トライではなかったのだから。
まあ、トライにしてもコードの質は低いけどねw
かろうじて動く程度のコード
メンテナンス性など一切考慮されていない。
>>237 プログラマじゃないしプログラマのようにコード書けると
思ってるわけでもないんで、なんで君はそう何度も俺に素人だと
言ってくるのかちょっとよくわからない。恋心とは違うでしょ?
違うと思うわ。俺はねそのへん冷静に考えられるだけの頭は持ってるつもりだから
君が俺に思いをよせてるとは当然思っていないよ、でも君がもしよ、もし女で、
ある程度容姿が優れていて俺のことを少なからず思っているというのなら
俺はメールアドレスを交換する用意があることをお伝えせざるを得ない。
>ようはゴミコードばらまかないでくれって話。
い や だ。
>>238 無駄というならこうやって2chをながめていることさえも
君にとっては無駄なことだろう。俺は生活の一部だけどねw
俺にとって無駄なことだからやるべきじゃないと俺のことを
心配してくれているとしたらほんとうにありがとうございます。
>メンテナンス性など一切考慮されていない。
そうだね。2chに投稿したコードを今後ともメンテナンスしていこうなどという
気概はまったく持っていない。俺もITのお仕事に就いたらそういうふうに考えるように
なるのかなあ。それって幸せなことなんだろうか。いまの俺には皆目わからない。
単純な話、そういう気概で議論したい人は(多分)2chにはいないと思うから 好きなだけ一人相撲するといいよ
なに恋とかわけわからんこと言い出してるんだろw こいつ脳みそおかしいw
243 :
153 :2014/01/19(日) 21:33:49.95
誰が誰だかわからんが
>>167 の偉そうな感じの悪さは頂点クラス
どうせこいつのせいだろ荒れたの
244 :
デフォルトの名無しさん :2014/01/19(日) 21:38:36.54
じゃあせっかくなので話題変える意味で nodeとそのchildrenが与えられるとして、末尾再帰を使ってツリー全体を処理するコードってどう書く?
すでにJavaScriptの話じゃ無くなってるな
>>245 再帰はスタックオーバーフローするから
使うべきじゃない。トライって知ってるか?
>>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;
}
>>247 カモメ、カモメ、カチン、カチン。
かを抜いて言ってみな、おじさんからのアドバイスだ。
もう寝るからね。
幼女か?幼女が来たのか?
>>250 カモメ、カモメ、カチン、カチン。
かを抜いて言ってみな、おじさんからのアドバイスだ。
253 :
153 :2014/01/20(月) 04:31:28.20
コミュ力低い人間が一人いるだけで皆が迷惑してしまうねぇ
>>253 そういう排斥活動に力入れたらいじめと変わらなくなるよ。
冷静になるための魔法の言葉を教えてあげよう。
かもめかもめかちんかちん。
心の中でこれを唱えればいい。
かちんかちんっていうのがいかにも冷たそうでしょう。
南極の空を雄大に羽ばたくカモメさんを意識した言葉。
クールになれるおまじない。唱えるときはかを抜くんだよ。
255 :
153 :2014/01/20(月) 07:22:01.96
変なやつばっか
256 :
デフォルトの名無しさん :2014/01/20(月) 07:43:31.49
ンーwwwwwwwwwwww
コードに駄目出しされたときの反応、桃白白とかピラフに似てるな 全部同一人物だったりして
258 :
153 :2014/01/20(月) 18:34:25.11
しつけえなぁ こういう低能とはネットでもリアルでも絡みたくないものだ
261 :
デフォルトの名無しさん :2014/01/20(月) 23:22:41.73
>>249 何回も同じゴミコード晒す奴の気がしれない。
ゴミコードばらまかないでくれ。
262 :
153 :2014/01/21(火) 00:15:35.66
ゴミゴミ言うなら ここをこうしたほうが良いですよって言う生産的アドバイスをしろな そして自分がまず作って見せてみろ 批判だけならどんな低能でも出来るからな
どんな低脳でもできるからそういう書き込みがあるんだと分かってんだろ 逃げるだけよ そして別口の煽りを繰り返す そんで構うなっていう奴が出てきてスルー検定失敗と煽られる流れが続く訳だ で、なんで君コテ気取ってんの? 153ってお前じゃないぞ
264 :
デフォルトの名無しさん :2014/01/21(火) 05:13:22.94
>>262 >批判だけならどんな低能でも出来るからな
お前が言うな
265 :
デフォルトの名無しさん :2014/01/21(火) 05:16:38.13
他人を落としてのし上がっただけの低学歴が 自分のコードが優れていると思い込むひどい現状を目の当たりにし 京大法学部を出た自分としては戦慄している
266 :
デフォルトの名無しさん :2014/01/21(火) 05:24:21.89
>>262 アマチュアコード書いて自己満足しているみたいだけど。
そして延々と自分の都合のいい話をしているだけ。
267 :
デフォルトの名無しさん :2014/01/21(火) 05:25:19.38
>>262 本物のプログラマの品質と
素人(お前の)の違い。
仕事してなくても本物のプログラマはいる。
ようはゴミコードばらまかないでくれって話。
268 :
153 :2014/01/21(火) 06:08:28.60
本物のプログラマはコードで人を納得させる
269 :
153 :2014/01/21(火) 06:16:30.42
人を馬鹿にするだけの非生産的発言ばかり繰り返す奴は 誰にも必要とされてないよ この機会に自分を変えるきっかけになったらどうかね
270 :
デフォルトの名無しさん :2014/01/21(火) 07:07:13.11
271 :
デフォルトの名無しさん :2014/01/21(火) 07:11:39.69
>>269 お前はなんでここにいるんだ?
誰にも必要とされないからだろうがw
他人に言う前に自分が変われよw
僕はこうして変わりましたという
エピソードを創価学会のように発表してみろよ
池田大作先生を崇めろ
勝手に妄想して余計な気を回す奴っているよね
273 :
デフォルトの名無しさん :2014/01/21(火) 08:29:33.64
死ねゴミ共がw 死ねゴミ共がw
274 :
デフォルトの名無しさん :2014/01/21(火) 08:44:08.58
死ねゴミ
>>275 「人を馬鹿にするだけの非生産的発言ばかり繰り返す」コードレビューしかできないならしないほうが良いな。
普通、バグの指摘や非効率部分の指摘(≒効率化の提案)で生産的な行為をするんじゃないの?
馬鹿なミスは馬鹿にされるかもしれんが、生産性ゼロなコードレビューなんてコードレビューじゃないだろ。
コードレビューと銘打たれた無意味なパワハラ業務会議とでも呼んでゴミ箱に捨てろ、そんなもん。
>>276 自分の書くコードが、他人から見たらゴミコードだってわかるだけでも儲けものでしょ
>>276 > 普通、バグの指摘や非効率部分の指摘(≒効率化の提案)で生産的な行為をするんじゃないの?
仕事でやるレビューはそうだけど、ここじゃそんなことを期待しても無駄。
>>276 warningを0にしろとか言われた日には泡噴いた
281 :
153 :2014/01/21(火) 20:51:37.22
具体的良案を示すっていうのは、頭が悪い人には出来ないからなぁ 確かに期待しても、その根本の問題がある限りは無駄かもしれないな・・。
>>277 罵倒するだけだと他人から見てゴミだって示せてないけれど
ちゃんと他人から見たらゴミだって示せてるなら一応は生産的
275が生産的なコードレビューの存在を認めてるかどうかは知らん
>>279 しろよ。コンパイラの問題なら警告無効化オプションでも個別に付けとけ
>>281 頭が悪くて人格も悪いとか救いようがねぇな
それでやる気があったり世渡り上手いと始末に負えん
283 :
デフォルトの名無しさん :2014/01/23(木) 10:32:19.15
死ねゴミ共がw
284 :
デフォルトの名無しさん :2014/01/23(木) 20:54:32.67
Jqueryで現在のキャレット位置を取得して文字列の貼り付けをしたいのですが、 「document.selection.createRange()」でキャレット位置を取得できません。 ちなみに、IE11です。
285 :
デフォルトの名無しさん :2014/01/24(金) 00:39:45.75
286 :
デフォルトの名無しさん :2014/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 :
デフォルトの名無しさん :2014/01/25(土) 07:04:39.93
死ねゴミ共がw
初歩的な質問です。 勉強目的で初歩的な暗算問題を出すプログラムを組んでみて、出題ごとに制限時間を設定したいんですが うまくいきません 出題問題を繰り返すdo while文の中にsetTimeout(関数,時間)と入れてみて制限時間後に時間切れのフラグを 立てる関数を動かすというやり方を試したのですが、setTimeoutの性格上、do while文が終了後に処理される ので、全く意味がありませんでした。 何かいい方法はないでしょうか?
ソース全文貼り付け
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; }
//乱数の発生 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++; //お手つきの回数 }
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; }
以上、貼り付けてみました。校閲お願いします 補足 ごちゃごちゃいじったせいで、setTimeoutの位置がおかしくなりました。 元々はdo while文のpromptの前にありました。
>>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 {
終了時の処理;
}
}
続き。 function ボタン() { clearTimeout(timer); var ans = 入力欄の内容; if (ans == just) { 正解と表示; count++; } else { 間違いと表示; flg++; } 次を出題(); } function 時間切れ() { 時間切れと表示; 次を出題(); }
>>294-
>>295 アドバイス含めてありがとうございます。基本から作り直してみます
297 :
デフォルトの名無しさん :2014/01/31(金) 18:26:41.03
jQueryでおすすめのギャラリープラグインを教えてください。 最低でもスワイプでの拡大縮小と先読みプリロードの 機能があるやつが良いです。
298 :
デフォルトの名無しさん :2014/01/31(金) 23:25:00.82
お願いされてもその絵柄とやら出してもらわんとどうしようもなくね 動きゃいいならぶるぶる震わせてやらんこともないが
300 :
デフォルトの名無しさん :2014/02/01(土) 21:51:12.69
301 :
153 :2014/02/01(土) 23:03:56.44
302 :
512 :2014/02/14(金) 23:35:22.67
俺は153でも300でも無いけど、俺も皮肉効いててうまいと思ったよ。
>>302 よう298、宿題はできたかい?
304 :
153 :2014/02/15(土) 21:09:48.52
>>512 大体お前は物事の真実見る目が甘すぎんだよ
いい加減にしろ良いな
分かりました
質問です .jsがドリームウィーバーで関連付けられてしまい実行しなくなりました。 その後間違えてcmdを規定にしてしまったら直そうと思ったときに規定のチェックボックスが選択できなくなり、困っています。 変更方法が解れば教えてください 環境はwin7 64bitです
308 :
デフォルトの名無しさん :2014/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を使うようにした方がいい
こんばんは。 動的に作った関数名の中にある数値を、その関数の内部から読み込みたいのですが、何かいい方法はありませんでしょうか。 numberOfFunc=10 for(i=1;i=numberOfFunc;i++){ var dynamicFunc = "test" + i window[dynamicFunc] = function ()
誤投稿すみませんでした。 動的に作った関数名の中にある数値を、その関数の内部から読み込みたいのですが、何かいい方法はありませんでしょうか。 numberOfFunc=10 for(i=1;i=numberOfFunc;i++){ var dynamicFunc = "test" + i; window[dynamicFunc] = function (){ //ここからdynamicFuncに格納されている関数名iの数値を読み込みたい。 } } 各関数内部から i の値を読み込んでみたのですが、各関数名と i の値が一致しない(関数内部の i には常にnumberOfFuncの最大値が格納されてしまう)ために、 この方法を知りたいな、と思いました。どなたか宜しくお願い致します。
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(); } こんな感じ?
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は使ったらだめじゃね
クロージャって単語見るとどーしても野球のピッチャーが頭に浮かんでくる
野球ようわからんのだけどそっちだとどういう意味になんの? 敵の攻撃回を終わらせる役、みたいなこと?
レスするのもはばかれるが、クローザーの事だろ
なぁ、お前たちってJavaScript何に使ってるの? JSってあんま用途が無いように思えるんだけど HTMLで出来ない事をちょっとするだけとか Node.jsとかあるけど、あんまよく分かんないし 自分はjavascriptからプログラミングに入ったけど、もうずっと使ってないんだよね どんな用途があるのかなぁと
closer と closure は 全然違う
>>318 HTMLで出来ない事をちょっとするだけに使ってる
>>318 > Node.jsとかあるけど、あんまよく分かんないし
つまり君にはあんまよく分かんない用途で使われてるってことじゃね?
それはともかく、最近のWebアプリケーションは結構な分量の処理をWebブラウザ上のJavaScriptで動かしてるから主にその辺で使う
いっぺんJavaScript切ったブラウザでWeb巡回してみろ、相当しょっぱくなったり動かなかったりするぞ?
Javascriptに頼ってるようなWebサイトの方がしょっぱい
…それは、いうな。
そうだそうだ サーバ側で全部の処理をやって何が悪い AJAXなんか廃れろ
HTML5のブラウザってjavascript無効に出来るの?
>>318 別に何に使うとかじゃないんだよ
役に立つこともあるけど、役に立たせようと学んでるわけじゃない
プログラマはコードやその動作に対する美的なものに惹かれて学んでるんだよ
プログラムすること自体が楽しくて、手段が目的で自己完結してる
つまり趣味で、釣りする人が必ずしも食費減らすためにしてるわけじゃないのと同じ
まずプログラミング自体に興味があれば、普段からいろいろ調べるでしょ?
そしたらこんなのがあるんだ、って感動できるじゃん?
そういう時にパッとコンソール開いて試してみるのよ
時には長いコードを書いて遊んでみることもある
そうしてるときがプログラマにとって至高の瞬間なんだよね
プログラマはオタク、言い方変えれば研究者だからね
で、Webの日進月歩で開拓されていく可能性がプログラマの好奇心を常に刺激し
Webの開かれてて皆で共有してる感じがプログラマに安心感を与えるんだよね
さらにすぐその場で簡単に試せることと相まってプログラマは全能感を得られる
だからWebはプログラマにとって最大のパラダイスで
そこに導いてくれるJavaScriptは至高の言語なんだよね
で、逆に、それほどWebやJSやプログラミングが好きになれば
そして好きこそ物の上手なれで思いついたことをスラスラ書けるほど十分に上達すれば
実用的なことでも色んな場面で使ってみようと思えてくるはずだよ
ユーザースクリプトとか拡張機能とかでね、それがまた幸せに思えるんだよ
長い
う・・だめだ・・ この茶化したい衝動を抑えきれない・・・
イラッとさせるのがうまいな
330 :
153 :2014/02/27(木) 16:10:52.70
縦読みは便利だな ゴミ書き込みかどうかが数秒でわかる
JavaScript開発でおすすめのIDEありますかね?
Chrome・・・はどっちかというとデバッガか
334 :
153 :2014/02/28(金) 05:41:10.14
なかなか無い 誰か作れよ 1000円くらいなら出してやる
335 :
153 :2014/02/28(金) 05:46:13.08
正直デザイン周りはjQueryで十分だしな JSはフォーム周りぐらいか
各WebサービスのAPIを利用して何か便利なものを作る場合もJavascriptは結構使う。
使わない人(静的HTML作成に毛が生えたような程度)なら使わないだろうね。 ウェブアプリならJavaScript使いまくり。
昔はJavaScriptは避けられてたけど 今はWebアプリのメインはJavaScript開発で サーバサイドはJSONを返却するだけ
ちなみになんで避けられてたの?
いやサーバサイドでもNode.jsでJavaScript動いてて、動的にhtml生成したり、webスクレイピンぐしてクライアントに投げたりとかしてるし。 Windows8でも今はJavaScriptでネーティブアプリ書くしな。
343 :
デフォルトの名無しさん :2014/03/01(土) 21:12:25.52
スクロール量に応じてアニメーションを進めるサイトあるけど、 あれって単純にアニメーションをトリガーするだけの方がいい気がする そうしないとコードが複雑になるし 滑らかじゃない(途中でスクロールやめたらアニメーションもフリーズ)からなあ
344 :
153 :2014/03/02(日) 00:02:59.99
()の使い方を誤用するな
プ()笑
>>342 JavaScriptを(JITではなく)ネイティブコードに変換する処理系とか実用になってんの?
それとも、ネイティブコードじゃなくてもネイティブアプリって呼ぶのが流行ってんの?
WEBアプリの対義語としてなら理解出来んでもない
AndroidでDalvikアプリがネイティブアプリと呼ばれてるのも違和感あるな。 あれもwebアプリとの対比だろうけど、そのくせNDKもあるんだからややこしいというかスッキリしない 一方で、AndroidではwebViewにオフラインhtmlを表示する形のJavaScriptアプリはネイティブとは呼ばれてないし 言ったもん勝ち状態?
質問なんですが、 functionでvarしたオブジェクトは通常は関数を抜けた時点で破棄されるが、returnした場合は 呼び出し元で参照されるので破棄されないという解釈でいいでしょうか? また、returnされたオブジェクトを呼び出し元で別のオブジェクトのプロパティとしてネストした 場合、その親オブジェクトが破棄された時点でネストしたオブジェクトも一緒に破棄されるん でしょうか?
つ GC 参照がなくなりゃ消える
>>348 Dalvikアプリをネイティブアプリなんて呼んでるアホが居るのか…
NDKが有るんだからどう考えてもDalvikアプリはネイティブじゃねぇだろ
>>349 そのスラドストーリーがどうしたの?
じゃお前は何アプリって呼んでるの?
varした方がglobalってなんなの
>>352 泥の開発本でも見たな
もう捨てたけど確か「この場合ネイティブコードの意味ではなくAndroid環境にネイティブということです」みたいな文面だった
ということです、じゃねーよって思った
百歩譲ってネイティブコード以外の意味を認めたとしても、
>>342 とか意味不明だけどね
win98からwsh+JScriptで書けたし
WSH+JS w MsgBox出すのが精一杯じゃん それをアプリとは言いたくないなー
つHTA
懐かしい IE5でサウンドノベル作って遊んでたよ
>>356 コンソールアプリケーションはアプリケーションではないと?
何も考えずにUnicodeでコンソール入出力できたり、何気によくやってくれるぞWSHは
CUIだとコマンドっつー方がしっくりくるな アプリはやっぱGUIで
コマンド?スクリプトだろ。コマンドはプログラムじゃない。 うちはアプリという言い方はしないけど、C#だろうがJavaだろうがPowershellだろうが全部プログラムって読んでる。 俺はPowershellで社内管理ツールを三ケタくらいつくってるよ。
そこまで数が必要な状況って大丈夫なのか?
抽象化が足りないとそうなる
MDN と MSDN は紛らわしいな…
powershellって外人と日本人ですごい普及率に差があるね。 日本人で使ってるやつってあったことが無い。
powershellはいい言語だと思うけど、デフォルト設定だとスクリプトの実行が不可能というのがクソすぎる
367 :
デフォルトの名無しさん :2014/03/05(水) 20:52:31.46
powershellって言語だったのか
368 :
デフォルトの名無しさん :2014/03/05(水) 21:08:03.22
言語だったのです、平行世界では。
言語名でもある
>>366 作った奴にお前毎日これタイプしてるんかと問い詰めたくなるような
コマンドレットの命名規則とオプションの長さもね
言語だとしても特定のOSでしかうのかない言語に興味はない。
じゃああらゆる言語に興味ないってことじゃないですか!
はぁ? CとかperlとかあらゆるOSで動くじゃん
あらゆるがネタなのか本気なのかわからん
>>374 あらゆるというのは、俺が1週間で
作り上げた独自OSでも動くということです。
>>376 1週間でOS作れるなら、次の1週間でCコンパイラ書いてperl移植できるでしょ。
378 :
デフォルトの名無しさん :2014/03/06(木) 22:13:18.17
あらゆるというのは、俺が1週間で 作り上げた独自OSでも動くということです。
379 :
デフォルトの名無しさん :2014/03/07(金) 00:12:21.31
俺が一日で作る独自OSでも動かないとダメ!
380 :
デフォルトの名無しさん :2014/03/07(金) 00:14:07.51
でもWindowsで動けばパソコンの9割で動くよ。 Windows以外の全てのOSで動くように頑張っても1割にしかならないよ。
>>332 eclipse orion はどうだろうか
オニオンに見えた
orzonにみえた
質問スレって無くなった? ブックマークレットでURLにアクセスして特定のボタンを押す javascript:document.open(); document.write('<body><form action="URL" method="POST"></form> <script type="text/javascript">document.form[0].click();</script></body>'); ボタンがテキストエリアとか無いボタンで複数ある内の一つクリックさせたい場合なんですけどform所をどう変更すればいいのか解りません。 根本的に間違ってますか?
日本語が根本的に間違ってる
ありがとう御座いました。 別サイト解決しました。
javascriptって検定とか資格とかあるかな ちょっとづつ使ってきたし少し勉強もしたけど真面目に取り組んでみようかと まずは資格取得を目指しつつなんて思ってます javascriptスペシャリストなんてのを見つけたけどちょっと敷居が高そう
javascript自体はそんな奥深くないよね? jQueryだとかライブラリが豊富でそっち使いこなすことが目的なわけで
泥沼なので奥が深い症候群はあると思うよ 言語機能がヘボいせいだけど、主に運用の段階でややこしい発明に頼らざるを得ないケースが多い 即時実行パターンやらforループ中の匿名関数への値渡しやらね 気持ち悪いので綺麗に書く方法を皆探し回ってブログで難解な発明を流行らせる もちろん助かってますよ 言語としては微妙。スレッドもないのでコールバック繋ぎで反吐が出たりとかそういう駄目な方の奥深さ。 正直もう、LLの中ではゼロからだと現場で書ける習熟度までいくのがキツい部類の言語だと思うよ 古参に仕切らせるのが安全 下手するともう、c++11ベースでの新参者を使えるようにするよりも覚えるべきことが多いんじゃねえかな 仕様自体は軽い方だとか言われてるけどね がんがんシンタックスシュガー追加しまくってるc#とかをもうちょい見習って欲しいもんだ それはさておき俺も検定よりはライブラリとか触って覚えとけ派かな
他の多くの言語に対してJavaScriptは異質なので
それを理解できていないと
>>389 のようにお手上げになってしまう
例えば変数のスコープはどのように設定されるのかとか
シングルスレッドマルチタスクの非同期処理の処理順序がどうなるかとか
プロトタイプ継承とか
うわw
393 :
153 :2014/03/18(火) 11:15:52.77 ID:5a6+hyB5
390みたいなのはjsをよく知る人じゃないと理解できない 仕様から全部覚える必要は無いだろうが いくつかの知識は要るだろうな jsをヘボと言うならjsより良いもの早く作ってくれよ jsの問題を解決すれば、世界の多くの奴らに感謝されるぞ googleが作っているdartですらまだ全くjsに及ばないのだからな
>>390 の考え方に同感。
JavaScript自体は、理想とはいわないけど、平均以上に素直に実装されてる言語だと思う。
ただオブジェクトやスコープの考え方はC++やJavaとは異質な点があるから、
頭の切り替えがうまくいかないと難解だとかヘンテコな仕様だと思ってしまうんだろう。
クロージャなんかもJavaScriptのスコープを理解してれば簡単に理解できる概念だけど、
検索すると上位に出てくるのは明らかによくわかってないのばかり。
たとえば「猿でもわかるクロージャ」なんて酷い嘘解説が上位に出てくる。
まだまだこの国にJavaScriptが根付くのは難しい。
395 :
デフォルトの名無しさん :2014/03/18(火) 16:36:10.55 ID:mRiEsrc4
多くの言語に対して異質な言語が、素直な実装言語のはずがない
評価されるべきは汎用性の高さでは。素直っていうならまだ静的型付け言語のお堅い実装のほうがイメージしやすいな 第一JavaScriptは根付くどころか使い倒された好例でしょ Cでもそうだけど、素人解説で溢れかえるのは普及しまくった証拠だよ。マイナー物の方が、玄人やマニアが遊んでる段階なのであまりトンデモ解説に出くわさない C#もこのところ、Unity普及の影響でトンデモ解説に出くわす機会が増えた 「よくわかりませんがこう書くと動きます」とかあるし。意地悪な長文コメントつけたろうかとウズウズしたり
異質さはブラウザ用の言語というところに起因するのだろうな DOMを扱うにはプロトタイプベースのオブジェクト指向の方が実装しやすいだろう
JavaScriptの成功はCとの親和性の高さが全てだ スクリプトといわれる言語はオリジナルな構文なのばっかりだから助かる じっくり言語仕様を見ると糞言語だがそれを補って余りあるほどCとの親和性は重要
成功している言語は軒並みCとの親和性が高い
cとの親和性ってなんのこっちゃ
ポインタのないC風の文法を持った言語なんて、 掃いて捨てるほどあるからなぁ
>>387 はじめてのJavaScript、秀和システム
掌田津耶乃(しょうだ つやの)、2013
本格的な入門書で、おすすめ
でも、動的言語は複雑すぎる
書くのは簡単だが、実行時エラーが多い
しかもバグを解決するのに時間がかかる
結局、Java, C#の方が簡単
実行環境がブラウザだから、
画面の解像度などを気にしないでいいから、
アプリが作りやすいのだろう
404 :
デフォルトの名無しさん :2014/03/19(水) 11:18:01.29 ID:ln4ljSZ5
>>403 それは動的言語の性質でなく、コンパイラなど実行環境が原因だ。
動的で型付きで、コンパイルとスクリプトで動作する言語も原理的には可能。
Javascriptで3Dを動かすシステムなんかがあったがそれは型付きだった気がする。
405 :
デフォルトの名無しさん :2014/03/19(水) 11:58:13.54 ID:ln4ljSZ5
明日から使えるasm.js - Low Level JavaScript - 「LLJS」 マイナー言語アドベントカレンダー・一日目 - Qiita
LLJSとは
JavaScriptにコンパイルされるAltjsの一種ですが、ただのJSトランスレータとは一線を画します。名前の通りローレベルの操作を行えます。
公式ページから引っ張ってきた次のサンプルコードを見たほうが早いと思います。
// Import malloc. The casting is annoying -- we don't have a good
// story for typed imports yet.
typedef byte *malloc_ty(uint);
let malloc_ty malloc = (malloc_ty)(require('memory').malloc);
// Allocate an int on the heap using new.
let int *y = malloc(sizeof(int));
trace(y);
// Alternate, more convenient syntax.
let int *x = new int;
trace(x);
LLJS to asm.js
上で見たイディオムは、どこかでみたことがあると思いませんか?そう、asm.jsです。
最近ではGoogleがasm.jsをサポートすることが話題になっていました。
これでFirefoxだけの独自規格ではなく、Google/Firefoxという「一般的な」ご家庭のブラウザで高速なJavaScriptが実行可能ということになります。
http://qiita.com/mizchi/items/ccc1429ca6156233bdee
一般論でいえば、コンパイルが遅くてイラッと来るから、 yahoo storeはlispで書かれたし、ゲーム内でも組込スクリプトが使われる。 そして、静的言語で書けばバグが出ないのならば、JUnitなんて作られない。 多分、お前らは病的に頭が悪いのでWikipedia本家のプログラミングに関する 記事を全て刮目すべきだし、3DならPOGLで学んでおくのが幸せだろうと思う
教育本を教えたらさっさと初心者に勉強させなさい それが本当の指導者 くだらない知識を語って刷り込ませるだけの無能はいらない
コンパイルが遅いからじゃなくて シナリオスクリプトとかのDSLの文化があって 自前言語のエンジンとしては動的/インタプリタ型の方が実装しやすかった という流れだと思う
クロージャで何がしたいのか、何が分からんのかを書かなきゃオススメ記事も出てこないんじゃない 「関数がわかりませんオススメ記事教えて」とか聞かれてるような感じ 要は定義場所のスコープの変数を扱えるっていう単純な性質のことに過ぎないんだけど 静的型付け言語のラムダとかではキャプチャという機能名が付いてたりするけど
411 :
デフォルトの名無しさん :2014/03/20(木) 10:23:58.04 ID:OnvdowAM
Element.remove楽でいいなぁ ずっとparentNodeからremoveChildしてたわ
ajax使ったサイト作ってるんだけど phpから返されるJSONオブジェクトがjsオブジェクトに変換してみると 全部オブジェクト化されてて困ってる php側の配列 $list = ["categori1" = array(), "categori2" = array(), "categori2" = array(),]; データベースからデータ取得してcategori1〜2内の配列に値をセット 以下セットする構造 array(["title" => "タイトル1", "setsumeibunn" => "解説1", "url" => "アドレス"], ["title" => "タイトル2", "setsumeibunn" => "解説2", "url" => "アドレス"]); jsで見るとcategori内がキー毎に数字をふられた名前でオブジェクト化されてる… [categori1[{"title" : "タイトル1"}, {"setsumeibunn" : "解説1"}, {"url" : "アドレス"}, {"title" : "タイトル2"}, {"setsumeibunn" : "解説2"}, {"url" : "アドレス"}]]; こうしたい[categori1[["title" => "タイトル1", "setsumeibunn" => "解説1", "url1" => "アドレス1"], ["title" => "タイトル2", "setsumeibunn" => "解説2", "url2" => "アドレス2"]]]; 分かり辛いと思うけど解決方法ある? 最悪XMLの方法に変えたら出来るけど、 jsonで解決方法あれば知りたいです
キー毎に数字とやらが含まれてないような これtitleキー被るから上書きになってそもそもjs側でそんなデータになりえんでしょう title1とかになって困る…だとも思えないし。そんなんforループ側でフォローすりゃいいよね 何に困ってるのか、何が起こってるのか共にイミフっす あとphp側の処理方法の話なら板違いなので、その折はweb制作板への移動もご検討下さい
phpスレで聞いたら?
>>414 Javascript側のハンドリングがまずいだけじゃないかと思う。
PHP:
$a = [];
$a[] = ["title" => "title1", "desc" => "desc1", "url" => "url1"];
$a[] = ["title" => "title2", "desc" => "desc2", "url" => "url2"];
$b = ['category1' => $a];
echo json_encode($b);
結果:
{"category1":[{"title":"title1","desc":"desc1","url":"url1"},{"title":"title2","desc":"desc2","url":"url2"}]}
Javascript (using underscore.js):
_.each(data, function(value, key) {
console.log(key);
_.each(value, function(item) {
console.log(item);
});
});
console:
category1
Object {title: "title1", desc: "desc1", url: "url1"}
Object {title: "title2", desc: "desc2", url: "url2"}
>
>>418 うおーありがとう
しかも読みやすいな
無理矢理で汚いかも知れないけどphp のwhileループ内で明示的に配列番号指定して追加したらキレイに出力された
$i_Web = 0; // 各配列番号
$i_Illust = 0;
// samples一覧を生成する処理
$sql = sprintf("SELECT * FROM Portfolio WHERE type = 'samples';");
$query = mysql_query($sql, $link);
while ($row = @mysql_fetch_array($query, MYSQL_ASSOC)) {
if ($row['category'] == "WEB") {
$array_list["ctgryweb"][$i_Web]['title'] = h($row['title']); // <-- 訂正前は$array_list["ctgryweb"][]['title']
$array_list["ctgryweb"][$i_Web]['discription'] = h($row['discription']);
//省略…
$i_Web++; // インクリメントして各データ毎を振り分ける配列番号
} else if ($row['category'] == "イラスト") {
$array_list["ctgryillust"][$i_Illust]['title'] = h($row['title']);
$array_list["ctgryillust"][$i_Illust]['discription'] = h($row['discription']);
//省略…
$i_Illust++; // インクリメントして各データ毎を振り分ける配列番号
}
} // while end
みんなの言う通りphp側の問題だった
答えてくれてありがとう
>>419 うーん、配列番号なんていらないんだけど・・・。
「連想配列の配列」をそのままjson_encode()すれば、Javascriptで簡単に扱えるんだけど・・・。
まあ、これ以上なにか疑問があるのなら、WebProg板行きかな。
421 :
デフォルトの名無しさん :2014/04/07(月) 10:31:43.61 ID:5b7W6LSU
イベントハンドラの登録をbodyに1つだけにした その登録した関数内でどの要素でイベントが発生したか判別してswitchで切り替える実装 これなら同じイベントリスナーをループで複数のDOM要素に登録しないで済むし早くなるかな?
>>421 良いんじゃないかな
イベントハンドラのバブリングを駆使するやり方を覚えると一つ賢くなった気がしてくるよ
>
>>422 ありがとう
端から見て読みにくくなってないかとか心配だったけどそこまででもないよね
jsは最適化の方法がたくさんあるから書いてて楽しい言語って感じがするなあ
この板は怖いけれど最近JavaScriptが面白くなってきた。
最近JS触り始めたけど要素に逐一addEventListenerしてたわ
なるほど
>>421 みたいなやり方もあるのか
>>421 が言ってるのって、jQueryでいえば、
$(document).on('click', 'a', function() {・・・}); のこと。
これはイベントハンドラをdocumentに一つだけつける。
bodyじゃなくてdocumentではあるがだいたい同じこと。
そしてa要素と言うセレクタで切り替える。
(セレクタなので 'p > a.class' みないな条件で切り替えるのも可能)
> 最近JS触り始めたけど要素に逐一addEventListenerしてたわ
これは $('a').on('click', function() {・・・}); のこと
全てのa要素(セレクタ)にイベントハンドラをつける。
すべての要素につけているが記述は一行。
ようするにあれだ
>>421 や
>>425 はjQuery使ってみたほうがいいぞ。
>
>>426 jQueryでもできるのか
確かに楽だけど$()が使ってるquerySelectorは遅いから
急ぎじゃなければなるべく使わないようにしてる
jsで選択する要素って元から決まってたり分かってたりするから
一意のid付けてgetElementById()で取得した方が早い気がする
ほら、気がするとかいってる。思い込みで発言している証拠。 実際に速度計測してみ。 ページ表示した時に本の数回しか実行しないだろう? 1回のページ読み込みでどれくらいの差が出るかを調べてみ。 0.001秒ぐらいしか差は出ないから
楽だけど・・・事実。メリットが有ると自覚できる。 表示速度・・・0.001秒の差。メリットを自覚できない。 この二つを比較して、なぜjQueryがダメだと思っているのかがわからない。 冷静に考えようぜ。問題が発生しないのに速度を持ちだす奴は もっと重要な事を見逃す。
今時のブラウザならquertSelectorはネイティブで持ってるから別に遅くはないぜ
そんなに熱くならなくても 別にjQueryが悪いなんて書いても思っても無いですよ 勉強中だから時間があればライブラリ使わない方法で根本的な動作を覚えたいだけ
>>421 それは本当に特殊な場合を除いてやめた方がいい
details/summary要素内みたいにShadowDOMからのイベントは伝わらない(ラップされる)から
これからのCustomElementsの流れ的にもいつかハマって痛い目見るよ
うむ やっぱり一つ一つの要素にaddEventListenerするのが一番安全だな bubblingとかに頼って手抜きとか絶対駄目 on***属性で設定してた頃に回帰すべし
>>427 classで選択したくなるときない?
そうすると、自前でいつまでも死なないIE8対応するはめになるよ。
つgetElementsByClassName
>>435 それ、IE8じゃ使えないよ。
ひょっとして、最近じゃ使えるようになったとか?
437 :
デフォルトの名無しさん :2014/04/09(水) 20:05:50.31 ID:ewd/VutF
自分の感覚だとWebでの『最近』はChやFxの更新感覚である6週間かな。 例えば今日から6週間後にはちょうどCh35がリリースされて、ES7のO.oから順調に行けばES6のWeakCollectionやPromisesが実装される。 これらはどれも革命的かつ今後の布石になる強力なAPI。 まあ50歩譲っても、Nightlyが降りてくる4ヶ月くらいだな。 当時言われていた『常識』は4ヶ月くらい経つと精査する必要が出てくる。 逆に言えばこのくらいから技術情報の価値は下がり始める。 そして1年も経ってしまうとメジャーバージョンが8つも進む事になる。もはや別世界。 1年後にはES6もそうだし、WebAnimationAPIも使いたい放題になってる。HTTP2.0も普及を始めてる頃。 Nodeだって1.0が出てるかもしれないし、SVG2.0やWebGL2.0の足音も近づいてきてるはず。
IE6無視ムードになってからわりとさくさく古いの切る風潮が根付いたな
IE8で使えなかったのか…
>
>>432 >details/summary要素内みたいにShadowDOMからのイベントは伝わらない(ラップされる)から
これからのCustomElementsの流れ的にもいつかハマって痛い目見るよ
そんなのあるのか
スレ違いになっちゃうけどこれ初めて知ってよく分かんないんだけど分かりやすい記事とかあるかな
上の方でbodyに1つって書いちゃったけど確かに実際にやるとしたら特定の要素内だけだよね
そこらへんは臨機応変にしないと
TampermonkeyでJQueryを使いたいのですが 中卒でもわかるようにやさしく教えてください
まず高校行く
javascriptに詳しくないので教えてください 任意のURLにリクエストを飛ばしてhtmlを受け取るまではいいのですが そのhtmlに埋め込まれているjavascriptの出力を受け取るにはどうしたら良いのでしょうか
447 :
デフォルトの名無しさん :2014/04/21(月) 09:27:32.59 ID:jRB2i5MF
初心者ですけどjavascriptを教えてください aaa(){/*処理1*/} bbb(){/*処理2*/} ccc(){/*処理3*/} これで処理1終了→処理2開始のようにやりたいのですがどうしたらよいですか? 処理1が終わる前に処理3が始まってしまいます
function b(){処理} function c(){処理} function a(){ b(); c(); } a()
>>447 なるほど
分かりました
ありがとうございます
JAVAチップってあったけどそのうちJavaScriptチップも出てくるな
>>453 既にブラウザ上で、jslinuxとかいうエミュレータが動いてたぞ
オペレーターのオーバーロードもポリモーフィズムも開発効率の面から幻想だったんだ 静的片付け言語でコンパイルするより、動的言語でテストを書いた方が効率的だったんだ
>>454 それはない
そもそもJavaチップ自体成功したとも思えないし
ファイルの読み書きができない以上JavaScriptがブラウザ以外に普及することはないだろう。
fs = new ActiveXObject("Scripting.FileSystemObject");
でた〜、ActiveXObject使奴〜
うんこみたいなJavascript置いてあるページばかりで嫌いになりそう なった
マジレスすると自由なファイルの読み書きができないのは ブラウザだから。出来てしまうとセキュリティホールになる。 逆に言えば、ブラウザじゃなかったら できるということだよ。 その時のやり方はActiveXObjectだけじゃない。 Linuxでも動く有名なものがある。あえて言わんけどw
よく (function(hoge){ ここに本体 }(window)); という書き方を見かけるのですが 最後の行が })(window); が正しいような気がするんですけど 前者は間違っていないのですか?
括弧で囲まれていることで定義ではなくなるとかそんなのじゃね?
どっかのサイトに説明があった気がする
サイ本は前者だよね
(function(){}()); <- クロックフォード先生推奨
ずっと優先順位の問題だと思ってたけど よく考えたらそんな事ないよな。
クロックフォード信者はJSLint使ってろってこった。 通はJSHintを使う。 さらに通は鼻でデバグする。
jsでローカルファイルにアクセスするときって FileAPIで良いの? どこに保存されたか判らなくならない? 他にいい方法ある?
ファイルディレクトリの子ノードをイテレートして検索すりゃいいだろ
fileWriter.write(blobdata); したあとで URL.createObjectURL(blobdata); で取れました ありがとう
474 :
デフォルトの名無しさん :2014/04/28(月) 01:06:19.42 ID:6+nhvyWj
createObjectURL でアクセスするなら fileWrite.write しなくてもアクセスできる
なんかJavascript流行ってるの?
次に主流になる言語だよ。これは予定調和
フリーメーソンの計画書にそう書いてるからね
信じる信じないかは貴方次第!
むかしブラウザが誕生したての頃は ローカルファイルアクセス禁止だったのにな ActiveXとかでさえ制限があったし Miscrosoftはそれでウィルスやワームに苦労したのに りんごやぐぐるさんはあっさりと覆してしまった
・禁止だったのではなく手段がなかった ・ActiveXObjectに制限なんてあったか? ・りんごやぐぐるさんが覆したのでは無い
本当の正解は 今もローカルファイルアクセスができるわけじゃない。 (選択したファイルにおいて限定的な操作ができるだけ)
ここまでJSでかくなると どうやってgoogleがDart食い込ませてくるのか見ものだな
ダーっとやるんじゃないかな?
優先度つきキューや、ダイクストラ法で使えるように、 オブジェクトを入れた配列を使って、 そのオブジェクトのプロパティで比較する、 2分ヒープ(BinaryHeap)を作った 皆が使えるように、MIT License にしたが、 コメントは日本語で書いた gistは英語だから、jsdo.it にさらせば良いのか?
JavaScriptの情報をいちいちをbit.lyで短縮してるやつうぜえよ
ActiveXは証明書が必要だったな
>>484 歳取ると駄洒落が増えるのは脳が腐り始めるからだって
脳が腐り始める。 というのを科学的に説明してください。 そんな現象聞いたことありません。
血管から血が漏れたら腐る 血管に血が流れなければ腐る 以上
アスペですね わかります
>>491 それもう病院に行くべき状態だろ?
ダジャレいえるならそんな状態じゃねーよ。
だから腐ってるとは言ってないんだよ 腐り始めてるって話だから
>>494 腐っている ≧ 腐り始めている
だったら既に腐ってるってことでしょ?
脳の場合は萎縮って言うんじゃないの
496 :
デフォルトの名無しさん :2014/04/29(火) 13:44:59.59 ID:NlKWryVs
それがどうかしましたか?
497 :
デフォルトの名無しさん :2014/04/29(火) 14:39:59.17 ID:tuCmfcOr
ここ何のスレ?
よくまあダジャレひとつでそこまでレス付けあえるなw
499 :
デフォルトの名無しさん :2014/04/30(水) 01:10:28.61 ID:EBIGebK6
>>481 殺したはずのhtaのワンクリを生き返らすのか
祟りって何って、人かごねげすぶっでびひってあらふわぁだすかまな かんせあれhはhtaと慈照寺仏だひとの心郿で馬謖がなにも学ばないことでげす
fileWriter.write(blobdata); で書き込んだあともう一度続けて fileWriter.write(blobdata); をやるとエラーになります fileWriter.append(blobdata); みたいな関数もみあたりません 例えば fireWriterっていうのは 非同期に一行ずつ書き出す とかいう使い方は出来ないのでしょうか?
JavaScriptじゃなくてHTML5の話なような気がする
(無名含む)関数内で自分の関数名を知りたいのですが、 var hoge = function(hage){ console.log(arguments.callee.name); }; とやっても、名前が表示されません。 arguments.callee.toString() だと関数定義そのもののソースが表示されてしまいます。 期待しているのは、 hoge と表示されることです。 どうすればできますか?
>>503 なんでわざわざhogeに代入するのかわからない
>>504 が書いているとおりだが、普通に関数書けばよろしい。
hogeに入る関数がいくつもありえるのなら変数に入れていいが、
そうでないなら、普通にfunction name()でいいだろう?
設計がうんこなだけだわ
馬鹿には無理
>>503 無名関数なんだから名前が取得できるわけない。
お前が挙げている例の場合、hogeは関数名じゃないからな。無名関数を参照している変数名だから。
>>505 わからないなら黙ってればいいと思うよ。
>>505 >hogeに入る関数がいくつもありえるのなら変数に入れていいが、
なんかダサさ満点なツッコミで、つっこまない方が無難という
最近レベルの低いやつが増えたな
お前も最初は低レベルだったんだよ
>>512 最初はみんな低レベルだよ。
問題なのは長年やってても低レベルなやつ。
5年もやっててそんなんじゃ救いようがない Orz
ああわかる 2chにいるやつらいつまでたってもWebアプリはCGIとPHPとSpeedyCGI()しか理解できないからな
>>514 > 2chにいるやつらいつまでたってもWebアプリはCGIとPHPとSpeedyCGI()しか理解できないからな
さあどうだろう? 他人のことなんかわからないよね。
でも、自分のことは自分でよくわかってるはずだから、
その言葉は、君自身には当てはまると考えていいよ。
君も2chにいるわけだしね。
低レベルな人間は自分のことも自分でよく理解できてないし
自分が行ったことがどういう意味なのか自分で理解できてない場合もある
>>515 は自分が書いたことがどういう意味なのかちゃんと説明できるのかな?
2chは、玉石混淆だから素人も居るし、 実名を聞けば誰でも知ってるようなヤツでも出入りしてるだろな。
ねーよ
47氏は後で有名になったわけだが。 日本を代表する天才プログラマーですよ。
47はもう消えたじゃん
ああ、JSに限らない話ね
わたしのおはかのまえでなかないでください そこにわたしはいません ねむってなんかいません
523 :
485 :2014/05/06(火) 19:15:02.50 ID:yrujgySY
オブジェクトを入れた配列を使って、
2分ヒープ(BinaryHeap)を作った
オブジェクトのプロパティの値が、
最小のものを取り出す
優先度つきキュー (順位キュー、priority queue)や、
ダイクストラ法 (Dijkstra's Algorithm)で使えます
MIT License です。jsdo.itに発表しました
ttp://jsdo.it/michihito/bGH5
jshintでエラーや警告でまくりの汚いソースコードだな 修正してから公開しろや
俺はJSLint派
JSLint一強だろ
promiseってもう使ってもいいものですか?
クロックフォード信者の素人はJSLint使ってろってこった。 通はJSHintを使う。 さらに通は鼻でデバグする。
FileReader には onprogress がありますが FileWriter で progress 処理をしたいときは 何が使えますか?
var a = new Uint8Array([0x61, 0x62, 0x63]); となってるTypedArrayに対して a = a.concat(new Uint8Array([0x64])); で追加は出来るんだけど a.push(0x64); とすると[0x31, 0x30, 0x30]が追加されます どうするのが正しいのでしょうか
URLの?以降の文字列をJavaScriptで取得する方法はなにかありますか?
あります
>>531 Googleで調べても本当に見つからずにここに来たのか?
まさかとは思うが「何かないかなー…そうだ2chに!」で真っ先にここに来たとかじゃないだろうな?
ググり方がわからんかったんだろかね まあ「js クエリ」でぐぐったら普通に答えが出てきた以上、単に勉強不足と言われても仕方ないだろうけどなあ
教えてくんLv99
質問した後にIDを変えて回答者を装って偉そうに間違った回答を書き込む すると誰かがその回答を正すために正しい回答を書き込む これができてこそ真の教えてくん
「クエリ」という言葉がまず出て来ないだろ
そもそも質問スレは他にあるっていう 少し前からすげえの湧いてるから聞きづらいだろうけど
「まあ聞きに来たら『ない』『諦めろ』『聞きに来るな』て言って追い返してやるだけだがな…」
JavaScriptはクラスで書くような言語じゃないのに無理やりクラスっぽく書こうとするカスが多くて困る そんなクソみたいなコード誰が保守するんだよ 関数とmain関数だけ用意するのが本来のJavaScriptである
無理やりクラスっぽい書き方って?
"クラスで書く"でお察し
main関数だろ突っ込む所は
ググルもカスらしい
やっぱり引数の型が判らないのは気になるな
547 :
デフォルトの名無しさん :2014/05/18(日) 04:36:20.02 ID:Lh3J4++k
AP層との通信に失敗しました。:[[A1S1E001E] com.fujitsu.mc.a1.scm.MCPiException@6984580 復帰コード = 7051 メッセージ = "予期せぬ例外"java.net.NoRouteToHostException"を 検出しました。 [java.net.NoRouteToHostException: ホストへの経路がありません]" ログ出力済フラグ = true ]
キーコードを取得したいんだけど onkeypressだと大文字小文字も別のキーコードが返ってくるよね onkeydownだとテンキーは取得できるけど大文字小文字は判別できない 大文字小文字も判別できてテンキーも取得できるようにするにはどうすればいい?
>>548 1. 11行目に全角スペースが紛れ込んでます
2. HTML によって calc, clear というオブジェクトが作られてるので、同名の関数を定義しても
オブジェクトの名前として扱われます。別の名前を付けましょう。
>>545 yuidoc/jsdocでなんとか
と書いておきながらなんだがエディタ上で即参照出来ないと不便だよな
俺は秀丸でJS手書きなんだが、この辺を何とかするIDEなりエディタってあるのかなやっぱ
>>550 ありがとうございます
動くように出来ました
外部jsファイル内でjQuery読み込む方法教えて。 なんか検索しても全然出てこなくて…。 htmlで読み込む方法ばっか出てくるw
普通にhtmlファイル内にjQuery読み込んで、そのhtmlファイル内に読み込まれた外部のjsファイルの中に、 jQueryの記述をすればjQueryは使えるはず。それともそういうことではなくて?
var script = document.createElement("script"); script.src="jquery.js"; document.head.appendChild(script); あとは「document.createElement("script");」でぐぐってください
556 :
デフォルトの名無しさん :2014/05/21(水) 15:59:55.22 ID:UBUpb/UL
ありがとうございます
head に追加で読み込まれるのか!
グローバル変数の定義順とか気にしなくて良くなってウマー
jsはやっぱこの辺が弱いなー
ありがとうございます。 お陰さまで読み込めたはずですが、 Uncaught ReferenceError: $ is not defined \(^o^)/ http側で読み込むと動作するのに、js内で読み込むとエラーw ちゃんとjQueryのが上に書いてるのにエラーとかw JavaScriptめんどくせーwwwww phpとかrubyで書きてーw
script要素をDOMツリーに追加した段階では読み込み始めただけ load完了してからでないと使えない var script = document.createElement("script"); script.src="jquery.js"; script.onload = function (e) { jQuery(document.body).remove(); }; document.head.appendChild(script);
>>561 ごめん、その通りだ
setTimeout()で間をおく必要があるかもね…てそのスクリプト何?
remove()して何の意味が…!?
>>553 > 外部jsファイル内でjQuery読み込む方法教えて。
一般的にそういう時にrequirejsとかを使うんだよ。
簡単にいえば、JavaScriptでincludeを使えるようにする
ライブラリだと思えばいい。
require(['jquery'], function($) {
自分のコード
});
のような書き方をするモジュール(JavaScriptファイル)を
作れるようになる。
>>563 調べてみたけど、余計めんどいじゃないかw
一応それぞれのJavaScriptファイルを順番に読み込むための
JavaScriptを更に作って対応しました。
気軽にJavaScriptファイルを読み込むことすら出来ないとか、
はっきり言って、ゴミみたいな言語だなぁー。
jQueryがもてはやされる理由がよく分かる。
というか、jQueryがなかったら実用性まったくないやね。
angularとかbackboneとか触ってから判断した方がいいんじゃないか
>>564 じゃあなんで、みんな使ってるかわかる?
>>564 は成りすましの荒らしか
まあ俺も
>>553 ではないけど
>>566 ブラウザから使えるのがjavascriptだけだからみんな仕方なく使ってる
>>567 JavaとかPerlとかRubyとかみんな当たり前に出来るぞ
jQueryって、もてはやされたのは数年前の話で 脱却していこうってのが最近の流れだと思うんだが
なんか
>>564 はnode.jsとかすら知らなそうで話にならんかも
脱却していこうなんて言ってるのは、jQueryをブラウザ間の互換性を 保つライブラリだと勘違いしている一部の人だけだろ。 jQueryを使わなかったら、特定のクラスの要素全てに イベントつけるだとか属性つけるのに、面倒なことしないといけなくなるぞ。 jQueryはDOMを関数型風にリスト処理で操作するライブラリだ。
DOMを操作するという考え自体から脱却してるってこと AngularJSはそもそもDOM操作を非推奨としてdirective中心のマークアップを勧めてる
>>572 あぁ、VBやAccessでお馴染みの方法ね
データーバインディングとかいったっけ。
なつかしいな。
で、それもうWindowsの世界では
15年以上前からあるんだけど
主流にはなってないね。
これから主流になるんだよ
575 :
564 :2014/05/22(木) 12:02:56.83 ID:4Fw89JRe
今度はスコープで躓いてるわw 読み込みを順番に行う関数で読み込んだもんだから、 変数のスコープグチャグチャw 関数入れ子にすると今まで使えてた変数使えなくなるとかどんな仕様だよ… このどこでも宣言できるvarと、型もクソもないごちゃまぜ誤解釈しまくりの変数なんとかならんかー。 スコープも外から取れなかったり、中まで影響したりごちゃごちゃやん 大抵は別言語の知識使い回しでなんとかなるけども このゴミ仕様を把握するには一から勉強せなでけんな。
変数に型が無いのはPerl含め動的言語はほぼそうだろ お前はどの言語の知識を使い回そうとしてるんだ?
>>576 なにが「ほぼそうだろ( ー`дー´)キリッ」だよw
足し算すらまともにできない糞仕様のこと言ってんだよ。
テメーの安い万能感を満足させたいのか知らんが、
浅い知識で知ったかしてんな。
他言語で開発したこと無いなら口出すなボケ。
暗黙の型変換のことだと思われ
馬鹿には無理
やっぱり日本語版のStack Overflowがあってもいいかもしれないな。 少なくとも英語に弱いプログラムに携わる人達の助けにはなるし、それによって日本のプログラマーの数の絶対数を増やす事が出来、この分野での産業が活性化が期待出来そう。 2chは荒らしが多いので、情報交換にはとことん向かない。
582 :
デフォルトの名無しさん :2014/05/22(木) 17:39:06.55 ID:1UkhO8ob
>>575 俺は当初スコープはブロック単位じゃなくて関数単位なところにハマってたよ
>>581 せめてヤフー知恵袋くらいの治安レベルはほしいよな
とことん向かないって...
なぜ海外のプログラミング掲示板は荒れないんだろうか
普通に荒れてるよ、海外でも
とりわけ優秀な奴だけ選んで海外のノーマルレベルと誤認しているため
Linuxの開発コミュニティなんて荒れてなかったら「Linus病気?」と疑われるレベルだしなw
>>581 海外のstack overflowか海外のブログしか読まないよ
そろそろ、皆、2chなんてゴミの掃溜めなんか読まないでreddit読み出す
VBやdelphiで良い時代ならともかく,英語に弱いプログラマって致命的な欠陥だよね
>>584 向こうの2xhレベルの掲示板はどうかは知らないが、
Stack Overflowだと、情報の信憑性を担保する仕組みがちゃんと作られている。
その仕組みとしては、アカウントシステムを採用や、一定程度レスして評価を得た人間じゃないと、他人のレスを評価する事が出来ない、などが挙げれる。
たまに感情的なやり取りがされる事はあるが、荒れづらい。
>>589 英語が堪能なプログラマーは、きっとそうだろうし、それでいいんだろう。でも皆が皆そうなわけじゃない。
日本語圏でもどんどんプログラミングに関する情報が共有されれば、
プログラミングによって社会的価値が作られる可能性が高くなり、それは日本の経済にとっても良い影響をもたらすはず。
ああ、日本語変になっちまった。
とにかくES5でかいても問題ない世の中になってますか?
っs
tes
596 :
デフォルトの名無しさん :2014/05/26(月) 00:01:52.65 ID:Nv6joazh
>>593 モダンブラウザ以降を対象とするならええんでないのかねぇ
Webなら大量に存在するAndroid2世代が死ぬまでは気を付けたほうがいいと思う
うへえ、まだ16%もシェアあるのな モバイルもIE6,8みたいなことになってるのか
ローディング中です・・・ とか変な日本語平気で使うひとらだから
別に変じゃないじゃん
中とingが被ってるから「ロードしています」にすべき、ってことかな カタカナ使わず単に「読み込み中です」でいいだろとも思うけど
>>598 Android2.3は毎月1%以上減ってるから今年中には無視出来そう
ただGoogleの統計は全世界だから日本だけで見ると2.3はもっと少ないはず
日本語で言えば停止中がかなり違和感ある
せめて ロード中です… だよな
call/apply以外にプライベートメソッドって無理かな
Android2.3が無視できるようになる日は、4以上搭載機でハードウェアqwertyの端末が日本で発売されるまで来ない 現状ハードウェアqwertyの最新機はIS11T(2.3,2011夏モデル)
Twitter の javascript が重すぎる
初心者だけどソースコード作成の質問していいのかな 10行以内のコード
どうぞ
次世代を担うプロフェッショナルを目指す学生に贈るインターンシップ
宿題は余所でやれ
googleのXSS gameってのやってるんだけど、lv4がわからん シングルクォーテーションがエンティティになるからどうなんだ?
lv3わからんかったけどlv4余裕だったぞ ');で閉じてあとはお好きに
初歩的な質問で大変恐縮ですがよろしくお願いします setTimeout(function(), time)を使った繰り返し処理について質問なんですが これを使って[0],[1],[2]と1秒おきに出力するにはどうしたらよいでしょうか? var hairetu = new Array("おはよう", "こんにちは", "こんばんは"); function aaa(){ for(i=0; i<hairetu.length; i++){ console.log(hairetu[i]); } } aaa();
setTimeout((function(){var i=0;return function(){if (i<greets.length){console.log(greets[i]);i++;}};})(), 1000); スマホからの暇潰しなんで推敲はしてない
コンソールの結果です var greets = new Array("おはよう","こんにちは","こんばんは"); setTimeout((function(){var i=0;return function(){if (i<greets.length){console.log(greets[i]);i++;}};})(), 1000); 13 おはよう
620 :
デフォルトの名無しさん :2014/06/09(月) 08:53:30.16 ID:9rhLvykP
>>612 ログインしないと見れないサイトを貼って質問とは
おぬしなかなかやるのぅ
(function(i){console.log(greets[i%3])setTimeout(function(){arguments.callee(++i);},1000)})(0); 同じくスマホからなんで参考程度に
思ってたより簡単にできたわ みんなありがとう
>>617 ,621
ありがとうございました
617 1秒後に1回だけgreets[0]を出力
621 SyntaxError: Unexpected identifier
自分は何もせず正解を待ってるだけか ここまで出たやつをちょっと修正すれば動くだろ
学校の問題なのでやる気もないので正解を貼ってください
どこか他に行って下さい
629 :
デフォルトの名無しさん :2014/06/10(火) 19:11:07.08 ID:bQ+e+LkB
スマホでの話です。 動的に追加されたaタグに対して、タップするにはどうすればいいですか?
タップすればいいです
誘導元見てきたけどラズπってHTML経由でI/Oを操作出来る環境があるのか ちょうど出先から自宅のPCを物理的に破壊出来るアプリが欲しかったんだ 早速注文した
死んだときにPC破壊したいから あの世からもアクセス出来ると良いね
【JavaScript】スクリプト バトルロワイヤル44【pl,rb,php,py】から、誘導されて来ました。お邪魔します。
>>631 まだ、こちらで発言する前に、向こうのスレを見ていただき、回答までありがとうございます。
mousedownだけ使って、ボタンを押された時のみの記述で良いかと思ってましたが、
mouseupと併用し、押したとき、離したときで記述が必要なのですね。
試してみます。
>>632 ラズパイはBroadcom BCM2835 SoCの一部の端子がGPIOというかたちで自由に使えます。
しかし、CPUにあたるSoCの端子なので、一つ間違うとCPUを破壊する諸刃の剣です。
どんな時に、自宅PCを出先から破壊したいのか興味があります。(笑)
>>633 私は、元々PICなどハードに近いところで遊んでいたのですが、ラズパイでJavaScriptをはじめ、
C以外の言語やスクリプトをさわる機会を得たので、JavaScriptは素人ですが、
ハード系の知識から言えば、自分の生存情報(純粋に脈拍や呼吸をBluetooth経由でスマフォを介してラズパイへ)発信、
一定時間以上途切れるとラズパイのGPIOを使って、SoCの破壊や、その他周辺装置次第では何でも出来るので
時系列的にはあの世に行った後で破壊も可能ではないかと・・・
とってもいい人っぽいので説明すると 不慮の死の時にはPCを破壊したい(死んだ後に他人に見られてくないような恥ずかしいものが詰まってるから) っていう定番ネタがあるんですよ
>>635 そういう事ですか。ネタですか。
普段使ってる電電板などでは、こうしたい!、あーしたい!という話は実現方向への議論が多いので
プログラム板でもそうなのかと・・・。
早とちりしました。
いやあ、実現方法までちゃんと考えてくれたのは面白い 動画とかのネタになりそうです
自作PC板の方のスレは見てたが電器電子板にもスレあるのか むしろそっちを見たほうが良さそうだな
>>631 便乗質問すみません。
アンドロイドのスマートフォンで
on('mousedown', function()
.on('mouseup', function()
を使った処理を行なうと
画面にタッチした時は何も起こらずに
タッチした指を離した時に、'mousedown'と'mouseup'の処理が立て続けに実行されます。
タッチディスプレーの場合はタッチ=マウス押下では無いのでしょうか?
それとも、上記命令はタッチディスプレーでは使えない命令なのでしょうか?
よろしくお願いします。
jqueryを使っているのですが 要素自体に変数を持たせたい場合は attrで変数を保持するために属性を追加しても良いのでしょうか?
jQueryとかもはやJavaScriptでは無いからな
tag1 = {}; tag1.name =function(){ return "tom" }; tag1.printString = function() { return "<" + this.name() + "/>"; } tag2 = Object.create( tag1 ); tag2.name = function(){return "jhon"}; println( tag1.printString() ); println( tag2.printString() ); あーあ。おもしれー。
645 :
マッチ棒 :2014/06/24(火) 13:26:35.75 ID:a3pawGsC
こんにちは質問です。 2つのプルダウンリストがあります内容は固定で、数も同じです。 一個目を選択すると、もう片方も連動して同じ番号にselectedになりたいのである。 具体的には一個目のプルダウンは 1月1日 2月1日 3月1日 ・ ・ という内容で 2個目のプルダウンは 1月31日 2月28日 3月31日 ・ ・ となっています つまり一個目のプルダウンを2月1日にしたなら、2個目のプルダウンは2月28日に切り替わるわけである よろしくおねがいします
>>645 うん。それじゃ質問してくれ。
なお、作るのはお前の仕事だから
俺も誰も作らないぞ。
647 :
マッチ棒 :2014/06/24(火) 17:00:04.50 ID:a3pawGsC
まあそう言わんと
function menu1_onchange() { document.form1.menu2.selectedIndex = document.form1.menu1.selectedIndex; }
それじゃダメだろ
わけもわからずダメ出ししたいだけか
はぁ?w
お、ただの書き捨てかと思ったら噛み付いてきたか
てことは
>>648 のどこがどう間違っているのかちゃんと説明できるわけだよな
やってくれよ それじゃダメって言ったんだから責任もってお願いしますよ
653 :
マッチ棒 :2014/06/24(火) 23:46:03.14 ID:OZsKdEBe
こんばんは
>>648 のコードは具体的にどうやって実行すればいいのでしょうか
もう少し詳しくおねがします
655 :
マッチ棒 :2014/06/25(水) 00:52:48.52 ID:aIoXXuie
>>654 すばらしい!うまくいきました神
大義であった
激しくワロタ
いくらなんでもあんまりだな なぜヤホー知恵遅れに誘導しなかった
658 :
マッチ棒 :2014/06/25(水) 08:22:35.26 ID:aIoXXuie
まあそう言わんと
最近はnameじゃなくてid割り当てるのが主流じゃないのか
おまいらに質問です。OPTGROUPの中身がSELECTEDかどうかって簡単に判定できますか? たとえば <select> <OPTGROUP LABEL="ナマポ" id="select_namapo"> <OPTION VALUE="河本">河本</OPTION> <OPTION VALUE="梶原">梶原</OPTION> </OPTGROUP> <OPTGROUP LABEL="差し押さえ" id="select_sasiosae"> <OPTION VALUE="タラコ">タラコ</OPTION> <OPTION VALUE="ビッグダディ">ビッグダディ</OPTION> </OPTGROUP> <OPTGROUP LABEL="乗っ取り" id="select_nottori"> <OPTION VALUE="ライブ○ア">ライブ○ア</OPTION> <OPTION VALUE="村上ファン○">村上ファン○</OPTION> <OPTION VALUE="ジム">ジム</OPTION> </OPTGROUP> </select> これで、たとえば「タラコ」が選択された状態でスクリプトが動いたとき、 document.getElementById("select_sasiosae") をゴニョゴニョして、 「差し押さえ」の中の人が選ばれてるかどうか判定する事は簡単に出来ますか? , - ,----、 (U( ) よろしくお願いします。 | |∨T∨ (__)_)
板違いですWebProg板でドウゾ。
そういうのはquerySelector使うのが楽で手っ取り早い 次からちゃんとテンプレ見て質問スレ行くんだぞって言いたいけど今大荒れしてっからな
localStorageにいくつか値を入れているのですが 更新日時毎にkeyを振っております localStorage.setItem("data1time","2014-06-26 01:23:45"); localStorage.setItem("data1obj","今日はいい天気ですね"); localStorage.setItem("data2time","2014-06-27 06:07:08"); localStorage.setItem("data2obj","今日は猛暑日です"); localStorage.setItem("data3time","2014-06-28 12:34:56"); localStorage.setItem("data3obj","今日は曇り"); 当たらに追加する場合は data1を削除してdata2をdata1へ、data3をdata2へ、data3を空にしてからdata3へデータ追加としております。 key名を直接変えることが出来ればズラすだけでいけると思うのですが、key名を変更するということはできないのでしょうか?
>>664 それよりJSON形式で一つの情報にまとめて setItem する方がスマート
>>663 querySelectorに対応してないブラウザはどうするの?
JSON以前にそういう場合は更新日時をkeyにしないか普通
>>666 jQuery
てかquerySelector未対応なブラウザってIE6と7…あっ
datas=[{time:'2014-06-28 12:34:56', obj:"data1"}, {time:'2014-06-29 23:45:67', obj:"data2"},]; こういうデータ構造のままJSONにして保存すればpush, spliceで済むよね
'2014-06-29 23:45:67' 間違い探し
小ネタを仕込んでおくとこういう小者が釣れます
小ネタはともかく、JSONて末尾カンマ使えるようになったん?
>>670 仕様上、配列のJSON文字列化は出来ない
オブジェクトなら可能
675 :
674 :2014/06/28(土) 19:13:39.54 ID:X5lL+R0b
datas={items: [{time:'2014-06-28 12:34:56', obj:"data1"}, {time:'2014-06-29 23:45:67', obj:"data2"},]}; これでいい
始めたばかりなんですが 画像を配列につっこむときにfor文をつかって var img = []; for(var i=1 ;i<5 ;i++) { img.push('<img src = "img/i.jpg"/>'); } こんなかんじでimg/i.jpgの部分をかえていって1.jpg〜どんどんいれていきたいんですが これだとi.jpgがはいってしまいます どうすればうまくいきますかね?
"img/" + i.toString() + ".jpg"
よく見てなかった 手鬼頭に汲んでくれ
img.push(ExtJS.format('<img src = "img/%s.jpg"/>', i));
文字のフォントサイズと画像のサイズをうまく合わせる方法ないですかね。
確かに最新の Firefox で javascript 使ったページは良く落ちるまじで
683 :
デフォルトの名無しさん :2014/06/30(月) 08:33:14.41 ID:d8/jP/vt
>>681 cssのfont-sizeは%で表記できる。そういう話じゃなくて?
>>683 画像ってimgのことね。
文章の間にimgを入れたら、画像がどんなサイズであっても
文字と同じ大きさになってほしい。
文字を拡大したり、フォントサイズを変えたりした時
imgの属性やcssは同じままで、文字に合わせて欲しい。
listview の limagelist みたいなもんか
>>686 古いブラウザサポートが目的なので
それはできない。
>>681 文字部分のインライン要素に
display:blockかましてやったらよくね?
じゃあ、ブロック要素として振る舞うから、あとはpaddingを%で表示してやればいい
SVGって古いブラウザでも見れるんだね
見れないのってIE8くらいだろ
2種類質問です。 1 オブジェクトを代入した変数を配列で持たせたい var hoge = document.getElementById('foo'); var fuga = document.getElementById('bar'); var box = new Array[hoge,fuga]; .box[0].innerHTML = "ああああ"; box[1].innerHTML = "いいいい"; 2idの値を変更したい var id = element.id; var tmp = id.toString(); if(tmp == "hoge"){ var id = id.replace("hoge","piyo"); } 両方とも実行しようとして失敗したのですが、これは仕様としてできないのでしょうか? それともやり方が間違ってるだけなのでしょうか、お願いします
やり方が間違ってるだけです
idを変更したいとか意味不明すぎるw
いろいろめちゃくちゃだな
var hoge = document.getElementById('foo_container'); var fuga = document.getElementById('bar_container'); var box = new Array[hoge,fuga]; box[0].innerHTML = "<span id='foo'>ああああ</span>"; box[1].innerHTML = "<span id='bar'>いいいい</span>"; for(var i = 0; i < box.length; ++i){ if(box[i] == hoge){ box[i].innerHTML = "<span id='piyo'>ああああ</span>"; } }
色々すみません。idを変更しなくてはならない理由は、こういうプログラムを組みたいからです どっちの桁から操作しても、表示ミス(未来の和暦や00年などはNG)を防ぐようにします ですので、どののプルダウンを操作したかによってidは取得できるのですが、その後作ったoptionエレメントを keta1とketa10の両方に飛ばしたいので、idの変更がどうしても必要なわけです ちなみに、操作する部分は以下のようなhtmlが幾つもあるので、関数は共通化させる必要があります <form> <!-- 現在の和暦を選択する --> <select id="uriage_keta10" onchange="control(this)"> </select> <select id="uriage_keta1" onchange="control(this)"> </select> </form>
new Arrayは二度と使わないように []だけを使え idを変更する必要はない というかその説明を読んでなお、idを変更しなければならない理由が分からない
> var id = element.id; > var tmp = id.toString(); こんな書き方教えたのは誰だあっ!
var hoge = document.getElementById('foo'); var fuga = document.getElementById('bar'); var box = new Array[hoge,fuga]; box[0].innerHTML = "ああああ"; box[1].innerHTML = "いいいい"; box[0].id = "piyo"; じゃだめなんか?
Arrayの後がカギカッコでいいわけないだろバカw
眼が悪くなって () [] {} の区別が付きにくくなった っていうか細かいことは気にすんな (AAry
配列で取りたいならgetElementsByNameで取れるだろ。 elements = document.getElementsByName( "example" ); for( i in elements ) { elements[i].index = 0; } で、いつまで板違いな話を続けるんだ?
うーむ…色々勉強不足だったようですが、
>>697 の言う通り、両方のidを引っ張って、互いに値を
飛ばしてやるだけでいいですね
元々デザイン方面で仕事してて、jsは本当に苦手なんで今特訓中なんでご容赦願います
もっと精進します、スレ汚しすみません
>>697 new Arrayが駄目な理由があるんですね、きちんと調べておきます
>>698 キャスト変換できるかと思ってムリヤリ実験しただけです
>>702 配列に対してfor-inを使わないでください。
new Arrayが駄目なのは new Array(10,20);だと[10,20];となるのに対して new Array(10);だと要素数10の空配列が作成されるから 分かっててやる分には好きにしたらいいが あなたのレベルだと絶対にミスるから(既に間違ってたのを除いても)
>>703 hogeとかfoo barは専ブラの共有NGに入ってるから、
質問にhogeとかその辺入れると回答減るぞ。
共有NGってなんだw
>>703 element.id をキャストできてない(変わってない)ようだけど
>>696 仕様がイマイチ理解できてなかったが、
こういうことか。
[平成|▼][2|▼][0|▼]
※[ |▼]はpull downを表す。
1. 年数は桁毎にpull down
( 年号は俺が脳内補完 )
2. 年数を変更したあと、無効な
年数になっていれば、
変更前の年数に戻す。
( 脳内補完 )
もし
>>709 の通りだとするとこんな感じか。
その1
validator = {};
validator.yearsByName = function( name ){ return document.getElementsByName( name );};
validator.vaildateYears = [];
validator.commitByName = function( name )
{
ver years = this.yearsByName( name );
this.varidateYears[0] = years[0].selectedIndex;
this.varidateYears[1] = years[1].selectedIndex;
}
validator.resetIfInvalidateByName = function( name )
{
ver years = this.yearsByName( name )
if( /* 間違いがないか適宜判定 */ )
{
this.commitByName( name );
return;
}
/* 間違っていれば元に戻す。 */
years[0].selectedIndex = this.varidateYears[0] ;
years[1].selectedIndex = this.varidateYears[1] ;
}
/* 元に戻すために初期値を保存する。 */
validatior.commitByName( "year" );
その2 <select name = "year" onChange = "validator.resetIfInvalidateByName( 'year' )"> <option>0</option> <option>1</option> <option>2</option> </select> <select name = "year" onChange = "validator.resetIfInvalidateByName( 'year' )"> <option>0</option> <option>1</option> <!-- 以下略 --> </select>
712 :
310 :2014/07/10(木) 17:31:38.43 ID:iNOpl+2E
こんにちは。
>>310 で質問させて頂いた者です。
その後、
>>312 さんのコードを参考に作ってみました。
その関数自体は正常に動作するのですが、
当方YouTube apiのaddEventListnerの第二引数に同動的関数名を入力し、動作させようとしていて、
その第二引数に入力する関数名は、以下の記事に書かれているように、クローバル名前空間に存在しないといけないようなのです。
http://wiz-code.digick.jp/blog/?p=1391 であるので、window[dynamicFunc]を用いて動的関数を複数定義し、
かつ、各関数に内包される変数iに、同変数の値を定義したときの値を保持しておきたい方法を模索しているのですが、
何か良い方法はありませんでしょうか?
恐らく
>>313 さんが教えてくれているこのクロージャという方法が一番近いように思えていて、
色々とやった結果、
>>312 さんのコードと似たような動作をしはじめてきているのですが、
なかなかこのやり方を自分のコードに落とし込めません。
どなたか詳しい方がいれば、ご教授下さい。宜しくお願い致します。
>>712 numberOfFunc=10
for(i=1;i=numberOfFunc;i++){
var dynamicFunc = "test" + i;
window[dynamicFunc] = function (){
var id = i;
}
}
例えばこうするとidと関数名のインデックス部分は一致する。
本質的には「クロージャを理解していないから勉強してこい」で終わりだけど 無名関数の即時実行やジェネレータといった定石を知らないように見えるから Effective JavascriptかJavascript パターンを読むといいんじゃないかと思う 後者だけで充分
>>313 のリンクの「よくある失敗」からの部分が
まさにそのまま答えじゃね?
f=function(j){var id=j;return function(x){return id;};}; g=f(1); h=f(2); //g()-->1 h()-->2 bindは使えないの? もっと簡単に出来るけど?
>>716 var id=j; が明らかに不要だと思うが
>>717 いらないけど、その方が判り易くて好きだから。
超絶素人です。 圧縮ファイル内部の探索がしたいのですが new ActiveXObject('Shell.Application').NameSpace()で zipやlzhファイルはオブジェクトを作れるのですがrarだとできません。 もしやと思いunrar.dllをsystem32に置いたりしてみたのですが無理でした どうすればいいのでしょうか
new ActiveXObject('unrar').exrtactall()
なんで javascript から DLL 呼べないんだろうな 他の多くの言語は出来るのに
node.jsからなら呼べるよ ブラウザからはセキュリティ上無理
node.jsってnew ActiveXObject()出来なくね?
>>722 セキュリティのこと考えてないのか?
仮に他の言語がブラウザで動くようになったとして
そしたら多くの機能が制限されるよ。
(通常ディレクトリの)ファイルアクセス機能とかね。
そういう奴等がexeを何のためらいもなく実行してハッキングされたとか騒ぐんだろうな
エロ動画サイトで「次へすすむ」ボタンを押しても大丈夫?
押す必要が無い 押さなくて済むところで済ませばいい
あれ押すとexe開くのと同じくらい危険
標準で入出力が欲しかったと思う今日この頃 ブラウザの実装をサブセットにするとかしてさ
今そうなりつつあるでしょ? nodeという実行環境は ブラウザという実行環境と 同じようなものと考えられる。
最近 firefox とか chrome で (ストレージじゃなくて) ローカルファイル作れるようになってるけど まだインターフェースが統一されてないんだよね
>>733 なんか勘違いしてそうだから言っておくけど、
セキュリティのために、firefoxやchromeでも
普通のプログラム言語のような広範囲の
ファイルアクセス機能はもってないよ。
勝手にファイル読み書きできたら
ユーザーディレクトリにある個人情報
抜き放題になるからね。
>>731 標準入出力ならWinのコマンドプロンプトで使えるだろ
って思ったら 「で」 が入ってたのね
ファイルI/Oの標準が欲しい人がたくさんいたら、 CommonJSは頓挫してなかった。
ユーザーがDrag&Dropか<input>で指定したファイルは読める 保存はIndexedDBかlocalStorageで出来る または サーバーのデータはアクセス仕放題だから、クラウド上にユーザースペースを作成して ローカルのように見せる どうしてもWebアプリでローカルを好きにいじりたい場合は、ローカルに Webサーバーをインストールする(してもらう) ま、色々やりようはある
>>716 は無駄があるので修正
var f=function(id){return function(){return id;};};