12/01/17 17:09:05.20
■前スレ
+ JavaScript の質問用スレッド vol.95 +
スレリンク(hp板)
■過去スレ全集
URLリンク(www2.atpages.jp)
URLリンク(usamimi.info) (閲覧のみ)
URLリンク(wing2.jp) (閲覧のみ)
■関連スレ
ECMAScript デス 4
スレリンク(tech板)
WSH(・∀・)スレッド! Part 4
スレリンク(tech板)
Webサイト制作初心者用質問スレ part227
スレリンク(hp板)
CSS初心者スレッド=10th=
スレリンク(hp板)
3:Name_Not_Found
12/01/17 17:09:56.28
■主要FAQ (全部は URLリンク(fiddle.jshell.net) )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。
4:Name_Not_Found
12/01/17 17:11:10.97
■各種仕様 ( URLリンク(fiddle.jshell.net) も参照 )
Standard ECMA-262
URLリンク(www.ecma-international.org)
ECMAScript 3
URLリンク(www2u.biglobe.ne.jp) (和訳)
ECMAScript 5.1
URLリンク(es5.github.com)
ECMAScript 5 compatibility table
URLリンク(kangax.github.com)
HTML Standard (HTML5)
URLリンク(www.whatwg.org)
W3C Document Object Model Technical Reports
URLリンク(www.w3.org)
JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
URLリンク(developer.mozilla.org)
URLリンク(developer.mozilla.org)
JavaScript Garden (ja)
URLリンク(bonsaiden.github.com)
JSON (JavaScript Object Notation)
URLリンク(www.json.org)
Gecko DOM Reference
URLリンク(developer.mozilla.org) (和訳)
URLリンク(devedge-temp.mozilla.org)
MSDN Library JScript
URLリンク(msdn.microsoft.com)
5:Name_Not_Found
12/01/17 17:15:58.55
配列が二つあるんですが、その片方にしか入っていない値を求めるにはどうすればいいですか?
たとえば、A=1,2,3 B=2,3,4 だとすると、結果は1,4になります。
6:Name_Not_Found
12/01/17 17:17:45.17
■前々スレ
+ JavaScript の質問用スレッド vol.94 +
スレリンク(hp板)
7:Name_Not_Found
12/01/17 17:19:38.65
>>5
var a = [1,2,3];
var b = [2,3,4];
var c = [];
var f = 0;
for (var i=0; i<a.length; i++) {
for (var k=0; k<b.length; k++) {
if (a[i] == b[k]) {
c[f++] = a[i];
break;
}
}
}
8:Name_Not_Found
12/01/17 17:21:54.18
var A1 = new Object(), B1 = new Object(), C = [];
for(var i = 0; i < A.length; ++i) A1[A[i]] = true;
for(var i = 0; i < B.length; ++i) B1[B[i]] = true;
for(var i = 0; i < A.length; ++i) if(!B1[A[i]]) C.push(A[i]);
for(var i = 0; i < B.length; ++i) if(!A1[B[i]]) C.push(B[i]);
うーん長いね。でもこれくらいしか思いつかない。
数値に限られるのならsort()して端から見るとかかな。
9:Name_Not_Found
12/01/17 17:27:22.51
>>8
そのコードでも数値とか基本型に限定されると思う
10:Name_Not_Found
12/01/17 17:27:30.87
>>7 全然違うんじゃないの? それだとAとBで共通のをCに入れてるよね?
11:Name_Not_Found
12/01/17 17:28:40.59
var a = [1,2,3];
var b = [2,3,4];
var c = [];
var f = 0;
for (var i=0; i<a.length; i++) {
for (var k=0; k<b.length; k++) {
if (a[i] != b[k]) {
c[f++] = a[i];
break;
}
}
}
12:Name_Not_Found
12/01/17 17:29:54.41
配列を連結してから↓
URLリンク(d.hatena.ne.jp)
13:Name_Not_Found
12/01/17 17:30:26.75
>>9 そうでした。つかその前提を明確にしてくれないと書けないよね。
14:Name_Not_Found
12/01/17 17:31:49.13
>>12
array_uniqueとは違うでしょ
15:Name_Not_Found
12/01/17 17:38:05.55
>>11でFA
16:Name_Not_Found
12/01/17 17:39:13.22
>>11 あのさあ、自分とこで実行して確認してから回答しようよ。あんまりだ。
17:Name_Not_Found
12/01/17 17:44:53.97
もし配列AもBも昇順に整列されている数値だということなら以下で。
<!DOCTYPE html>
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var a = [1,2,3], b = [2,3,4], c = [], ap = 0, bp = 0;
while(ap < a.length || bp < b.length) {
if(ap >= a.length) { c.push(b[bp++]); }
else if(bp >= b.length) { c.push(a[ap++]); }
else if(a[ap] == b[bp]) { ++ap; ++bp; }
else if(a[ap] < b[bp]) { c.push(a[ap++]); }
else { c.push(b[bp++]); }
}
document.writeln(c.join(" "));
</script>
</body></html>
18:5
12/01/17 17:47:30.10
>>17
オブジェクトにも対応できるようにしてほしいです。たとえば、[{}, Array]と[{}, Array]では[{}, {}]になります。
19:5
12/01/17 17:50:19.69
追記です。↑の結果の{}はそれぞれ入力の配列内のオブジェクトを指しています。
20:Name_Not_Found
12/01/17 17:51:09.48
>>18
そりゃもう、しらみつぶしにやるしかないでしょ。そろそろ自分で書いたら?
21:Name_Not_Found
12/01/17 17:54:20.67
宿題厨うぜえな
22:Name_Not_Found
12/01/17 17:58:14.60
Objectの比較って面倒だぞ。{} == {} で判断できるわけではないから
var a = { x: 1, y: 1... }, b = { x: 1, y: 2... };
a.x == b.x
a.y == b.y ...
と、調べていくしかない
23:5
12/01/17 18:00:10.60
>>22
この手の実装では === で比較するのが慣例ですね。内部の状態を見るんじゃなくて、
ただ参照が一致するかどうか、これがオブジェクト比較の原則です。
24:Name_Not_Found
12/01/17 18:02:31.80
配列の中身をtoJSONして比較したらいいんじゃないかね
25:Name_Not_Found
12/01/17 18:02:51.49
>>22
そういう話じゃないだろアホ
26:Name_Not_Found
12/01/17 18:05:40.94
>>23
もうできるよね
27:Name_Not_Found
12/01/17 18:05:47.50
あ
28:5
12/01/17 18:08:53.16
>>24
jsonに流し込むと、全てのオブジェクトが基本型に変換されます。
29:Name_Not_Found
12/01/17 18:18:55.90
>>28
だから何?
30:Name_Not_Found
12/01/17 18:20:49.16
これでどう?
var AB=A.concat(B);
F:for(var ab=AB.length-1;ab>=0;ab--){
var ABab=AB[ab];
for(var a=A.length-1;a>=0;a--){
if(ABab===A[a]){AB.splice(ab,1);continue F;}}
for(var b=B.length-1;b>=0;b--){
if(ABab===B[b]){AB.splice(ab,1);continue F;}}
}
31:Name_Not_Found
12/01/17 18:24:38.89
確認してないけどこんな感じで
function 二配列非重複要素取出君(A,B){
var AB=A.concat(B);
F:for(var ab=AB.length-1;ab>=0;ab--){
var ABab=AB[ab];
for(var a=A.length-1;a>=0;a--){
if(ABab===A[a]){AB.splice(ab,1);continue F;}}
for(var b=B.length-1;b>=0;b--){
if(ABab===B[b]){AB.splice(ab,1);continue F;}}
}
return AB;
}
32:5
12/01/17 18:25:51.81
>>30
>>18のケースで動作しないですね。今回は自己解決しました。
速度面を考慮するともう少し複雑になるでしょうね。ありがとうございました。
var diff = function(arrayA, arrayB) {
var result = [];
var array = arrayA.concat(arrayB);
for (var i = 0; i < array.length; i++) {
var value = array[i];
var index = array.indexOf(value);
if (array.indexOf(value, index+1) === -1) {
result.push(value);
}
}
return result;
};
33:Name_Not_Found
12/01/17 18:26:24.84
すいませんChromで利用できるコンソールのconsole.logとかそういうのありますよね
これ以外にもどういうのが使えるのか知りたいのですが公式ドキュメントのどこに載ってますか?
34:Name_Not_Found
12/01/17 18:29:35.63
>>32
なにこれ
超レアケースでしか機能しないんだけど
35:Name_Not_Found
12/01/17 18:31:35.91
>>32
indexOfって。。。まあ解決したんならいいけど
36:Name_Not_Found
12/01/17 18:34:03.24
あるブラウザでArray.prototype.someが対応しているか調べたいのですが
if (Array.prototype.some) {
} else {
}
これよりもっとベストな書き方を教えてください
37:Name_Not_Found
12/01/17 18:35:53.19
'some' in []
38:Name_Not_Found
12/01/17 18:38:18.02
>>33
ここにあるはず
URLリンク(code.google.com)
39:5
12/01/17 18:39:29.50
>>34
明日には実働アプリに投入するので、反例コードもらえると助かります。
40:Name_Not_Found
12/01/17 18:44:23.69
>>32
これでどうかな
function 重複抜出(){
var RA=Array.apply(null,A);
var RB=Array.apply(null,B);
Fa:for(var r=RA.length-1;r>=0;r--){
var RAr=RA[r];
for(var b=B.length-1;b>=0;b--){
if(RAr===B[b]){RA.splice(r,1);continue Fa;}}
}
Fb:for(var r=RB.length-1;r>=0;r--){
var RBr=RB[r];
for(var a=A.length-1;a>=0;a--){
if(RBr===A[a]){RB.splice(r,1);continue Fb;}}
}
;
return RA.concat(RB);
}
41:5
12/01/17 18:46:41.92
>>40
OKですね。こちらで用意してあるテストコードはクリアしましたよ。
42:Name_Not_Found
12/01/17 18:54:11.94
>>32
動かないコード貼って何がしたいの?
TypeError : indexOf is not a function.
Array.prototype.indexOf //undefined
43:Name_Not_Found
12/01/17 18:57:00.75
>>42
まてまてwそこはいくらでも置き換えが聞くと思うぞ。
てかブラウザ何使ってる?
URLリンク(kangax.github.com)
44:Name_Not_Found
12/01/17 19:04:19.97
addEventListenerってchromeのhtml5のプラグイン入れてればIE6以上でも使えますよね?
45:Name_Not_Found
12/01/17 19:09:41.56
>>44
知らんかったからググったけど「Chrome Frame」ってやつか
GoogleさんがIE6の面倒見てるなんて、ちょっと面白いな
46:Name_Not_Found
12/01/17 19:11:43.42
>>43
なら置き換えたコードだせよ
動かんからおかしさを指摘しようがないだろ
Property access on stringsしかYESにならんブラウザも沢山あるんだぞ
47:Name_Not_Found
12/01/17 19:12:09.22
>>41
一方の配列に重複する要素があったらおかしくないけ?
48:Name_Not_Found
12/01/17 19:14:17.69
>47
お前>5読んだ上でそれ言ってるんだよね?w
49:Name_Not_Found
12/01/17 19:17:26.78
>>48
は?バカなの?
50:5
12/01/17 19:18:13.84 MgACjSba
>>47
どちらのコードでしょうか。共にクリアしているテストコードの一部を抜粋してみます。
diff([2,2,1,3], [2,1,1,3]); // [] 以下同じく
diff([1,1], [2,2]);
diff([1,1], [1,1]);
51:Name_Not_Found
12/01/17 19:19:02.05
どこにも片方に重複要素はないとは書いてないな
まあ、もう>>5には関わらない方向でよろしく
52:40
12/01/17 19:22:05.68
え、ちゃんと動かないケースある?
53:Name_Not_Found
12/01/17 19:23:10.60
>>5 の表現の仕方だと、
A = [1, 2, 3, 1];
B = [2, 3, 4];
の場合、結果は
[1, 1, 4] (または [1, 4]) だろ。
>>32 のコードだと [4] になるんだが。
>>52 違う、>>32 の方。
54:5
12/01/17 19:25:25.65
>>53
おお!本当だね、どうもありがとうございます。支給修正したいと思います。
55:Name_Not_Found
12/01/17 19:28:56.61
URLリンク(urlencode.net)
ではutf8でurlエンコードでシングルコーテーション'が%27に
変換されますが、JSの関数encodeURIComponentでは
ダブルコーテーションはurlエンコードされますが、
シングルコーテーションが変換されません。
シングルコーテーションをutf8でurlエンコードするjsの
関数を教えてください。
56:5
12/01/17 19:29:45.93
修正バージョンをコミットしてきました。>>53さん助かりました。ではでは。
57:Name_Not_Found
12/01/17 19:30:33.33
修正バージョン書け
58:Name_Not_Found
12/01/17 19:31:56.78
>>55
urlエンコードの意味分かってる?
urlで認められてる文字がエンコードされるわけないじゃん
59:5
12/01/17 19:32:06.88
>>57
unique挟みましたよ。ベンチ取って大差なければこのままでいきますよ。
60:Name_Not_Found
12/01/17 19:37:29.40
なんだやっぱり釣りか
61:Name_Not_Found
12/01/17 19:48:05.41
>>55
escape()
62:Name_Not_Found
12/01/17 20:34:17.61
>>58
シングルコーテーションはURIに使えないよ
63:Name_Not_Found
12/01/17 20:51:51.32
RFC 3986 の reserved characters の箇所を読んでこい。
64:Name_Not_Found
12/01/17 20:57:19.48
>>62
なんですぐ嘘つくん?
- _ . ! ~ * ' ( ) は使えるから(w
どう?言い返せるかな(w
65:Name_Not_Found
12/01/17 20:58:58.52
>>64
>>63
66:Name_Not_Found
12/01/17 21:00:45.73
encodeURIComponent() の動作自体は、RFC 2396 の頃の仕様に従ってんのかな。
下記の mark に該当する 9文字が encodeURIComponent() でエスケープされない文字。
> 2.3. Unreserved Characters
>
> Data characters that are allowed in a URI but do not have a reserved
> purpose are called unreserved. These include upper and lower case
> letters, decimal digits, and a limited set of punctuation marks and
> symbols.
>
> unreserved = alphanum | mark
>
> mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
>
> Unreserved characters can be escaped without changing the semantics
> of the URI, but this should not be done unless the URI is being used
> in a context that does not allow the unescaped character to appear.
67:Name_Not_Found
12/01/17 21:16:58.87
なるほど
68:Name_Not_Found
12/01/17 21:21:56.48
var a = 1, b = 2;ってやったとき
bにもvarが適用されてますか?
69:Name_Not_Found
12/01/17 21:23:52.27
確かめたらすぐわかる事をいちいち聞くな
お前今日荒らし過ぎ
全部バレてるから(w
70:Name_Not_Found
12/01/17 21:28:51.03
>>61で答え出てるんだからもういいだろ。シンプルに行こうぜ。
71:Name_Not_Found
12/01/17 21:40:47.68
蒸し返すなよ
72:Name_Not_Found
12/01/17 21:42:14.69
>>68
for文内では適用されないけど
普通にvarで宣言の時は適用されるよ
73:Name_Not_Found
12/01/17 21:47:47.52
>>69
確かめ方がわからず、、、すみません
>>68
ありがとうございます
74:Name_Not_Found
12/01/17 21:48:24.90
え?
75:Name_Not_Found
12/01/17 21:50:33.82
>>72
for文内で適用されないって、どういうこと?
76:Name_Not_Found
12/01/17 22:13:08.31
for (var a = 1,b = 2;a < 10;a++){}
これだとbはグローバルになる
77:Name_Not_Found
12/01/17 22:16:38.35 klKO4fug
前スレの続きですみません。
<span>aa aa<span class="d">bbb</span>ccc</span>
これで、class="d"からaa aaのテキストを取得するには
どうしたらいいのでしょうか。たとえばjqueryで
$(".d").parent().text(); だとaa aacccになって
しまうのです。
で、用途は、たとえばgetSelection()で
bbを選んだときにaa aabbを取得したいのです。
78:Name_Not_Found
12/01/17 22:17:56.27
>>76
高速化でよくfor内でvar a = 0, b = ary.lengthをやってたんですが納得しました
79:Name_Not_Found
12/01/17 22:22:05.13
>>76
それをトップレベルに書いてるなら当然 a も b もグローバルだけど、
宣言自体は b にも適用されてるでしょ。
80:Name_Not_Found
12/01/17 22:22:41.84
納得すんのかよ
81:Name_Not_Found
12/01/17 22:29:12.11
>>77
前スレ>>1000で答えたからそっち見て
82:Name_Not_Found
12/01/17 22:32:28.13
JavaScriptによるBASE64変換
URLリンク(tociyuki.flop.jp)
JavaScriptによるBASE64変換のメリットを3行で教えてください
83:Name_Not_Found
12/01/17 22:35:57.60
>>76
どうしてそんな勘違いしたん?
84:Name_Not_Found
12/01/17 22:38:33.05
>>83
過去レスにもあったし実際その時試した時はグローバルなったぞ
85:Name_Not_Found
12/01/17 22:50:43.19
>>84
ブラウザとバージョンと再現するソースは?
86:Name_Not_Found
12/01/17 22:53:10.47
>>85
覚えてたらだしてるわ
2,30スレぐら前じゃないかな多分
87:Name_Not_Found
12/01/17 23:00:05.06
何となくそんな話を聞いた気がしないでもないけど、昔のIEにバグでもあったんかね
88:Name_Not_Found
12/01/17 23:20:49.51
ただの勘違いでしょ。
bだけグローバルになるなんてことはないよ
89:Name_Not_Found
12/01/17 23:53:15.19
今スレもテンプレとevalの議論で埋めましょう!
みなさん気合い入れていきますよっ!
90:Name_Not_Found
12/01/18 00:19:39.75
var a = b = 1;
とかと勘違いとか…でもfor関係ないし。
でも MDNのコンマ演算子のページでも for (var~ が例に挙げられてるんだよね。
コンマ演算子なのは var 無しのほうなのに。
URLリンク(developer.mozilla.org)
91:Name_Not_Found
12/01/18 00:21:01.43
>>90
いやいや。よくみてみ。
92:Name_Not_Found
12/01/18 00:21:03.67
>>89
黙れよザーボン
93:90
12/01/18 00:22:04.07
あ、ちがう、コンマ演算子なのは i++, j-- こっちのほうか。>MDNのページ
失敬。
94:Name_Not_Found
12/01/18 00:23:18.95
>>90
しむら~、
95:Name_Not_Found
12/01/18 00:27:45.07
>>89
Javascriptの本って最近発売したやつでも、evalを使ったプログラム
を載っけたりしてるし、このスレでもevalを使った質問が頻繁にある。
evalのまとめwikiとかできてもいいかもしれん。
evalを使ってる大抵の人がやってるドット記法は添字記法で書き換え可能
ってことを書いてあるwebサイトも少ないし。
96:Name_Not_Found
12/01/18 00:47:07.86
URLリンク(pastebin.com)
入力が半角or全角スペースだけの場合にエラー表示を出すプログラムを書いたんですけど
もっとスマートなやり方ありますかね?
javascript初心者なもので。
宜しくお願いします。
97:Name_Not_Found
12/01/18 00:49:19.81
var str = "入力値";
if(/^\s*$/.test(str)) {
// 空白のみ
}else {
// それ以外
}
98:Name_Not_Found
12/01/18 00:56:04.15
>>97
ありがとう御座います。
正規表現使えるんですね。
>>96のプログラムよく考えたらバグありますね、すみません
99:Name_Not_Found
12/01/18 01:00:59.73
alert("𠮷".length)
この文字は何文字ですか
100:Name_Not_Found
12/01/18 01:15:14.74
>>97
ホワイトスペースに全角空白って含まれるんだっけ…と調べてみたら
FireFox/Chrome/operaは含まれるんだね。
IE8では含まれてなかった。
101:Name_Not_Found
12/01/18 01:18:21.97
>>99
どうしてこんな質問がくるの?
自分で試せばいいじゃないか
102:Name_Not_Found
12/01/18 01:18:43.80
>>100
Unicode的には全角半角の区別自体が無い(実体を何バイトで表現するか?ってだけ)から
いわゆる全角スペースも空白のグループに入るのが正しい実装
103:Name_Not_Found
12/01/18 01:23:34.94
>>99
1文字、javascriptのlengthはUTF-16の16ビットの符号単位の個数を返す
104:Name_Not_Found
12/01/18 03:23:58.05
2だろバカ
105:Name_Not_Found
12/01/18 05:36:25.87
このスレに居る人って割りとプログラム書いてる人だと思うんですけど
それでもprototype.jsじゃなくてjQuery使ってる人多いんですよね?
prototype.jsのほうがこのスレの人的にはとっつきやすいんじゃないですか?
それでもあえてjQueryを選んでる理由を教えて下さい
106:Name_Not_Found
12/01/18 05:42:44.70
jQueryだとアニメーションとかあるから?
107:Name_Not_Found
12/01/18 06:16:21.34
jQuery使わないでanimationとか骨が折れるからな
108:Name_Not_Found
12/01/18 06:20:28.96
まー関数でfunction(要素、動作する場所、結果、時間){}
っていうのでも出来なくはないけど、とんでもなくメンドイ上
改良に改良を重ねてるjQueryの方が良い
アニメーションって面白いしね
109:Name_Not_Found
12/01/18 06:32:51.27
>>95
前スレであったがローカル変数の文字列による参照は
今はもうevalでしかできないっぽいぞ
110:Name_Not_Found
12/01/18 06:53:41.47
収納式ドロップダウンメニューとかJSで描くだけで何十行にもなるからなぁ。
111:Name_Not_Found
12/01/18 07:30:48.75
eval、evalってうぜーな
使いたかったら使えよ以上。
いつまでもピーチクパーチク言ってんなボケ
112:Name_Not_Found
12/01/18 07:40:50.51
>>104
2文字分の場所を使うだけで1文字は1文字だろ
113:Name_Not_Found
12/01/18 07:59:49.57
ローカル変数の文字列による参照って、、
ローカル変数ってことは自分が今編集してるファイル内の話なんだから、わざわざeval使わないで普通に書けよ…
eval使うなとは言わないけど、わざわざeval使ってたらなんで?って思うのは当たり前だろ
114:Name_Not_Found
12/01/18 08:12:02.37
>わざわざeval使ったら
ならeval使わなくてすむコード示せよ
115:Name_Not_Found
12/01/18 08:21:58.33
>>113
そんなこと言ったらオブジェクトの添字での参照も必要なくない?
配列は別だけど
116:Name_Not_Found
12/01/18 08:26:20.44
>>114
お前正解
eval使わないとできねーわ。eval使っていこうぜ。
117:Name_Not_Found
12/01/18 08:26:23.26
1つのものに複数の方法でアクセスするってバグが出やすいからよくないスタイルだと思う。
文字列をキーにさまざまな値にアクセスしたければハッシュ(JSではObject)使えばいい。
それをローカル変数と混ぜる必然性は無いと思うね。
118:Name_Not_Found
12/01/18 08:32:35.96
だからローカル変数をオブジェクト的に扱いたいって事じゃない?
昔はarguments使ってできてたんでしょ?
119:Name_Not_Found
12/01/18 08:33:51.50
116
やっと負けを認めたか(w
120:Name_Not_Found
12/01/18 08:39:23.97
ローカル変数とオブジェクトを混ぜたいというその考え方がよくないスタイルだと思う。
一般的にevalを使わないとできないような設計が悪い設計。
evalを使わないとできなかったり遅かったりすることは存在するが、今日では標準的な
ライブラリにラップされてるものを使えば済むこと。
121:Name_Not_Found
12/01/18 08:40:08.35
~をするにはどうしたらいいですかの質問に、~なんかする必要はないとかいう奴は義務教育受けてきたの?
122:Name_Not_Found
12/01/18 08:43:52.47
別にどーしてもローカル変数を文字列キーで取りたければeval()するんでしょね。
でもそういうコードの発想自体が糞設計だね。
123:Name_Not_Found
12/01/18 08:44:51.75
>>120
『evalを使うのは悪い』の理由がわからん
evalでしかできなかったり、evalの方が速かったりするのなら
使うことは良いことじゃないのか?
矛盾してるだろ
マジで宗教か何かにしか見えんのだが
124:Name_Not_Found
12/01/18 08:46:46.78
>>122
What reason?
125:Name_Not_Found
12/01/18 08:46:57.10
eval賛成派も宗教でしょ。
たとえば昔からevalのあるLispコミュニティではどうしてるかとか調べたことあるのかな。
必要なときは使うし必要でもないのに使うのは悪いスタイル。
126:Name_Not_Found
12/01/18 08:49:00.59
evalが悪いスタイルなのは前スレにも書いたけど、実行時に渡す文字列が何であるかに
よって起こることが全く違うので理解しづらいコードになるからだと思うけどね。
オレは理解してるからトラブルなんか起こさないという奴はよくいるけどね(笑)。
127:Name_Not_Found
12/01/18 08:53:08.27
>>125
このケースは必要に当て嵌まるだろ
それともパーサー書けばいいとかまたトンデモ論に走るの?
>>126
このケースでどんな問題が起こる可能性があるのか解説頼む
128:Name_Not_Found
12/01/18 08:54:38.74
evalはevil
evalは悪魔
悪魔は禁止
evalは禁止
eval悪魔eval悪魔eval悪魔悪魔eval悪魔
eval悪魔eval悪魔悪魔eval悪魔eval
悪魔eval悪魔悪魔eval悪魔eval悪魔
eval悪魔悪魔eval悪魔eval悪魔eval悪魔悪魔
eval悪魔eval悪魔eval悪魔悪魔eval悪魔
eval悪魔eval悪魔悪魔eval悪魔eval悪魔eval悪魔悪魔eval悪魔eval悪魔
eval悪魔悪魔
eval悪魔eval悪魔eval悪魔悪魔eval悪魔eval悪魔eval悪魔悪魔eval悪魔eval悪魔eval悪魔悪魔
129:113
12/01/18 08:54:44.94
evalを使ったほうが楽なケースはあるし、メリット・デメリットを考えて使うのは別にいいんだけど
そこにevalを積極的に使う理由はないでしょ。なんで>>116 みたいになるのかね。
130:Name_Not_Found
12/01/18 08:55:20.28
宗教というか、使わないっていうポリシーでしょ
131:Name_Not_Found
12/01/18 08:56:45.10
漏れも >>129 に賛成。
132:Name_Not_Found
12/01/18 08:57:14.69
>>129
それはどう見てもネタだろ
お前の目はふし穴か(w
133:Name_Not_Found
12/01/18 08:58:28.50
>128,130
ふーん、ぽりしーねぇw
なるほどw!
134:Name_Not_Found
12/01/18 09:00:02.82
お前ら懲りずにまた1でも0でもない0.5くらいの事を
1か0かに無理矢理決着付けるために争ってんのかよw
毎度毎度懲りない奴らだなwwwww
135:Name_Not_Found
12/01/18 09:00:32.46
荒らし消えろ
136:Name_Not_Found
12/01/18 09:03:08.07
>>134 とか >>135 みたいなのが荒れるきっかけになりやすいんだけどな。
「はい、分かりました」なんてなる訳ないんだから。
137:Name_Not_Found
12/01/18 09:06:16.58
数式の評価に十数行程度のパーサ書いて使うのがどうしてトンデモなの。
あのパーサが自分に読めないから悔しいとかそういうわけじゃないんだよね?
138:Name_Not_Found
12/01/18 09:07:55.81
1. eval絶対禁止派
2. eval使わないこともないけど積極的には使わないよ派
3. どっちでもいいよ
4. eval使ったほうが楽に書けるときは躊躇なく使う派
5. eval積極的に使う派
1と5は論外として、4が微妙なんだよな。
139:Name_Not_Found
12/01/18 09:10:50.32
>>137
JSでできたLinuxでCのパーサー動かせばevalいらないって言ってた奴のことでしょ
話の流れわからない奴は黙っててくれるかい?
140:Name_Not_Found
12/01/18 09:11:47.36
6.可能な限り排除すべき派
141:Name_Not_Found
12/01/18 09:13:00.05
>JSでできたLinux
これ実際はCPUとかのエミュレートとかだけだったはず。
Cとかそこらはバイナリだったはずだぞ。
142:Name_Not_Found
12/01/18 09:14:22.70
>>138
eval使った方が楽でパフォーマンスも良いときは使わない理由ないし
流石にそれに反対する人もいないんじゃない?
皆反対してるのはそうじゃない、もっと良い書き方ができるときや
不審なコードが実行される場合だけでしょう
143:Name_Not_Found
12/01/18 09:18:00.62
>>141
Cは普通にJSLinux上でソース書いてコンパイルしてハローワードは実行できたはず
どのくらいの機能が揃ってるのかはわからないけど
144:Name_Not_Found
12/01/18 09:23:13.11
┏┳┳┓ ハイ. ┏┳┳┓
┏┫┃┃┃ 雑談は ┃┃┃┣┓
┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃
┃ ┃┃┏━━┓┃┃ ┃
┃ 雑談 ┣┫ . ・∀・ ┣┫. STOP!┃
┗━━┛┗┳━┳┛┗━━┛
┏┻┓┃
┏━┛ ┣┻┓
┗━━┫ ┗━┓
. ┗━━┛
145:Name_Not_Found
12/01/18 09:23:45.96
good partsとパターンで悪って言われてるからそれを守ってる
難しいことはわからんw
146:Name_Not_Found
12/01/18 09:26:18.24
みんな誰もが初心者の頃にevalに大変お世話になっただろ
それなのにその恩をあだで返すのか?
147:Name_Not_Found
12/01/18 09:28:54.89
>>146
今まで使ったことがない。
148:Name_Not_Found
12/01/18 09:30:59.48
evalがなくて苦労してる言語も沢山ある中、
有り難いことにせっかくJSには強力なevalがあるんだから使わにゃ損だと思うけどなあ
俺の考え方間違ってるかなあ
149:Name_Not_Found
12/01/18 09:31:56.04
だから、もういいって。
eval使え使え。evalなかったら無理だ、無理。
150:Name_Not_Found
12/01/18 09:32:50.22
>>147
こういう嘘
小学生がはぶてた時よくつくよね(笑
151:Name_Not_Found
12/01/18 09:34:21.65
>149
どうして使わないと無理って言い切れるのか
152:Name_Not_Found
12/01/18 09:42:53.84
どうしてって、この水掛け論が終わらないからだろ
153:Name_Not_Found
12/01/18 09:44:02.96
>>143
コンパイラはバイナリ。JSで書かれてる訳ではない。
コマンド類はBusyBox使ってる。
JSLinuxがやってるのはPCのエミュレート。
154:Name_Not_Found
12/01/18 09:45:23.18
>>151
もうどーでもいいんだっつーの
使いたいヤツは使えばいい、使いたくなかった使わないでいいだろ
そんな結論の出ない無駄な話しして何が楽しいんだ
いくら言っても使いたいヤツは使いたいんだ放置しろハゲ
155:Name_Not_Found
12/01/18 09:48:43.16
>>153
ん?
だから何よ?
JS上で動いてる事には変わりなくね?
156:Name_Not_Found
12/01/18 09:51:04.18
>154
そんな当たり前の事を大声で言われても……
今はもちろんそれを踏まえた上で使った方がいいのか、
使うならどんなときに使うべきなのかを議論してるわけ
話から君一人だけ外れてるよ?
157:Name_Not_Found
12/01/18 09:57:46.36
>> 156
ここは質問スレだから
議論したいのなら本スレでやってちょうだい
158:Name_Not_Found
12/01/18 09:57:54.95
>>156
何言ってんの?大声って文字見て大声?
どんな時使えばいいかって?
組むヤツが使わないと組めない時に使うに決まってんだろ
もう黙ってろハゲ
159:152
12/01/18 10:00:24.53
この状況で議論が成立してると思ってるのか…
むしろ、外れてるのは>>156 のほうだと思うけど
160:Name_Not_Found
12/01/18 10:05:07.17
>>156のevalの被害者なんだよ…
161:Name_Not_Found
12/01/18 10:05:15.46
>何言ってんの?大声って文字見て大声?
>どんな時使えばいいかって?
>組むヤツが使わないと組めない時に使うに決まってんだろ
>もう黙ってろハゲ
かなり酷い
162:Name_Not_Found
12/01/18 10:07:33.34
>159,160
意味わからん
議論じゃないんならなんだって言うのさ
そりゃあときたま荒らしは出るけどさ
大体の人は真剣に議論してるじゃんどう見ても間違いなく
163:Name_Not_Found
12/01/18 10:08:34.23
今だって雑談とかじゃなくて議論してるわけでしょ?
164:Name_Not_Found
12/01/18 10:11:24.88
自覚のない荒らしも悪だなw
165:Name_Not_Found
12/01/18 10:12:17.96
>>162,163
こんな、何の生産性もない話し合いしても意味がないって言ってんの。
でも、そこまで議論がしたいと言うのなら、
スレリンク(tech板)
ここ行って来い。ここでは黙ってろ。
166:152
12/01/18 10:14:11.78
>>162
「議論じゃない」じゃなくて「議論が成立してない」って書いたんだけど。「水掛け論」とも。
真面目に書いてるなら、最低限の国語力が足りてないように思える…
167:Name_Not_Found
12/01/18 10:15:09.90
>>164
俺は肯定派否定派関わらずわざと凄く消極的な意見出して
議論を無理矢理潰そうとしてる人を叱ってるだけ
168:Name_Not_Found
12/01/18 10:17:33.84
次からは>>165って誘導すれば良いから楽だなw
169:152
12/01/18 10:18:02.27
あ、ここでの最低限の国語力ってのは「テキストベースでの議論をするために必要な国語力」のことね。
170:Name_Not_Found
12/01/18 10:20:47.98
>>169
そういう人をおちょくるようなことするから議論が成立しなくなるんじゃないの?
君みたいな人を荒らしって言うんだと思うけど
話が脱線しすぎ
もっと積極的で有意義な意見を出していこう
そうしたら議論も早く終わる
いつも中途半端なとこでなじりあって終わらせるから再燃するんでしょう
171:Name_Not_Found
12/01/18 10:22:07.80
>>170
>>165行け
172:Name_Not_Found
12/01/18 10:22:10.64
>>167
そうか、お前のいう「議論」の腰を折ってしまって悪かったな
でも、ここは質問スレだから。質問されて答える所だから。
そりゃ多少は出されたコードについて検証はするだろうけど議論するスレじゃないからな。
>>165のスレで議論してくれ。
俺も、そっちのスレなら議論に混ざるから。
173:Name_Not_Found
12/01/18 10:28:28.04
>>172
いやいや、勘違いしてるみたいだけど
俺は仕方ないから議論の議長役をやってるだけで
議論の中身はまるっきりどうでもいいんですよ
そっちでやろうって前々からずっと言ってるけど
何度も何度も再燃するからいっそ決着つけようって言ってるわけでしょ
どうして分かってくれないの?!
そっちでやろうじゃ済まないからここまで必死になって訴えてるわけでしょう
ここで白黒決着付けた方が肯定派にとっても否定派にとっても
議論なんでどうでもいい人達にとっても最善の結末になるでしょう
174:Name_Not_Found
12/01/18 10:31:52.86
>>158
動いてる事と作ってる事は別もんだろうが。
JSでLinuxが出来てる訳ではない。
175:Name_Not_Found
12/01/18 10:32:24.31
>>158じゃなく>>155だった
176:Name_Not_Found
12/01/18 10:36:06.25
>175
『JSで動く』 ⊃ 『JSで作ってる(かつ、もちろんJSで動く)』
なんですけど
高校行きました?
177:Name_Not_Found
12/01/18 10:39:03.00
もういいや、俺が結論出す
evalは不必要、絶対に使う可からず
evalがどうしても必要そうな実装は、清く諦める可し
意義はないね?
178:Name_Not_Found
12/01/18 10:39:51.74
>>176
○PCをJSで作ってる
×LinuxをJSで作ってる
179:Name_Not_Found
12/01/18 10:41:17.43
>174-176
お前ら自分達がどれだけ低レベルな会話してるか分かってるのかな?(w
180:Name_Not_Found
12/01/18 10:47:45.75
>>179
お前の低能な煽りも然程変わらん。
181:Name_Not_Found
12/01/18 10:48:13.27
addEventListener('keydown', function(e){
~処理~
}, false);
こういうふうにaddEventListenerの中で無名関数を使うとメモリが開放されないようなことをどこかのMDCのaddEventListerのページの一番下の文章に書いてありました
removeEventListenerを呼ばない場合の無名関数への参照を削除する方法が分かりません
どのように書くのでしょうか?
182:Name_Not_Found
12/01/18 10:51:36.33
>178
そりゃお前さんが思い込み過ぎてるだけや
『JSでできたLinux』
も
『JSでできたPC上でバイナリ走らせてできたLinux』
も突っ込むほど変わらなくね?
そんなこと言ったら正しくは
『JSでエミュてる~の組み合わせで実現された仮想CPU~~~Linuxもどき』
になるぞ
183:Name_Not_Found
12/01/18 10:52:06.61
そんなeval()で大丈夫か?
184:Name_Not_Found
12/01/18 10:54:39.67
>>181
そんなん一年中動かし続けるようなアプリでないかぎり気にする必要ない
一応history.go(0)で解放
環境によってはeajax.gc()も使える
185:Name_Not_Found
12/01/18 10:56:52.48
>>181
よくわからんけどイベントリスナが働いている限りは開放されないってことじゃないの?
だったら別にほっとけばいいんじゃね
186:Name_Not_Found
12/01/18 10:57:26.12
>>184
スマフォで動かす場合はメモリは気になるのですよ
187:Name_Not_Found
12/01/18 10:58:12.53
ちなみにURLリンク(developer.mozilla.org)の一番最後に書いてありました
188:Name_Not_Found
12/01/18 10:59:05.52
>>181
それが気になるなら関数を外側で定義すれば良い
var keydownHandler = function(evt){
};
(function(){
var a,b,c,d;
document.addEventListener('keydown', keydownHandler, false);
})();
189:Name_Not_Found
12/01/18 11:01:37.10
これからもどんどんevalについて話題を振っていくつもりです
決してNGWORDとかに入れることがないようお願いいたします
190:Name_Not_Found
12/01/18 11:02:05.28
>>184
history.go(0)はページをリロードするので解決にはなりません
>>188
質問からはずれてます。無名関数の参照を削除するのが主旨です
191:Name_Not_Found
12/01/18 11:02:11.16
よくわからんけど
1つにつきせいぜい数KBとかそんな程度じゃないの?
そんなん気にするんなら他にやることあるだろ
192:Name_Not_Found
12/01/18 11:02:20.35
>>182
JSで動くLinuxならまだ解るけど、JSで作ったとなると意味は変わってくるがな。
JSで作ったLinuxと書くと一般的にはLinux自体をJSで作ったと思うがな。
193:Name_Not_Found
12/01/18 11:04:29.91
>>191
イベントリスナの登録以外にも画像の先読みなどメモリが使われるのですよ
気にしますよ?
194:Name_Not_Found
12/01/18 11:05:15.66
>>192
わけわからん
『JSで作った』とか意味のわからん言葉はお前さんが言い出したことで
俺は初めにそんな発言してないぞ?
言葉のおかしさを示すため以外に使ったこともない
195:Name_Not_Found
12/01/18 11:08:26.52
>>193
気にしなくていいよ
以上
196:Name_Not_Found
12/01/18 11:09:07.71
>>194
元はこれだろ
>JSでできたLinux
"できた"を"動く"とでもいいたいのか
197:Name_Not_Found
12/01/18 11:09:53.85
なんだバカしかいねえのか
198:Name_Not_Found
12/01/18 11:10:27.50
>>196
JSで実現されたLinuxって意味だよ
気が済んだ?
199:188
12/01/18 11:12:46.22
>>190
ああ、そのMDCの記述そのものについて聞いてるのね。
本家の英語版だと無名関数の参照を削除とかいうよくわからない記述はなくなってるから参考にしないほうがいいよ
200:Name_Not_Found
12/01/18 11:13:12.32
ここまで来たら両者引き下がれないなw
俺は>>198に10$賭ける
お前はどうする↓
201:Name_Not_Found
12/01/18 11:16:35.54
トイレに行ってくる
202:Name_Not_Found
12/01/18 11:17:47.39
俺は実は2人は1人でどちらも勝利に100円賭ける
203:Name_Not_Found
12/01/18 11:18:03.64
とりあえず迷惑だから他でやってよ
それか続けるなら名前にトリップで#evalつけてくれ
まとめてあぼんするから
204:Name_Not_Found
12/01/18 11:20:10.35
E.v?alがどうしたって?(w
205:Name_Not_Found
12/01/18 11:21:39.57
evalアボンすると
nodeValueとかも対象になるから注意
206:Name_Not_Found
12/01/18 11:23:39.51
var str = "html>body>div#test>ul>(li+a)*3
これを展開して
<html>
<body>
<div id="test">
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</div>
</body>
</html>
になるパーサの書き方を教えてください
207:Name_Not_Found
12/01/18 11:27:53.89
うーん、こうやると絶対ダメだしなあ
var parseHtml=str;
while(eval(parseHtml))parseHtml+=parseHtml+str;
208:Name_Not_Found
12/01/18 11:30:11.66
$("#test a:eq(0)")
$("#test a:eq(1)")
$("#test a:eq(2)")
$("a", "#test").each(function() {
.....
});
209:Name_Not_Found
12/01/18 11:30:32.25
ブラクラ注意
210:Name_Not_Found
12/01/18 11:36:43.09
そういえば前スレで
宇宙線による悪影響がeval使うと増すみたいな事言ってた奴がいたな
eval否定教のやつらは皆ヤベーな(w
211:Name_Not_Found
12/01/18 11:42:22.69
>>210
>>165
212:Name_Not_Found
12/01/18 11:42:41.19
空気読めない奴
213:206
12/01/18 11:55:42.36
zen codingなんですけどどうやってパースしてるのか
214:Name_Not_Found
12/01/18 11:58:52.18
ソース読めばええやん
215:Name_Not_Found
12/01/18 12:00:23.77
function a(){}
for(var i=0; i<100; i++) {
setTimeout(a, 100);
}
これってさsetTimeoutで実行するごとにメモリ開放しないのな
216:Name_Not_Found
12/01/18 12:20:32.00
JSで書かれた数式のパーザ貼っておきますね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML//EN">
<html><head><title>???</title>
<script type="text/javascript">
var s = '1+2';
function exp() {
var v = term();
while(s.match(/^[+-]/)) {
if(s.match(/^[+]/)) { s = s.substring(1); w = exp(); v += w; }
else { s = s.substring(1); w = exp(); v -= w; } }
if(s.match(/./) && !s.match(/^[)]/)) throw 'syntax'; else return v;
}
function term() {
var v = fact();
while(s.match(/^[*/]/)) {
if(s.match(/^[*]/)) { s = s.substring(1); w = term(); v *= w; }
else { s = s.substring(1); w = term(); v /= w; } }
if(s.match(/./) && !s.match(/^[-+)]/)) throw 'syntax'; else return v;
}
function fact() {
if(s.match(/^[0-9]/)) {
var t=s.match(/^[0-9]+/)[0]; s=s.substring(t.length); return parseInt(t); }
if(s.match(/^[(]/)) {
s = s.substring(1); var v = exp();
if(s.match(/^[)]/)) { s = s.substring(1); return v; } else throw 'syntax'; }
}
217:Name_Not_Found
12/01/18 12:21:00.41
function calc() {
try {
s = document.getElementById('t0').value; alert(exp());
} catch(e) { alert('syntax error, seeing:' + s); }
}
</script>
</head><body>
<div><input type="text" id="t0" value="((1+2+3)*2+19*(30*2))/2">
<button onclick="calc()">calc</button></div></body></html>
218:Name_Not_Found
12/01/18 13:07:22.84 QyRmPjJq
>>191
ここでのメモリーリークはページを破棄してもメモリ回収されないバグだ
平気で数GB行ってたんだぞ
219:Name_Not_Found
12/01/18 13:40:23.04
plain/textで出力されたページの内容を取得したいんですが
document.bodyだとタグがついちゃいます
良い取得方法はありませんか?
220:219
12/01/18 13:43:00.71
例えばURLリンク(www.ietf.org)の内容を変数に入れたいのですが
var a = document.all;
console.log(a);
とか
var a = document.body;
console.log(a);
だとタグが付いてしまいました
221:Name_Not_Found
12/01/18 13:55:33.92
つinnerText
eval否定教は早くローカル変数にアクセスするより良い方法書けよ
222:Name_Not_Found
12/01/18 13:58:47.78
>>221
できましたありがとうございます
223:Name_Not_Found
12/01/18 14:02:25.75
eva|で威張るな
224:Name_Not_Found
12/01/18 14:04:04.11
必死にeval話題を掘り起こそうとしてますねw
225:Name_Not_Found
12/01/18 14:05:55.80
お前もな!
ワハハハハハw
226:Name_Not_Found
12/01/18 14:09:44.95
結局誰もeva|を使わない方がいい理由を明確に出せてない件
227:Name_Not_Found
12/01/18 14:10:12.24
関数名取得したいとかと同じ欲求でしょ
228:Name_Not_Found
12/01/18 14:10:54.69
>>226
ヱヴァ?
229:Name_Not_Found
12/01/18 14:12:31.05
>>226
お前は悪くない
親が育て方間違っただけ
230:Name_Not_Found
12/01/18 14:13:15.36
関数名はarguments.calleeが使えればだいたいのケースで取得できるかも
231:Name_Not_Found
12/01/18 14:17:06.98
>>229
つまり負けを認めるってこと?
今まで特に大した理由もなくevalを批判してたけど
この度論破されて悔い改め宗教もやめることを誓いますか?
232:Name_Not_Found
12/01/18 14:17:44.94
/)
( i )))
/ ̄\ / /
| ^o^ | ノ / < いみがわかりませんなぁ
\ / ,/
/ _ /´.
(___)/
/ l`、 ノ ノ
,...-‐''" _.l::::`ー,=-'(
/ ´ ,.!_;;;:r''.. ` 、
,...-‐' _,....-‐'" `'-、:: ` 、
/.. ,....―'" `ー、__ `l
/_;::::-'" /::::::::::::::::ノ
,.../._r'" ヽ`''「 ̄ ̄
(__ノ' \_\
233:Name_Not_Found
12/01/18 14:18:52.24
arguments.calleeとか
234:Name_Not_Found
12/01/18 14:19:34.24
addEventListenerでバインドされた匿名関数を、後から削除する方法って無いですか?
removeEventListenerするには、関数への参照が必要ですよね
具体的には、とあるサイトで、匿名関数でaddEventListenerされている
clickイベントハンドラを無効化する拡張を書きたいんですが
235:Name_Not_Found
12/01/18 14:21:11.25
>>231
>>165
236:Name_Not_Found
12/01/18 14:22:53.11
自分に都合の悪い発言はすぐ弾圧(w
流石宗教だなぁ(w
237:Name_Not_Found
12/01/18 14:23:47.60
eval辞めますか?
それとも……
にんげん辞めますか?
238:Name_Not_Found
12/01/18 14:27:38.88
もうeval派用と禁止派用
スレ2つ作って住み分ければいいじゃん
片方は厳格な回答をする
片方はトリッキーでeval使いまくりな回答をする
これで決定な
以上
もうこの話は終わり
239:Name_Not_Found
12/01/18 14:29:18.59
>>236が>>165に行けば解決する問題
240:Name_Not_Found
12/01/18 14:30:17.14
eval派は認められたかったらなんかeval使ったナイスなコードだせよ
例えばevalソートとかなんか開発してみせろ、そしたら認めてやる
241:Name_Not_Found
12/01/18 14:30:31.97
>>240
>>165
242:Name_Not_Found
12/01/18 14:32:07.62
>239
ここは質問スレだから
質問されて解決されてないことを議論するのは当たり前でしょ?
ばかなの?しぬの?
243:Name_Not_Found
12/01/18 14:34:34.83
>>241
そんな何の筋も通ってない個人的な意見出されても困るわ
ここでは俺がリーダー
黙って俺の意見に従え
244:Name_Not_Found
12/01/18 14:36:20.62
>>242-243
>>165
245:Name_Not_Found
12/01/18 14:37:25.66
>>244
>>243
246:Name_Not_Found
12/01/18 14:39:27.29
だから使いたい奴は勝手に使ってろって言ってんだろ
しつけえぞほんと、いい加減キレるぞ
247:Name_Not_Found
12/01/18 14:41:14.80
>>234
addEventListener をフックする方法を探せ。
248:Name_Not_Found
12/01/18 14:41:15.49
勝手にキレてろよwww
しつけえぞお前wwwwwwwww
249:Name_Not_Found
12/01/18 14:42:06.71
プッ
250:Name_Not_Found
12/01/18 14:43:15.85
>>240
つ json2.js
251:Name_Not_Found
12/01/18 14:45:13.30
>>181
var button = document.getElementById('button');
button.addEventListener('keydown', function(e){
~処理~
}, false);
と書いてしまうと、無名関数内からbuttonを参照し、イベントリスナーによりbuttonが無名関数を参照する循環参照となり
メモリー解放がされなくなる=メモリーリークが発生する これを断ち切るには
document.getElementById('button').addEventListener('keydown', function(e){
~処理~
}, false);
のように変数を使わないようにするか
var button = document.getElementById('button');
button.addEventListener('keydown', function(e){
~処理~
}, false);
button = null; //←nullを代入して変数buttonのDOMオブジェクトへの参照を切る
・・・のように前にここで教わったがうまく理解・説明できている自信がないw
252:Name_Not_Found
12/01/18 14:49:12.89
そんなこと考慮する必要ない
昔微々たる高速化のために配列の変わりに
オブジェクトを使うテクニックがあったが
今それをやるくらい無駄
253:Name_Not_Found
12/01/18 15:05:33.40
window.openでurl先を開いた後にtest関数を実行させたいのですが実行できません
var w =window.open("URLリンク(www.yahoo.co.jp)");
function test(){alert(1);}
w.addEventListener("load", test, false);
アドバイスお願いします
254:Name_Not_Found
12/01/18 15:27:04.90
そういうのをXSSといいます
255:Name_Not_Found
12/01/18 15:29:27.53
>>251
だーかーらー、最初から循環参照しないように書け
これはデザインの話だから、高速化のテクニックと同じに考えるバカに関わるな
256:Name_Not_Found
12/01/18 15:37:07.30
>>255
いきなりバカ呼ばわりしないでおくれよ
微々たる速度差を追求するのと同じように
普通気にしなくてもいいという意味で言ったんだけど
どこかそんなにおかしいのなら謝るからちゃんと教えてくれない?
別にデザインとテクニックを一緒に語ったわけじゃないよ
気にしなくていいよって言いたかったの
257:Name_Not_Found
12/01/18 15:55:51.32
>>256
循環参照しないように書くと設計の根本的な部分が変わる
それを「微々たる」と言うのは、お前が何も理解してないバカだからだろ
バカはバカのままでいいが、他人をバカに巻き込むな
258:Name_Not_Found
12/01/18 16:02:49.27
いつものやつか
259:Name_Not_Found
12/01/18 16:03:00.22
>>254
ブックマークレットで使いたいんですがやっぱりできないですかね?
260:Name_Not_Found
12/01/18 16:03:11.84
>>253
FAQ >>3 Q1/A1を読んでね。終了。
261:Name_Not_Found
12/01/18 16:03:15.06
window とか document にイベント定義できねーなw
262:Name_Not_Found
12/01/18 16:07:37.60
>>257
自分が言ってるのはあくまでメモリの話ね
そんなにメモリを気にしなくても大丈夫って言いたいの
263:Name_Not_Found
12/01/18 16:10:47.79
>>260
裏技とかないですか?
264:Name_Not_Found
12/01/18 16:12:12.49
ユーザスクリプトじゃね
265:Name_Not_Found
12/01/18 16:21:10.41
Yahoo!とかはXHR2許可してたりしないの?
そういったところは差し違えないページでMessagingEvalにも対応して欲しいな
こういうときはevalの出番だと思う
266:Name_Not_Found
12/01/18 16:41:26.06
確かに今まではXSS=脆弱性でevalと絡むときは危険以外の何物でもなかったけど
XSSってよく考えたらCrossSiteScriptingの略だから良い意味でも使っていいんだよな
メッセージングとかこれからはサイト間の良い繋がりが大事になってくるかもしれない
ワーカーもそうだけど、そういった場所でevalが活躍する日もあるかもな
267:Name_Not_Found
12/01/18 17:04:32.57
>>262
お前が「気にしなくても大丈夫」なコードしか書いたことがない、という個人的事情と
もすこしでかい開発でメモリ事情も考慮した設計をしなければならない事情を
一緒くたにすんな、と言ってんだよバカ
268:Name_Not_Found
12/01/18 17:13:00.51
スマホ用に作るとメモリを気にしないといけないのだよ
269:Name_Not_Found
12/01/18 17:28:20.51
>267-268
一日中起動しっぱなしのアプリとかならわかるけど
たかがイベントリスナーの1つや2つ、もしかしたら100個くらいあるのかもしれないけど
ページを移行するまでのちょっとした時間動くスクリプトにおいて
KBレベルのメモリは気にする必要普通はないと思う
270:Name_Not_Found
12/01/18 17:49:00.60
>>269
だからさあ画像を裏で読み込んだりする場面で気にしないといけないのよ
271:Name_Not_Found
12/01/18 18:08:46.59
循環参照を起こさずに、どうやって document にイベントを追加することができますか。
272:Name_Not_Found
12/01/18 18:21:05.08
>>269
ページ移行してもメモリが開放されないのがメモリリークじゃないの
スマホ用のブラウザ(=最近のブラウザ)なら起きないと思うけど
273:Name_Not_Found
12/01/18 20:54:01.94
>>271
たとえばグローバルな関数を定義して、その関数をイベントハンドラとして登録すれば
クロージャがないので循環参照も無いよね。
274:Name_Not_Found
12/01/18 21:26:09.82
document にイベントリスナを定義した場合、
document -> listener/scope -> window -> document
これは循環参照にならないの?
リークの有無はともかく。
275:Name_Not_Found
12/01/18 22:56:08.03
>>274
window (グローバルオブジェクト)はJS内のどっからでもアクセスできるんでわざわざ
イベントリスナにその参照を保持したりしないでしょ。
276:Name_Not_Found
12/01/18 23:16:54.88
DOMエンジン―JavaScriptエンジン間の参照を切る
(function() {
var ref = []; // Array
ref[0] = document.createElement("div");
ref[1] = document.createElement("object");
…
ref[0].addEventListener("click", function() { alert(ref)… // 関数Example
})();
関数Exampleはrefを覗けるがrefに入ってる要素を直接は覗けないのでここで切れる
277:Name_Not_Found
12/01/18 23:40:12.21
var name=document.form.name.value;
テキストボックスで取得した値を変数nameに入れて、
nameが半角英数字とそれ以外って判定するにはどうするのですか?
正規表現ですか?
278:Name_Not_Found
12/01/19 00:02:12.03
>>276
循環の輪がつながってちゃ意味ないでしょ
279:Name_Not_Found
12/01/19 00:05:38.22
if(/^[A-Za-z0-9]+$/.test(name))
alert("OK");
半角全角の違いを許容しない仕様は避けるべき、混在を許容するか内部で自動的に半角に揃えるようにすることをお勧めする
たとえば、Excelが全角数字をただの文字として扱うと妄想してみよう、使い勝手はどうだろうか
280:Name_Not_Found
12/01/19 00:41:25.76
>>279
ありがとうございました。
全角は半角変換することにします。
281:Name_Not_Found
12/01/19 01:35:15.15
メモリリークするって言ってた人は、今度は循環参照って言うようになったみたいだね
282:Name_Not_Found
12/01/19 02:01:14.20
もしループで無名関数いっぱい作ってたらおもしろいな
283:Name_Not_Found
12/01/19 05:51:22.74
>>279
最後の行がなければ完璧なんだが…惜しい
284:Name_Not_Found
12/01/19 06:21:27.13
匿名関数と無名関数って同じ意味ですか?
285:Name_Not_Found
12/01/19 07:16:54.55
単一ページのメモリリークなんて気にしなくていいよ
286:Name_Not_Found
12/01/19 09:01:03.93
メモリリークは単一ページの中で起きても他のページに移ったあともメモリが解放されなく
なる問題。解放するにはブラウザを終了させるしかない。ま、今のブラウザでは問題ない
んだから別に無視でいいと思うけど、「他のページに移ればそれで終わる」問題ではなかったのね。
287:Name_Not_Found
12/01/19 09:22:12.52
だからそんなこと気にする必要一切無し
残念なことに俺が使ってるブラウザは今だにメモリリーク起こるが
重くなったら一旦閉じればいいだけのこと
288:Name_Not_Found
12/01/19 10:01:08.91
Web製作的には、気にするかどうか決めるのはお客様であってアンタじゃないの。
アンタの主張はそれ以上ないんだから黙ってて。
289:Name_Not_Found
12/01/19 10:06:09.65
var a = (20.2*10) - (20.1*10);
console.log(a);
この結果が1になるのに
var a = (20.02*100) - (20.01*100);
console.log(a);
この結果が1にならず、0.9999略になるのはなぜですか?
290:Name_Not_Found
12/01/19 10:07:16.14
>>288
お客様?
はて、質問者はそんな条件は出してなかったが
それは君のただの思い込みでしょ?
自分は一般論を言ったまでだ
291:Name_Not_Found
12/01/19 10:10:17.38
>>289
両方1にならないよ
何のブラウザ使ってる?
292:Name_Not_Found
12/01/19 10:12:27.20
>>291
chromeのコンソール
293:Name_Not_Found
12/01/19 10:13:38.79
>>290
話がかみ合わないのは君の経験不足
一度スマフォでゲームを作る仕事をやってみればいい
294:Name_Not_Found
12/01/19 10:22:49.14
>>289
そこらの問題はあれだ
0.3 != 0.2 + 0.1
これらと同じで浮動小数点数の問題だ
295:Name_Not_Found
12/01/19 10:34:20.20
>>294
小数点同士計算しないように掛けてから計算してるのに?
296:Name_Not_Found
12/01/19 10:35:47.81
20.01*100で狂ってる
297:Name_Not_Found
12/01/19 11:19:25.36
~~(20.02*100) - ~~(20.01*100) === 1
とか
Math.floor(20.02*100) - Math.floor(20.01*100) === 1
にしないと
298:Name_Not_Found
12/01/19 12:27:23.98
function F() {
var private = 2;
this.arg = 1;
this.calc = function () {
return this.arg * private;
}
}
こんなクラスもどき関数というかコンストラクタを
function F() {
var private = 2;
this.arg = 1;
Object.defineProperty(this,'calc',{
value: function () {
return this.arg * private;
}
});
}
こんな感じにdefineProperty使ったのに書き換えられるようになったりしたけど
環境固定でdefineProperty使えるならやっぱ後者の方がいいのかな
299:Name_Not_Found
12/01/19 13:00:48.66
>>298
それ読みにくくなっただけでメリットが見えないんやけど
なんで書き換えなきゃならんのん
300:Name_Not_Found
12/01/19 13:42:17.58
一番でかいのは書き換え不可に出来る点かな
可読性とかを考えるなら上だろうけど
下も読み慣れれば然程変わった書き方でも無いし
setter/getterを定義する時も同様の書き方になるし
問題ないのではないかと思ってどうなんだろう?と思った
301:Name_Not_Found
12/01/19 14:55:29.70
おまえらってJavaScriptでなに作ってるの?
302:Name_Not_Found
12/01/19 15:00:50.62
>>301
URLリンク(www.geocities.jp)
303:Name_Not_Found
12/01/19 15:08:53.21
>>301
おみくじ
304:Name_Not_Found
12/01/19 15:09:16.53
>>301
Naoシフト
305:Name_Not_Found
12/01/19 15:13:59.00
>>304
それググってもよくわからんのだけどJSでポップアップ出すのに特許が必要なの?
306:Name_Not_Found
12/01/19 15:24:09.56
Mensch ってフォントが超見やすくて捗る
Mensch -- A coding font
URLリンク(robey.lag.net)
307:Name_Not_Found
12/01/19 15:24:32.97 qHXNP6l+
>>305
ググッてもほとんど出てこなくなるっつーのも
風化したんだなーと、感慨もひとしお
308:Name_Not_Found
12/01/19 15:25:24.51 qHXNP6l+
>>306
inconsolataもなかなかなんだぜ
URLリンク(levien.com)
309:Name_Not_Found
12/01/19 15:28:01.48
>>308
それも好き。コーディングしてる時それかMenschでやってるw(フォントリンクしつつ)
310:Name_Not_Found
12/01/19 15:28:28.54
293
自分はAndroidやiPhoneが日本で出る前からずっとスマートフォン向けの開発してきたんだが
経験の浅いお前とは違って何をこだわるべきかはよく熟知してる
例えばオブジェクトを配列がわりに使うのはどの環境でどのくらい効果、逆効果があるのかまで完全にしりつくしてるんだぞ
そしてそういうせこせこしたことはもうする必要がないことも分かってる
出直してきな
311:Name_Not_Found
12/01/19 15:44:29.31
>>309
Perl には使えないなw >Mensch
312:Name_Not_Found
12/01/19 15:50:14.22
perlならinconsolataかな
313:Name_Not_Found
12/01/19 15:53:24.21 qHXNP6l+
Rictyも貼っときます
URLリンク(github.com)
314:Name_Not_Found
12/01/19 15:55:19.51 qHXNP6l+
>>310
そういうの書くのよそうよ、荒れるし
どうせこのスレの人たちなんて、NN2の頃からJS書いてるような
人たちばっかりだろうし
315:Name_Not_Found
12/01/19 15:57:18.87
>>312
良いね。
316:Name_Not_Found
12/01/19 16:06:03.35
今までPCのブラウザでUAを変えてアクセスしていたスマホのサイトにJavaScriptが追記されて
エラーページに飛ばされるようになりました。
抜粋して書いてますが、エラーページに飛ばされないようにするにはどのような
scriptを作成すればよろしいのでしょうか?
var isTouch = ('ontouchstart' in window);
if(isTouch === false && thisPage === null && topPage !== null){
""
setTimeout("accessErrorRedirect()",0);
var outChk = 1;
""
}
よろしくお願いします
317:Name_Not_Found
12/01/19 16:23:57.16
>>1
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
318:Name_Not_Found
12/01/19 16:34:47.34 qHXNP6l+
>>316
JSきれば?
319:Name_Not_Found
12/01/19 16:35:46.69 qHXNP6l+
>>316
JSオフ
320:Name_Not_Found
12/01/19 16:38:56.75
何故言い換えたし。
321:Name_Not_Found
12/01/19 16:44:31.86
>>318
オフにするとサイトにほとんど何も表示されなくなってしまうのです
322:Name_Not_Found
12/01/19 16:45:59.18
なぜそうしてまでサイトみるの?
323:Name_Not_Found
12/01/19 16:55:19.20
>>316
制作者として恥ずかしい質問するな
324:Name_Not_Found
12/01/19 17:02:30.37
そんな子に育てた覚えはありません!
325:Name_Not_Found
12/01/19 17:12:54.96
>>316
こんなザルな対策でいいのかよw
326:Name_Not_Found
12/01/19 17:18:43.80
<dtid="a">2011年2月1日</dt>
「2011年2月1日」をJavascriptで取得って可能ですか?
327:Name_Not_Found
12/01/19 17:26:07.96
var x = document.getElementById("a").html;
alert(x);
ポーン、2011年2月1日
328:Name_Not_Found
12/01/19 17:26:40.11
あ、ごめんinnerぬけてた
document.getElementById("a").innerhtml;
329:Name_Not_Found
12/01/19 17:42:11.50
innerHTML
330:Name_Not_Found
12/01/19 19:04:43.39
textContent
331:Name_Not_Found
12/01/19 19:16:46.83
スレリンク(software板:788番)
332:Name_Not_Found
12/01/19 19:18:26.75
マルチかよ死ね
333:Name_Not_Found
12/01/19 19:37:23.72
正直マルチでも別にいいじゃんかと思う
特に難しい問題ならな
きちんと両方の回答を参考にする気があるんなら問題ない
ただ早く知りたいからとかだけならちょっと問題だと俺は思う
でも本当に困ってるんだったらそれでも俺は許すよ
334:Name_Not_Found
12/01/19 19:41:30.47
>>333
自演乙
335:Name_Not_Found
12/01/19 19:43:29.68
あ、すいません
なんかあっちでスレ違いって言われて来たんですけど
あっちのスレが一時的に読み書きできなかったんであっちにそれを書けなかったんです
どちらにせよマナー違反みたいなんで>>316は取り下げます
ご迷惑をおかけして申し訳ありませんでした
336:Name_Not_Found
12/01/19 19:43:54.81
>>334
自演じゃない
どうして君はマルチくらいで怒るのさ
337:Name_Not_Found
12/01/19 19:45:26.60
スレ違って言われてからこっち来たならいいんじゃねーの?
338:Name_Not_Found
12/01/19 19:45:51.55
マルチポストがどんだけ酷いもんか調べてから来い自演タコ
339:Name_Not_Found
12/01/19 19:46:18.73
>>335
大丈夫
マナー違反じゃないよ
340:Name_Not_Found
12/01/19 19:46:25.09
しかも内容はそんな重要なことでもないだろが
341:Name_Not_Found
12/01/19 19:47:47.81
>>338
ケースバイケースだろ
マルチだからっていって条件反射で怒りだすのはおかしい
あんた何様のつもりだよ
342:Name_Not_Found
12/01/19 19:48:34.88
>>333
そんな甘いこと言ってたら、マルチが増えるだけ。どんなマルチも無視するべき
>正直マルチでも別にいいんじゃないかと思う
>特に難しい問題ならな
難しい問題かどうかは主観的なもの
質問者はわからないから聞いているのであって、簡単だったら聞かないだろ?
343:Name_Not_Found
12/01/19 19:50:10.32
マルチかばってる奴は皆同類だと見ていいか?
344:Name_Not_Found
12/01/19 19:50:44.53
板違いだしマルチだし何なの
345:Name_Not_Found
12/01/19 19:52:00.97
>>342
複数回答が必要な難しい問題って事だよ
完全主観じゃないだろ
本当あんたはボンクラだな
荒らしは早く失せろよ
346:Name_Not_Found
12/01/19 19:53:20.17
マルチでも別にいいじゃん
そんなに嫌なら黙って無視しとけよ
一々ケチ付けて書き込むな
迷惑なんだよ
347:Name_Not_Found
12/01/19 19:53:28.27
>>316をかばってるつもりなら>>317みればいいよ。
失せろカス
348:Name_Not_Found
12/01/19 19:55:04.87
そんなにプライドが高くてマルチされるのが嫌なら
質問者がマルチしなくても済むような素晴らしい回答しろよ
話はそれから
349:Name_Not_Found
12/01/19 19:56:05.32
だから知恵袋行ってやってくれ
350:Name_Not_Found
12/01/19 19:56:26.54
マルチ肯定派 vs マルチ否定派
351:Name_Not_Found
12/01/19 19:56:35.50
>>347
別にかばってるんじゃねえ
つまらんくだらん汚いグチを書き込むなって言ってんだよ
352:Name_Not_Found
12/01/19 19:57:29.92
スレ違で誤爆したらその質問は二度と出来ないとか、どんな鬼畜ゲームだ
353:Name_Not_Found
12/01/19 19:57:30.55
っ 鏡
354:Name_Not_Found
12/01/19 19:58:12.78
>>351
355:Name_Not_Found
12/01/19 19:58:30.57
このスレに来るのも意味不明だしただのマルチだろ
終了
356:Name_Not_Found
12/01/19 19:58:55.77
>>350
別に俺はルールを統一しようとかそういった事を言ってるわけじゃないが
マルチは一律マナー違反とか言いはじめるバカが許せないんだよ
357:Name_Not_Found
12/01/19 19:59:00.98
わかりやすい自演ですなぁ
358:Name_Not_Found
12/01/19 19:59:34.99
>>356
マルチ議論スレ立ててそっちでやれ
359:Name_Not_Found
12/01/19 20:00:08.75
>>346
マルチの話題で一番レスしてるのお前じゃんw
360:Name_Not_Found
12/01/19 20:00:30.91
>>357
自演じゃねえから、マジでマジでマジで
361:Name_Not_Found
12/01/19 20:01:30.51
まじで?
362:Name_Not_Found
12/01/19 20:01:32.56
>>359
だから?
何が言いたいのかちゃんとハッキリ言えよ
363:Name_Not_Found
12/01/19 20:02:11.55
361
うん、マジでマジ
364:Name_Not_Found
12/01/19 20:02:12.71
>>362
カテゴリ違いです
365:Name_Not_Found
12/01/19 20:02:50.44
>>360
俺はお前が自演じゃないことも、過去にマルチして叩かれていたことも知っているよ
366:Name_Not_Found
12/01/19 20:04:48.88
362
いや、質問スレにとって重要な問題だ
今までも何回も何回も何回も何回も
マルチに執着する奴のせいで問題は起きてきた
367:Name_Not_Found
12/01/19 20:05:16.13
じゃあ執着するなよ
368:Name_Not_Found
12/01/19 20:06:40.89
>>365
俺は質問自体どこでもしたことはない
自分で調べられるから
369:Name_Not_Found
12/01/19 20:07:34.78
>>367
いんや、今回こそは許せん
もう4年くらい我慢してきた
370:Name_Not_Found
12/01/19 20:08:36.13
なにこれ
371:Name_Not_Found
12/01/19 20:08:37.92
いや、やっぱりもうスッキリしたわ
みんな、迷惑かけたな
ありがとな
372:Name_Not_Found
12/01/19 20:09:45.61
要するにスレ移動するなら必ず一言断っとかないとこうやって大変な事になるという事ですね
373:Name_Not_Found
12/01/19 20:29:07.59
社会の縮図w
374:Name_Not_Found
12/01/19 21:01:29.68
すれ違いと言われて移動してきたなら、
移動してきた事を明記した方がマルチと言われずにすむ。
移動前に移動前のスレにも移動しますみたいな事を書いておくと完璧だろう。
これらがマナーってもんだろ。
別に強要はしないがマナー悪いと思って答えない人や煩く言う人がいるのも事実だし。
375:Name_Not_Found
12/01/19 21:12:09.45
さすがマルチ様はマルチを指摘されて回答が付かないことが分かると暴れだすよな
376:Name_Not_Found
12/01/19 21:14:21.13
よくわからんけど上のって質問する場所間違えてこっちに来たってだけなんじゃないの
377:Name_Not_Found
12/01/19 21:16:36.26
元の巣でも謝辞の一つもなかったようだが?
378:Name_Not_Found
12/01/19 21:32:00.16
>>335にそれについても書いてあるじゃん
真偽はどうかしらんけど
379:Name_Not_Found
12/01/19 21:33:41.46
スレ違だからChromeスレ行けと言われてここになぜ来た
380:Name_Not_Found
12/01/19 21:45:16.10
2ちゃんねる サーバ負荷監視所
URLリンク(ch2.ath.cx)
2012-01-19 15:50 anago NG NG
381:Name_Not_Found
12/01/19 21:50:46.64
ああ本当に鯖がアレな感じだったのか
真偽はどうかしらんけどとか言ってすまんかった
382:Name_Not_Found
12/01/19 21:59:54.49
>>333-372
お前ら面白過ぎw
濃密な 30分だわw
383:Name_Not_Found
12/01/19 22:03:09.35 9nslCmQ/
javascriptというかdomの質問なんですが、
domのelementとnodeってどう違うんでしょうか?
ある要素の子要素を取るときにfirstChildElementを使うときもあればchildNodes[i]とかで取得したりと
自分の中で使い分けがバラバラだったので統一したいと思っての質問です。
384:Name_Not_Found
12/01/19 22:04:23.38
そのスレに比べたらこっちの応対の方が遥かに平和的じゃないか
385:Name_Not_Found
12/01/19 22:06:12.90
>>383
element -> 吉川
node -> 布袋
386:Name_Not_Found
12/01/19 22:11:28.18
>>383
NodeにはtextNodeとかも含まれるけど
ElementNodeにはtextNodeは含まれずHTMLのエレメントだけになる
387:Name_Not_Found
12/01/19 22:20:22.48
HTMLじゃないエレメントもElementNodeに含まれます
388:Name_Not_Found
12/01/19 22:30:47.41
getElement...系で取得できるものが要素
取得できないものも含むのがノードや。ノードさんの勝ちやな!
389:Name_Not_Found
12/01/19 22:50:34.12
SOHOスレを抜いて今ダントツの勢いw
390:Name_Not_Found
12/01/19 23:00:02.11 9nslCmQ/
ありがとうございます
ElementNode ⊆ Node
って感じでしょうか。具体的にtextnodeとかが含まれるか否かが違うだけってことで。
例えばspanElementとかならばgetElement系で取得できるそれとchildNodes[i]で取得できるそれに
違いはないということですね。
391:Name_Not_Found
12/01/19 23:09:13.16
HTMLを記述する時に改行コードなんかが含まれると
それらはTextNode扱いになるので注意
392:Name_Not_Found
12/01/20 00:54:42.74
すみません、質問です
jQueryのspritemenuに関する質問なのですが、
animate:'height'で画像が上から表示されるのものを下から表示にすることは可能でしょうか
色々ぐぐったりしてみたのですが分からなくて
よろしくお願いします
393:Name_Not_Found
12/01/20 00:56:41.26
マルチは駄目だな
本人は満足かもしれないが、本人以外では害悪の方がはるかに多い
394:Name_Not_Found
12/01/20 01:00:16.58
>>383
(function re(n){
var proto = Object.getPrototypeOf(n);
if (proto) {
console.log(proto.constructor.name);
re(proto);
}
})(document.createElement('div'));
これをChromeのConsoleで実行すると、
>HTMLDivElement
>HTMLElement
>Element
>Node
>Object
こうなる。divはHTMLDivElement、HTMLElement、Element、Node、Objectを継承してるってことね。
document.createElementをdocument.createTextNodeに変えてみたりすると違いがわかってくるでしょ。
395:Name_Not_Found
12/01/20 01:25:55.63
jquery 詳しい方、教えてください。
$('#hoge').animate({width:'show'});
で非表示だったID:hoge要素を表示する際
スライドエフェクトが左から右に向かってかかるんですが
これを逆方向にする事ってできるんでしょうか??
クリックする度、右から左へどんどん流れるようにしたいんですが
左から右へしか動かず困っています。
396:Name_Not_Found
12/01/20 02:21:41.79
NodeはEventTargetの一つじゃないかい
397:Name_Not_Found
12/01/20 02:34:08.36
>>395
たとえばさ、その要素が100px×100pxの物体だとすんじゃん?
それをanimateで出すと横幅が0,1,2,3,,,,100ってなるわけよ
そんでそれがもし50×100pxの物体だったするとHTMLは基本左寄せだろ?だから左上の位置は横幅がいくつになろうと変わらない
だから右にのびてるように見える、右寄せだったら右上の位置が変わらないから左に伸びるようにみえる、中央配置だったら中央の位置が変わらないから両方に向かって伸びるように見える
<div align="center">
<div id="hoge" style="background-color:#0099CC; width:120px; height:120px;">あいうお</div>
</div>
これでhideした後そのスクリプト実験してみ、そっちの方がわかりやすい、あとはCSSでその要素の配置をなんとかせい
398:Name_Not_Found
12/01/20 03:14:05.24
上にマスクするようなの乗せて、それをけせばいいんじゃね?
399:Name_Not_Found
12/01/20 03:44:05.63
>>316
おもしろそうだ
400:Name_Not_Found
12/01/20 03:46:18.89
ってリロード押してなかった件
恥ずかしすぎる
401:Name_Not_Found
12/01/20 09:24:49.81
>393
どんな害悪よ?
402:Name_Not_Found
12/01/20 12:32:12.97 +pa3JUop
>>316
1行目に自分で答え書いてるじゃん
403:Name_Not_Found
12/01/20 12:45:45.32
>>399 >>402
もうその質問には触れるなよ
404:Name_Not_Found
12/01/20 13:07:47.05
マルチじゃなくてもあんなふざけた質問には答えないけどね
405:Name_Not_Found
12/01/20 14:08:33.11
偉そうにw
そういうレスする暇があったら、
簡単に回答してやればいいのに
406:Name_Not_Found
12/01/20 14:10:26.12
>>1
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
407:Name_Not_Found
12/01/20 14:11:10.32
オマエモナー(死語?)。オレモナー(〃)
408:Name_Not_Found
12/01/20 14:35:53.95
>>405
409:Name_Not_Found
12/01/20 14:43:38.13
なんや我
喧嘩売ってんのかおい
こっちは柔道で純1級持ってるんだぞ
410:Name_Not_Found
12/01/20 14:49:09.47
なぜこのスレはアホばかりが集まるんだろう・・・
411:Name_Not_Found
12/01/20 14:49:16.68
1級(笑)
かかってこいよ
412:Name_Not_Found
12/01/20 14:56:15.03
危ないからやめとくわ
柔道は自分の身を守る為のもの
喧嘩に使う為のものじゃない
413:Name_Not_Found
12/01/20 15:49:00.74
そろばん最強。
手にも足にも装備できる。
414:Name_Not_Found
12/01/20 16:08:57.38
両手+顎で猫踏んじゃったをピアノ演奏できる俺をなめるな
415:Name_Not_Found
12/01/20 16:20:23.23 +pa3JUop
剣道初段だけど、あんまり役に立たないなー
書道5段は結婚式とお葬式、年賀状で年に何度か活躍する
416:Name_Not_Found
12/01/20 16:22:37.05
柔道5段は結婚式とお葬式、年賀状で年に何度か活躍する
に見えてなんのこっちゃと思った
417:Name_Not_Found
12/01/20 16:28:40.00
俺はTOEICがメジャーじゃない時期英検なんて必要ねぇ、寧ろ採点基準に英検入れてる所なんて眼中にねぇ
と思って大企業受けたら落ちまくって日本に失望して海外行ったわ
今は日本web業界のレベルの低さに失望してる、mixiとか開発馬鹿なの?
418:Name_Not_Found
12/01/20 16:30:20.39
自伝でも書いてください
419:Name_Not_Found
12/01/20 16:34:09.40
ミクソはIE6とかにも対応させてるからだろ
何せユーザー維持しようと必死なんだから
5%を切って95%を楽しませる勇気もない
安定求めちゃってるから仕方がないね
それでもつぶやき機能は失笑もの
420:Name_Not_Found
12/01/20 16:41:14.63
なんか場末の酒場で日本の将来を論じてる酔っぱらいと同じ臭いを感じる
421:Name_Not_Found
12/01/20 16:49:55.98
まだピチピチの高校生です
422:Name_Not_Found
12/01/20 16:54:15.32
>>414
両手だけでできるじゃん
アゴ必要ないじゃん
423:Name_Not_Found
12/01/20 17:15:34.20
>>422
旋律、伴奏、対旋律の3つをを常にひくには顎が必要
424:Name_Not_Found
12/01/20 19:14:58.02
canvasで描いた特定の円の上にマウスが乗ったらイベントを発生させる方法を教えてください
canvasの中に描かれる円は一つだけではないのでcanvas要素にイベントを登録するのはできません
425:Name_Not_Found
12/01/20 20:15:15.43
うんだからイベントじゃなくて座標で判定するんだよ
426:Name_Not_Found
12/01/20 20:32:20.61
>>424
透明なクリッカブルマップを上から重ねるべし
427:Name_Not_Found
12/01/20 20:50:48.28
数学の問題で点Aが円Bの中にあるかどうかってやつがあったでしょ
それと同じ計算をするだけ
428:Name_Not_Found
12/01/20 20:56:10.62
>>427
kwsk
429:Name_Not_Found
12/01/20 20:58:59.47
Googleのコンソールでhtmlを書いて実行させられませんか?
ちょこっとした内容をエディタで書いてブラウザで確認するのが面倒で
430:Name_Not_Found
12/01/20 21:24:57.17
data:text/html,<html><h1>Hello world</h1></html>
431:Name_Not_Found
12/01/20 21:28:59.27
>>429
URLリンク(jsfiddle.net)
432:Name_Not_Found
12/01/20 22:16:21.63 UhrynC3j
>>428
例えば円の中心座標がX1,Y1で半径がR1だったとする
そこで座標X2,Y2がクリックされたとき
(X1-X2)^2+(Y1-Y2)^2<=R1^2 だったら
円の中をクリックされたと判定できる
433:Name_Not_Found
12/01/20 22:44:04.24
canvas使うなら高校くらいの幾何学は勉強し直すといいかも
煽りじゃなくてその辺の数式は普通に便利だから
434:Name_Not_Found
12/01/20 23:09:12.58
>>432
39
435:Name_Not_Found
12/01/21 01:02:20.77
>>429
document.write
436:Name_Not_Found
12/01/21 01:15:51.78
>>429
createHTMLDocument, innerHTML, insertAdjacentHTML
437:Name_Not_Found
12/01/21 05:00:07.90
>>431とかをブックマークバーにでも入れとくのが一番やな
使ったことなかったけど登録とかしなくても保存して公開までできるのか
滅茶苦茶便利やんけ
438:Name_Not_Found
12/01/21 07:31:32.92
>>429
SeaMonkey Composerの方が使いやすいと思う
あれがあるから、Firefoxには乗り換えられん
439:Name_Not_Found
12/01/21 13:16:07.60
質問です。
【環境】
WindowsXP, Opera11
XMLHttpRequestオブジェクトを使用し、openメソッドでuserName,passwordを指定しましたが、
userNameは渡り、passwordが渡りません。
GETでもPOSTでもダメでした。
440:Name_Not_Found
12/01/21 13:33:57.18
ダメなコードを書いてください
441:Name_Not_Found
12/01/21 13:36:26.02
ちゃんと
URLリンク(username:passward@example.com)
にしてるか?
442:Name_Not_Found
12/01/21 15:10:54.66
>>441
xhr.open(method, url, async, userName, password); だろ
443:Name_Not_Found
12/01/21 15:35:09.09
439です。
httpRequest = new XMLHttpRequest();
httpRequest.open('GET', url, false, userName, password);
httpRequest.send(null);
location.href = url;
IE8では通過できたのでブラウザの仕様でしょうか。
444:Name_Not_Found
12/01/21 16:55:28.03
441でやってみて
445:Name_Not_Found
12/01/21 17:01:32.02
Canvasにα0.01のランダムカラーで三角形を毎フレーム百個ずつくらいで
ランダムな位置に表示すると不思議な効果が得られますよね
ああいった効果をまとめているサイト等をご存知ないですか?
446:Name_Not_Found
12/01/21 17:03:32.11
HTML5もjQueryみたいなanimateとかが楽に出来るライブラリできないのかな
447:Name_Not_Found
12/01/21 17:25:46.37
ログインの自動化用ショートカットリンク作りたいんだけど「特定のURLを開いてからフォームに入力してsubmit」って無理?
手動でページ開いてからスクリプト実行するショートカット作るしかないのかな
USBメモリにグループウェアのリンクいれて持ち歩いてるけど地味にめんどくさい・・・
448:Name_Not_Found
12/01/21 17:26:12.57
>>441,444
location.hrefに渡すときのurlをその形式に変更しましたらうまくいきました。
ありがとうございます。
IEでは認められない形式だったので、他のブラウザでもダメだと思い込んでいました。
449:Name_Not_Found
12/01/21 17:31:23.12
>>447無理じゃない
ただし同ドメインでもユーザーの明示的操作イベントによって起動した関数内以外での
submit()やclick()はブラウザや設定によって無視される可能性がある
ユーザースクリプトなら確実
450:Name_Not_Found
12/01/21 17:43:23.15
>>449
ですよねーorz
onload判定とかどうすんだって話もあるしiframeとかで逃げられるような気がしなくもないからそっちで考えてみます
どもすー
451:Name_Not_Found
12/01/21 18:01:48.78
>>445
それどういうのですか
どういうことを言っているのかサンプルサイトを教えてください
そしたら僕が今まで貯めてきたブックマーク6万個の中から提示できるかもしれません
452:Name_Not_Found
12/01/21 19:26:52.89
iframeで開いたページのdocument取ってgetelementしてやれば良かろうと思ったら権限問題で出来ないのね
なにかいい対処法はないものですかね・・・
453:Name_Not_Found
12/01/21 19:39:38.12
同一ドメイン内だったらできるっしょ
454:Name_Not_Found
12/01/21 21:18:01.53
ショートカットでやろうとするから駄目。
html を用意して、そのグループウェアのログインフォームと値を
自前で書いといて、load と共に POST すれば桶。
455:Name_Not_Found
12/01/21 21:25:52.75
ここは書き込める?
456:Name_Not_Found
12/01/22 01:28:25.03
>>316
var isTouch = ('ontouchstart' in window);
457:Name_Not_Found
12/01/22 01:29:12.13
>>453>>454
グループウェアへのリンクいれたメモリで各地を転々とするので同一ドメインにならないのよね。自分はWEB管じゃないし
POSTはWEB管になんか言われそうで避けてたんだけどそれしかなさそうだしそれで行くわー
ありがとん
458:Name_Not_Found
12/01/22 02:47:30.01
>>457
それじゃ無理だな
あきらめるしかない、セキュリティ上
459:Name_Not_Found
12/01/22 02:47:30.65
jsのリファレンスはMDNのがいいよ
460:459
12/01/22 02:48:16.88
誤爆さーせん
461:Name_Not_Found
12/01/22 09:20:11.51
>>457
ユーザースクリプトについては見逃してるのかな?
USBメモリに入るスタンドアロンのFxでユーザースクリプト書けば?
462:Name_Not_Found
12/01/22 11:18:19.46 QyKWPpn1
スマートフォンでリンクを選択したしたときに、画面が左にスライドして移動するのですが
あれはどのように実現しているのでしょうか?
何かモジュールで実現しているようであればアドバイスいただけると助かります。
463:Name_Not_Found
12/01/22 11:18:29.35 QyKWPpn1
スマートフォンでリンクを選択したしたときに、画面が左にスライドして移動するのですが
あれはどのように実現しているのでしょうか?
何かモジュールで実現しているようであればアドバイスいただけると助かります。
464:Name_Not_Found
12/01/22 13:43:36.90
マルチ乙
普通にposition:absolute;のdivで外側囲って移動させりゃいいじゃん
まあまあ重いから注意しないといけないけどな
465:Name_Not_Found
12/01/22 15:57:48.13
var arr = getThousandArr(); ←ここでarrに、1000個の配列突っ込んでる。
console.log(arr); ←ちゃんと1000個の配列が入った二次元配列が出力される。中身も正しい。
console.log(arr[32][1]); ←なぜかundefinedになる・・・
console.log(arr[543]); ←上と同じでなぜかundefinedになる・・・
色々試してみても全然わからん・・・
なんでarrだけだとちゃんと出力されるのに、要素指定するとundefinedになるんだ・・・?
466:465
12/01/22 16:01:08.28
ちなみにarrをグローバル変数にして、デバッガで下二行を実行するとちゃんと中身が表示されるんだ
467:Name_Not_Found
12/01/22 16:13:09.14
getThousandArr
これの中身は?
new Array(1000);
とかしたのを返したとしてもlengthは1000になるよ
468:Name_Not_Found
12/01/22 16:37:39.97
テスト目的メモリを128MB使うコードを作りたいんですが
これって
var a = [];
for (var i=0; i<128000000; i++){
a[i] = 0;
}
と書くとforで回して代入する時間が非常にかかるのでよりもっと良いコードありませんか?
469:Name_Not_Found
12/01/22 16:51:09.54
>>468
こんな感じ、ただし配列に入るのは文字列だから注意
a=(new Array(128000000+1)).join(0).split("");
470:Name_Not_Found
12/01/22 16:55:33.24
どちらにしろそれじゃあメモリを128MB使うことになる保証がないがな
binaryデータ作るのが確実じゃね
471:Name_Not_Found
12/01/22 17:08:54.84
>>469
どうもありがとうございます
これをスマフォでの挙動のチェックに使いたいと思います
>>470
1文字1バイトで128MB分でも保障ってないのですか?
472:Name_Not_Found
12/01/22 17:15:07.21
Ajaxというのを始め様と思って本を読んだりしたのですが、これってもしかして
phpにPOST
↓
phpでPOSTされたのを処理
↓
値返ってくる
というのも非同期で出来るのでしょうか?
たとえば「1」を送ってphpで10倍して「10」が返って来たらその値をjavascriptで表示するような
473:Name_Not_Found
12/01/22 17:16:11.75
>>471
連続的なデータじゃないから
どんな感じに記録されるかはわからん
それなら別に配列にしないで文字列にすればいいじゃん
474:Name_Not_Found
12/01/22 17:16:48.57
メモリって1024ベースじゃなかったっけ?
475:Name_Not_Found
12/01/22 17:20:26.39
>>471
>>473,474
一つ一つに型やいろんな情報もつくしメモリ管理上大きくなる
a=(new Array(128000000+1)).join('1')
でいいんじゃないか
476:Name_Not_Found
12/01/22 17:23:35.50
>>472
できるが
10秒くらい以上処理に時間かけるとタイムアウト気にしないといけなくなってくるから
WEBSocketとか使うべし
477:Name_Not_Found
12/01/22 17:25:34.75
>>476
javascriptだけではなくphpでの処理時間、通信時間も考慮しないとならないから確かにそうですね
しかしとっても便利そうなので頑張ってみます、ありがとうございました
478:465
12/01/22 17:31:56.17
>>467
1000行2列のcsvファイルをjQueryでgetしたのを配列にして返すって関数
詳しく書くとこんな感じ
var getThousandArr = function() {
arr = [];
$.get('./filename.csv', function(data) {
var lines = data.split('\n');
$.each(lines, function(lineNo, line) {
var items = [];
items = line.split(',');
arr.push(items);
});
});
return arr;
};
479:Name_Not_Found
12/01/22 17:41:43.01
Workerについての質問です
Workerをメインから強制的に終了させるコマンドがないのはどうしてなのでしょうか?
もしWorkerが無限ループに陥ったり処理に長い時間がかかることになったら
ページの移動でしか止める術がありませんよね?
480:Name_Not_Found
12/01/22 17:43:31.66
matchを使用して文字列の一致を見てるんですが、
不一致のときって普通NULLが返って次の処理にいかないんですかね?
なぜか不一致だとそこで処理が終了してしまうのですが。
481:Name_Not_Found
12/01/22 17:45:05.23
>>478
お前それarrがグローバルやないかい
しかも非同期処理噛んどるやないかい