+ JavaScript の質問用スレッド vol.94 +
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4 のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 長い間連続して質問する場合にレス番を名前にしてあれば、質問の流れが回答者に伝わりやすくなります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は
http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。質問テンプレートを活用してみてください。
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■主要FAQ (全部は
http://fiddle.jshell.net/vSqKr/27/show/ )
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 中でやるとか。
5 :
Name_Not_Found :2012/01/01(日) 19:05:30.96 ID:B6OQDu8L
*、 *、 。*゚ *-+。・+。-*。+。* / ゚+、 ゚+、 *゚ ・゚ \ 。*゚ ∩ *。 *。 +゚ ∩ * (´・ω・`) +。 +。 ゚* (´・ω・`) と ノ *゚ *゚ ・ 。ヽ、 つ と、ノ ・゚ ・゚ +゚ * ヽ、 ⊃ ~∪ *゚ *゚ * +゚ ∪~ ☆ +′ +′ +゚ ゚+。*。・+。-*。+。*゚
>>6 ありがとう、次のテンプレでは(忘れてなければ)直すようにする。だからテンプレ論議の
ときに指摘してくれると助かるんだけどね。
スレ建て乙です 明けましておめでとう っていうかテスト
前スレ987 土吉は旧字じゃないよ。
>>10 これは失礼しました
ご指摘ありがとうございます
ここはまともになりたってるスレだよな 某CMSスレと某データベーススレはキチガイばっかりで荒れ気味なのに
人が多く集まるスレってキチガイ率が低い理由 年齢層が高いから だな
老害の声が小さいからだろ
15 :
Name_Not_Found :2012/01/02(月) 05:20:16.07 ID:lrKKk8kA
繰り返しで連番の画像を扱うことってできますか? for (var m = 0; m < 36; m+=4) { pai[m][0]=m/4+1; pai[m][1]="sou(m/4+1).gif"; pai[m+1][0]=m/4+1; pai[m+1][1]="sou(m/4+1).gif"; pai[m+2][0]=m/4+1; pai[m+2][1]="sou(m/4+1).gif"; pai[m+3][0]=m/4+1; pai[m+3][1]="sou(m/4+1).gif"; } こういう風な感じにしたいのですが、当然上手くいきません。 分かる方いらっしゃいましたら、教えてください。
pai[m][1] = "sou" + (m/4+1) + ".gif"
17 :
Name_Not_Found :2012/01/02(月) 05:42:00.72 ID:lrKKk8kA
>>16 ありがとうございました。うまくいきました。
>>17 まだ質問しないといけないレベルに達してない
まぁこっちのほうがより良い pai[m][1] = 'sou' + (m/4+1) + '.gif';
皆文字列リテラル”と’どっちメインで使ってるの? 俺は昔はhtmlの属性値に”、JSに’を使ってたがhtmlよりJSの方が 長いコードを書くようになって今では見やすい”の方をJSで使ってる htmlとJSでわけてるのはよくタグをinnerHTMLで書き出してた昔の頃の名残 少なくとも’よりは”をメインで使うべきだと思う 現実の文法的には’の方が微妙にやや正式だけど
>>20 " の方が見やすいというのはあなたの好みだよね。漏れは ' の方が見やすいと感じる。
C/C++/Java では ' は1文字のリテラルになってるし、Perl等では ' だと中身が展開
されなかったりするのでしかたなく ” を使うけど。好み以外の論点があるのならぜひ聴きたい。
ちょっとテスト x='' x="" x='abc' x="abc" 1+''+x+'abc' 1+""+x+"abc" '<a id="x">' "<a id='x'>"
>>21 ''中に""があると数学でいうと小括弧の中に中括弧があるように見えて気持ち悪い
perlの影響かもしれないけど"より'の方が固定的な感じがしてリテラル内に例えばhtml要素を埋め込む場合直感的でいい
それに''は場合によっては"みたいに潰れるし"の方がより目立つからいいだろう
""だと文字列だぞ!って感じだが''だと味気ない感じがする
キーボード的には " の方が押しやすい。
好きにしろよw
いやダメだ ここから300レスくらいかけて徹底的に議論して白黒付けないとイカン
PHPは二重引用符だと変数名が展開されるから、それに合わせてJavaScriptを単引用符で統一してる
でもJavaScriptはエスケープシーケンスを理解するから、二重引用符の方が良いかもしれないとも思う
JSONも二重引用符だし
あと
>>24 だし
"とか'を入力するのはエディタの仕事
'"'.charCodeAt() //34 "'".charCodeAt() //39
エスケープシーケンスを理解しない言語なんてあったかな? """"なんて無様なのも一応その一種だしな。
一番目のリンクを無効化するスクリプトを書きたいのですが link=document.links;link[0].disabled=true; っとやっても無効化できません リンクの場合はdisabledは効かないのですか? 無効と有効化を切り替えたいのでhrefは消したくないんですがhrefを消す以外に方法はないのですか?
link=document.links; link[0].parentNode.replaceChild(document.createTextNode("disabled"),link[0]);
>>31 document.links[0].onclick = function(){return false;}
34 :
sage :2012/01/02(月) 11:17:06.07 ID:???
>>32 無効と有効を切り替えられなくなるのでそれは厳しいです
>>33 リンクをクリックしても飛ばせないようにしたいのではなく、リンクを無効にしたいのです
リンクの文字を選択範囲してコピーしたいのでリンクを一時的にはずしたいんですがstyle要素みたいにdisabledで切り替えられないんですかね
36 :
31,35 :2012/01/02(月) 11:52:31.13 ID:???
やっぱり検索しても無理っぽいですね 無効化するときはhrefをけして 有効にするときはリンクのhrefの属性値を配列に入れて戻すしかないですね 質問を締めます
37 :
Name_Not_Found :2012/01/02(月) 12:16:47.32 ID:8EG/yFLj
1つの関数に複数のfor文を使う場合、そのループ変数を全てiにすると、 何か支障はありますか。 同一のものにした場合、うまく行くときと、うまくいかないときとがあるので 混乱しています。
>>37 ネストしてある場合は大問題だが
そうでなければ初期化をきちんとやれば通常問題ない
>>38 ageればID出る
>>37 うまくいくときのコードとうまくいかないときのコードを比較すれば自ずと答えが出てくる
>>36 リンクカーソルが邪魔ってこと?これならどうよ
document.links[0].disabled = true;
document.links[0].style.cursor = "default";
document.links[0].onclick = function(){return false;}
>41 そもそもlink.disabledは一部のブラウザでしか使えないから良くないよ
43 :
Name_Not_Found :2012/01/02(月) 12:27:56.50 ID:8EG/yFLj
>>39 ,40
ありがとうございます。勉強になります。
44 :
31,35,36 :2012/01/02(月) 12:53:27.75 ID:nkBIPfSn
始めてみようかと思うんだけど この言語って求人ある? VBはもうやったんだけど先にjavaやったほうがいいのか?
VBよりはやった方がいいんじゃね
JavaScript はそんな不純な動機で始めるもんじゃないyo!
>>44 hrefを別の適当なAttr.に変えるとか、aタグをspanタグに変えるとかでよさそう
コピペしたときのURI情報が邪魔ってことじゃないの
JavaScriptで使える非同期系のAPIって大きく分けて 昔からある O.onSuccess=successCallBack O.func() と比較的最近の O.func(successCallBack) の2つのタイプがあってややこしいんだけど統一しないのかな 個人的にはどちらも良さがあると思うんだけど
マジこのペースでどんどんAPIが増えてったら 仮にブラウザ間の仕様さが0になっても 覚えて使いこなしきれるかは微妙 そういえばWEBGLって結局どうなるの? もう他の対抗APIとかは金輪際でなくて WEBGL一本でしばらくいくことは決まったの? それなら覚えるんだけど
そこでライブラリの乱立ですよ。 そしてライブラリの使い方しか知らない人間が量産されていく…
ライブラリ使う人が困るんならまあそれは仕方ないと思うけど 5年後くらいに昔のJavaScriptはわかりやすくてよかった 今はライブラリ覚えないとやっていけないってなりそうで怖いわー
>>49 spanだと戻すとき大変だから、適当なタグ名にするのがいいんじゃないかな。
document.links[0].outerHTML = document.links[0].outerHTML.replace(/^<[aA]/, '<aback').replace(/<\/[aA]>$/, '</aback');
こんな感じかな
>>54 結局、同じロジックを何度も書くことに疲れ果てライブラリに辿り着き、皆が同じ様なコードを書く。
これはどの言語でも共通の進化の過程。
しかし、最初からライブラリに頼ってきた小わっぱ達とは地力が違う為、コーディングの姿勢に漂う大人の余裕。
いざ困難に直面しても、涙目の小わっぱを尻目に多彩なテクニックを駆使して解決策を導く職人技。
そして仕様を知り尽くした上で完璧なチューニングを施し、パフォーマンスで他を圧倒するダンディズム。
このスレの回答者なら様々な面で格の違いが滲み出る。
ただし、
>>55 は精進が必要な様だが。
今まで出てきた中では
>>45 の案がベスト
だけど正直全部微妙
>>57 透明画像かぶせたら下にあるテキストのコピペはできないんじゃないの。
bookmarkletとかで、印刷用ページみたいにしたいってことかな。
「リンクの文字を選択範囲してコピーしたい」(
>>35 )のであればcontentEditableでいいのでは
>>58 質問を良く見てなかった
一応コピペは画像の直前から引っ張ればできるが
質問者は一体何がしたいのかわからん
コピペなら別にリンク無効にしなくてもできるだろ
<a href="#">aaaaaaaaaaaaaaaaaaa@aaaaaaaaaaaaaaaaaaaaaaaaaaaaa</a> 全てをコピーする必要がないからリンクを解除したいってことだろうよ @だけをコピーしたい時にリンクついてると選択範囲しても@をコピーできないしな
いやいや本当にフツーにできるんだけど
Operaは素晴らしい
それとも俺が『選択範囲』について勘違いしてる? フツーにクリックおしっぱで動かして反転させるアレだよね? リンクだとできないなんてことありえるの?
66 :
Name_Not_Found :2012/01/02(月) 18:01:38.06 ID:rLSRaxv9
>>65 不器用なおっさんに<a>要素の一部を、リンクが発火しないように
範囲選択しろってのは難しい
UI作るときは、自分基準で考えると色々失敗することが多い気がする
>>66 例えば、Firefox でリンクの一部をマウス操作で選択してみせてくれ。
>>65 IE,Firefox,Chromeで確認したけど出来なかった
safariとoperaとか他のブラウザなら出来るの?
リンクの文字列の端から選択するなら分かるが
文字列の中を切り抜くような範囲選択はできないと思うが
つうかそれらのブラウザじゃできなかったのか 恥ずかしい今まで知らなかなかったわ… それってリンクが発火するからできないんじゃなくて仕様としてできないの?
出来るけどちょっと難しいんだよ。ぎりぎり発火しない部分から選択するんだよ。
FireFoxならF7で…マウスでは無理だけど。
スタイルでblockされてるのに出来るわけないじゃん
わかった じゃあ右クリック時にpromptでも出してコピペさせたらいいんじゃないかな それか<span>で擬似リンク作るか
(゚-゚)フムフム (゚.゚) (゚_゚)
>>69 リンクをドラッグアンドドロップしちゃうからな。
operaならプレスしたあと上下のドラッグのみそうなるけど。
>>76 落とせない所で離すとか、ESCキー押すことでキャンセルできるけど。
いやJavaScriptでイベントキャンセルできないの? HTMLでドラッグイベントできたじゃん
>>78 なるほど。
ちょいとchromeでやってみたけど、ドラッグアンドドロップは阻止できたけど、
テキスト選択できないね。
やり方がまずいのかもしれんけど。
ESCキー押して中止したと同じ状態になる感じか?
firefoxでは選択出来たけど、IEではできない
<html>
<body>
<a href="
http:// " id ="test">ほにゃらら</a>
<script type="text/javascript">
document.onload = init();
function init(){
elem = document.getElementById('test');
elem.onclick =function(){return false;}
if(elem.addEventListener) {
elem.addEventListener('mousedown', drag, false);
} else if(elem.attachEvent) {
elem.attachEvent('onmousedown', drag);
}
function drag(){elem.setAttribute('draggable', 'false');}
}
</script>
</body>
</html>
マヌケな循環参照するくらいならAlt押しながら選択しとけ
は?elem が Global になってるから問題ないがw
> Alt押しながら選択 横からだけど これどのタイミングでAlt離すの? 先にAltを離すとリンククリックになるし先にマウスのボタンを離すと名前を付けて保存になる
84 :
79 :2012/01/02(月) 23:14:51.80 ID:???
>>83 プレスしたままALTをはなして、CTRL+C、んで、リンクじゃない所で離す。
そんなブラウザ依存の話されても困るわ
88 :
79 :2012/01/02(月) 23:54:49.23 ID:???
>>80 FireFoxができるのは
> elem.setAttribute('draggable', 'false')
これのおかげか。
mousedownは殺す必要ないね。
うちのテストコード似たようなのになんでFireFoxで選択できないのか悩んでしまった。
>>89 <ul>
<li><a href="">**************</a></li>
<li><a href="">*******@******</a></li>
<li><a href="">**************</a></li>
</ul>
こーいうので @ だけ選択するとかは…出来る?
おまえらこんなどーでもいいことで楽しそうだなw
どーでもいいかどうかは自分で決める
2chの専ブラのレス番表示のように Tooltipを表示してjQueryを探しているのですが こういう質問もこのスレはOKでしょうか? 具体的には以下の動作の物を探しています。 要素Aにマウスオーバーで要素Aと接する形でツールチップを表示 →ツールチップ上にマウスが移動すれば表示継続 →要素Aとツールチップ上以外にマウスが移動すれば非表示
96 :
95 :2012/01/03(火) 07:41:28.40 ID:???
見つからなかったので自分で書こうとしたのですが、 $("#要素A").hover( function () { /* ツールチップを表示 */ }, function () { /* ツールチップを非表示 */ } ); $("#ツールチップ").hover( function () { /* ツールチップを表示 */ }, function () { /* ツールチップを非表示 */ } } と書くと「要素Aを非表示」の方が優先されツールチップが消えてしまいます。 このように2つの要素同時にhoverの状態を調べる方法がわからず断念しています。
コードは汚くなるけどフラグ立てるのが一番楽 あとは消すのは即時、表示はほんの少し遅延かければ だいたいのケースで表消の競合を避けれて綺麗に書けそう
>>89 嘘付け
それFirefoxに搭載されたモードだろうが
IEとChromeにはそういう機能はないから出来ない
リンクをドラッグしちゃうからできないってことですか?
paddingがあればできる。無ければできない。だと思う。
\0とnullの違いを教えてください
102 :
Name_Not_Found :2012/01/03(火) 12:18:00.14 ID:zSjSk4jY
質問者が置いてきぼりな件 JSスレだけでも出来る人と出来ない人がいるようなやり方を 「出来る」と言い切るのは間違ってるんじゃないかなー やっぱ<span>か何かに置き換えるのが手っ取り早い気がする function A2S(a){ /* <a>要素 */ this.a = a; /* <span>要素 */ this.span = document.createElement("span"); this.stat = 0; } A2S.prototype.Switch = function(){ /* 入れ替え元 */ var from = (this.stat == 0) ? this.a : this.span; /* 入れ替え先 */ var to = (this.stat == 0) ? this.span : this.a; from.parentNode.insertBefore(to,from); for(var i=from.childNodes.length - 1 ; i >= 0 ; i--){ var cn = from.childNodes[i]; from.removeChild(cn); to.insertBefore(cn,to.firstChild); } from.parentNode.removeChild(from); this.stat = Math.abs(this.stat - 1); } 思いつきで、餅食いながら書いたんで、ちゃんと動くかどうかわからん
Feedはどこのでもいいのですがここでは↓を使って質問させていただきます
ttp://blog.livedoor.jp/dqnplus/atom.xml Feedを提供するサイトのタイトルを取得したいのですが
var title = document.querySelector("title"); // ほとんどのサイトで1番目にヒットしたtitleがサイトのタイトルだったのでqueryselectorを利用した
console.log(title); // <title>そのサイトのタイトル</title>が表示される
console.log(title.innerText.replace('/</?title>/g','')); // ここで文字列のみ取得したいので置換してタグを消したい
とやると3行目の部分で
TypeError: Cannot call method 'replace' of undefined
というエラーが出ます
どうやってタイトルを取得したらよいでしょうか?
dojoについての質問なのですが、こちらのスレで大丈夫でしょうか?汗 dijit.layout.TabContainerにContentPaneをaddChildしたときに、ページ読込後の処理を行いたく、 dojo.connect(tempContentPane, "onDownloadEnd", function(e){ // ここで関数呼び出し }); としたら、Error: This deferred has already been resolvedというエラーが出てきました。 ただ、エラーが出ても正常に動いているようにしか見えないのです。 ブラウザは、Firefox9.1です。 よろしくお願いします。
105 :
103 :2012/01/03(火) 12:51:34.10 ID:???
すいません自己解決しました var title = document.querySelector("title"); console.log(title.textContent); で文字列だけ取れました chromeで確認取れたんですがchromeってtextContentに対応してましたっけ? firefoxだけがtextContentを使えるものだと思ってたんですがchromeのバージョンが上がってtextContentも使えるようになったんでしょうかね?
>>102 質問者は切り替えができるようにしたいらしい
もしそれがリンクをドラックもしたいという意味なら
それにドラッカブルで解決なんだが
107 :
95 :2012/01/03(火) 13:14:17.50 ID:???
>>97 レスありがとうございます。
フラグ立ててやってみたんですが、
動作するように書けませんでした…。
それに「消すのは即時、表示はほんの少し遅延」が
何故良いのかさえもわかりません…。
http://jsbin.com/alohak/ どう書けば良いかアドバイス頂けないでしょうか。
108 :
Name_Not_Found :2012/01/03(火) 14:03:34.41 ID:zSjSk4jY
>>106 A2S.Switchで切り替えのつもりで書きますた…
やろうとしていることがいまいち分からんのだけど、 ドロップダウンメニューのロジックとどう違うんだ。
>108 hrefも書き換えたくないくらいだからそれはダメなんじゃないかな
特定の条件発生時に音でブザーを発生させたいのですが 方法としては色々とあるのですが 音楽を流すのではなく、何回も呼び出すときはHTML5を使って呼び出すのが一番良いのでしょうか?
ブザーなのか音楽なのか
画面を左クリックするたびにブッブー!とブザーが鳴るような感じです 連打したらブブッブブブブッブーという感じに
何種類あるかによる
普通のAudioAPIはそういう場合レスポンス良くないからそれ以外のAPI使いなさい あとモバイルは常に無音を流してないとスピーカーが切れてレスポンス悪くなるから注意
64bit osだとtime()やDate()で2038年以降の時間を扱えるのですか? この理由で次買うPCで32bitか64bitで迷ってます
いや、そんなことに関係なく 64 ビット買えしw
64bitだと何か不都合あるっていうじゃないですか
昔の16bitアプリが動かんのは困るから、当分64bitは買わない
何bitだろうとJavaScriptには関係ありません
>>119 そもそも普通の環境では全然速くもないしな
innerHTMLとDOMどっちが早いですか?
>>122 アルゴリズムによる
例えば沢山create、appendって関数呼び出してたら
innerHTMLの方がよっぽど速くなる
+=だとappend メンドイから超めちゃくちゃなコード書くけど for(i++ iを100まで){ ほにゃらら.innerHTML += i } ってやると 1回目は1、2回目は12、3回目は123って描写「しなおす」 appendだと1回目は1を追加、2回目は2を追加って追加するだけ
>>122 プロファイラで計測してみれ
あとreflowやredrawをキーワードに含めて検索かける
描写と言ってもDOMを保持してる内部的な文字列が更新されるだけだから 実際コストはかなり少ないよ
>>124 ここまで酷く、解り易いコードはじめて見た
128 :
122 :2012/01/03(火) 17:36:23.44 ID:???
>>125 今から作業してみます検証用コードを後ではります
chromeのjavascriptコンソールではどうやって計測するのでしょうか?
129 :
Name_Not_Found :2012/01/03(火) 17:39:56.97 ID:xpm/fFEb
if(document.hantei.1.checked) { alert(document.hantei.1.value); } formのname="hantei"のなかにあるinputのname="1"が選択されていたら そのvalueをアラートしたいと思い書いたのですが、上手くいきません。 ここに1時間かかっていて禿げそうです。。
inputの中身を送るときはnameがいいが Javascriptで取得する時はidにしとけ。マジで
>122,124 これだとinnerHTMLの方が10倍速い var t=+new Date; var df=document.createDocumentFragment(); var bi=document.body.innerHTML; for(var i=0;i<10000;i++){ bi+=i; //df.appendChild(document.createTextNode(i)); } t=+new Date-t; alert(t/1000+"[s]");
お前グローバル変数ハゲ散らかしてそうだな
>>131 何かコードがスッキリしてなくてキンタマがムズムズする
こうやればスッキリするんじゃね? var t=+new Date,df=document.createDocumentFragment(),bi=document.body.innerHTML; for(var i=0;i<10000;i++){bi+=i;/*df.appendChild(document.createTextNode(i));*/} t=+new Date-t;alert(t/1000+"[s]");
>>131 結果はあまり変わらないけど、biをinnerHTMLに反映するのを忘れてるぞ。
// 時間計測 console.time("test"); console.timeEnd("test"); // プロファイラ使用 console.profile("test"); console.profileEnd("test"); "test"はラベル
>>136 忘れてないよ
一万規模の可変のループに比べたら誤差みたいなものだし
2ヶ所コメントつけ外しするの面倒でしょう
同じ理由でdfも反映させてない
>>139 あのコードがやってるのはただの文字列連結だよ。それをDOMに渡さないといけない。
結果の差が誤差であることは分かるが、テストする上で絶対に省いてはいけない箇所。
createElement createDocumentFragment innerHTML の3つで検証したほうがいい系? データ数が少ない場合と多い場合の平均を計測したほうがいい系?
>140なんのテストだよ 作る方は時間かかるしこのくらいの差や比があるって調べるのには意義があるけど タグたくさん使ったりしてる時でもないこの場合APPENDのそれを調べても全く意義ないだろ そこまで細かな調査結果が欲しいんなら自分で調べてブログの記事にでもしろよ
appendChildと純粋な文字列連結を比べて、10倍速い!と言われてもな このテストではDOMへの反映まで含めないとダメだろう 結果は同じだろうけどもう一度書き直しだな┐(´-`)┌
ループ中にdocumentにアクセスするようなコードを書く時点で ドシロウトだとわかる
>>141 そもそもそれらは場合によって使い分けるもので
比較したりするものでもないんじゃないかな?
それぞれ向き不向きがあると思うよ
>>142 まあまあ落ち着いて
>>131 が何と何を比較してるのかよくわからない
シリアライズした文字列をalertするならappendChild出てこないよ
>>131 は連結した文字列に対して createTextNode するのが自然な発想だと思うが
テキストノードを分割するメリットって何かある?
>>144 じゃあどうすればいい?その点に関してはあのコードで問題ないと思うよ。
あーわかったわかった ほら書き直したぞ、まだ不満か? 結果は10000回でinnerHTMLの方が16倍速い圧勝でした var d=document; var t=+new Date; //var bi=d.body.innerHTML; var df=d.createDocumentFragment(); for(var i=0;i<10000;i++){ //bi+=i; df.appendChild(d.createTextNode(i)); } //d.body.innerHTML=bi; d.body.appendChild(df); t=+new Date-t; alert(t/1000+"[s]");
>>148 スコープチェーンが全然違うコードを比較して問題ないと申すか
>>149 そりゃループ中に appendChild していたら遅くなるだろ
d.body.appendChild(d.createTextNode(bi)); と比較しろよ
>147 俺も馬鹿げたコードだと思うが>124に対抗してるだけ >150 これ以上短くするとTypeErrorになる
>>101 \0はNUL文字、エルは1つ。
nullは無効なオブジェクト、エルは2つ。
それなら1個のTextのdataへの代入と比較するのが筋だろうよ HTMLタグ解析全然やってないんだからな 比較条件が全然違うのを平気でやらかしてるのは、結局 お前自身が普段どういうコードを書いてるかを晒してるに過ぎん
var test1 = function(root, num) { var doc = document; var fragment = doc.createDocumentFragment(); for (var i = 0; i < num; i++) { fragment.appendChild(doc.createTextNode(i)); } root.appendChild(fragment); return root; }; var test2 = function(root, num) { var innerHTML = root.innerHTML; for (var i = 0; i < num; i++) { innerHTML += i; } root.innerHTML = innerHTML; return root; }; var num = 10000; var elm = document.body; // bodyに適当にHTML書いとく console.time(1); var r1 = test1(elm.cloneNode(true), num); console.timeEnd(1); console.time(2); var r2 = test2(elm.cloneNode(true), num); console.timeEnd(2); console.log(r1.innerHTML === r2.innerHTML); // 両者の結果が等しいことを確かめる
くっそ おまえら俺をとことん馬鹿にしやがって 今日のところは引き分けで許しといてやろう お! ぼ! え! と! け! よ! >151,152 もう疲れた よかったら続きはおまえらがコード書いて俺に見せてくれ >155 カッコつけんなよ爺さん 俺よりクールなコードを書けるんなら口先だけじゃなくて書いて見せてみろよ
157が一人前になるには何年かかるやら。。
>>158 うるせー中途半端に褒めるんじゃねーよ
無駄になげえコード書くんじゃねえ見づらいだろうが
コードは1文字でも短い方が良いんだよ
パット一目見て頭に入るクールなコードを書くのが男ってもんよ
>>156 お前もさあ、DOM構造が全然違うってのに気付けよ
>>161 書き方勉強させるのに内容まで変えたら爆発しちゃうだろw同じであることが大切なんだよ。
こりゃなんか俺のせいで荒れてきちまったな すまん!みんな許してくれ そして俺はいくら弄ってもいいから俺に免じてみんな仲良くしてくれ! 頼む!!!
>>163 >>131 は「一つ一つDOMで追加していく」と「innerHTMLに追加していく」を比べるんじゃないのか。
目的だけ見てしまってその過程を最適化したらテストにならないと思う。
>>164 だったら詫びとして次のお題を出せ!
お前の本気はこんなもんじゃないだろ!
>>165 >>122 ,124に対するレスだからinnerHTMLとappendChildを比較していると読んだが、違うのか
一方だけループ中の処理にすれば遅くなるのは当たり前すぎる
>>165 ならinnerHTMLもループ中に追加しなければならん
かつテキストノードを分割するようにな
比較条件が全然違うのにテストとかアホか
俺は>124を懲らしめたかっただけなのに 逆にみんなから懲らしめられるとは……
まとめると、innerHTMLは極端に遅くなるようにも書けるし、(条件次第で)DOMより速くなるようにも書ける。 使うケースと書き方次第で結果が全然違うから、一般的にどっちが速いとはいえない。
insertAdjacentHTML使えよ
>>165 それならこういう比較になるべきじゃないの
for (var i=0; i < 10000; i++) { d.body.innerHTML += i; } // 逐次処理
for (var i=0; i < 10000; i++) { bi += i; }
d.body.innerHTML += bi; // innerHTMLで一括処理
一括処理だけinnerHTMLにして逐次処理はappendChildにするテストに意味がない
>>172 最初の目的は
>>122 でしょ
innerHTMLとDOM(appendChild含む)のパフォーマンス比較
>>131 はループ中のappendChildとループ後のinnerHTMLを比較しているから無意味
公平に比較するなら「ループ中のappendChildとループ中のinnerHTML」か
>>163 の形
APIの機能差をテストするつもりで プログラマの能力差をテストしているという罠
API(笑)
>>177 順番を入れ替えるだけで結果が変わるよ…
マジでプログラマーの能力測るのにちょうどいい話題だな
180 :
124 :2012/01/03(火) 20:30:12.74 ID:???
お昼寝して起きたらなんか進んでてワロタw ごめんごめん、俺はinnnerHTMLとappendの違いを説明したかっただけや
insertAdjacentHTMLは?
>180 俺こそ一人で騒いですまんかった innerHTMLが冒涜されたと勝手に思って 過去のトラウマを思い出してつい切れてしまった すまんかった…
すいません <div> <div class="a10"></div> <div class="a5"></div> <div class="a2"></div> <div class="a9"></div> <div class="a1"></div> <div class="a8"></div> <div class="a4"></div> <div class="a3"></div> <div class="a7"></div> <div class="a6"></div> </div> このように並んである要素をソートしてa1〜a10に整列させる良い方法を伝授してください
>>183 document.querySelector('.a1'); から順番に appendChild していく
他に class="a1" があったら破綻するから工夫して
試してないけどこんな感じ BIGDIV.childNodes.sort(function (a,b){ return b.firstChild.className.match(/\d/)-a.firstChild.className.match(/\d/); })
idだと出来るが、classだとわかんねぇな ソートしたいやつにclass="a10 hoge" ってやってくれればやりやすいが
Node-Listを直接ソートするって大胆すぎ var div = $("div:first"); // <div> jQuery var inner = Array.prototype.slice.call(div[0].childNodes); // <div.a1>....<adiv.aN> inner.sort(function(a, b) { return b.className.replace(/[^\d]/,"") - a.className.replace(/[^\d]/,""); }); for(var i = 0; i < inner.length; i++) { div.append(inner[i]); }
>>184 それが一番いいと思いますがそれができないのです
NodeListは配列と違って破壊的でないのにsort使う意味あるのかな
効率が悪すぎると思うが
>>190 なぜ出来ないのか考えてから質問して欲しい
あと出来ないコードをjsfiddleにUP
出来ないのはそういう風に利用するAPIが吐くから質問させていただきました
お前らほんとーにおっせーコードしか書けんのなあ
>>192 制限があるならその制限事項を全て出して
あとjsfiddleにUP
>>183 に書いた要素をソートしたいだけで別の方法を模索したいわけではないのですよ
>>183 classということは他にもclass="a1"があるんだよね
この状況でどうやって要素を特定しようとしてる?
親要素にidでも振ってあるなら話はわかるけどスマートな方法は今のところない
あと、APIが吐くじゃあどのような制限があるか全く伝わらない
「遅いはずだ」とか、「メモリリークするかも」とかって実際に起きてるわけでもなく、想像で話すとロクなことにならない。 体感的に遅かったら高速化すればいいし、メモリリークしたら直せば良い。 想像で議論してもまともな結論がでるはずもなく、無駄でしかない。他にやることがあるだろ。 あと、(不毛な)議論自体がしたいヤツがいるから、そういうのはスルーするしかないね。
>>189 childNode だとテキストノードもまじってくる。それの対処を。
あと、IEだとArray.prototype.slice.call(Nodeリスト)がつかえないんだよね。
jQueryつかってるんだから、$.makeArrayがいいとおもう。IE無視ならそのままでOK。
んで、それ直したらいけたよ。
まあ、逆順になったけどな。
200 :
191 :2012/01/04(水) 00:48:35.75 ID:???
>>198 遅い原理を説明できるなら説明してから指摘して欲しいと思う。
ただ単純に「遅い」といわれても検証する気にもなれないんだよね。
代替案を掲示してもらえれば印象も変わると思うんだけど。
メモリリーク系の指摘は割とまとも(間違ってない)なことが多い気がする。
表現が乱暴すぎる事も多いけどね。結局は指摘の仕方に尽きると思う。
で?
メモリーリークの話は、今ここでその話しなくて良いじゃろって感じだな。正しくても。 質問者は解決策を求めてるんであって、出てくるコードそのままコピペして使うんじゃないだろうし。 たぶん。
>>200 先にソートしたのを用意するのはずるくね? w
任意のclass名だったとしても、事前に抽出してclass名の配列をつくって
(質問者の好みの順序で)ソートしてやればいいからいいんだけれど。
206 :
191 :2012/01/04(水) 01:44:43.88 ID:???
>>205 class名のパースまで手を付けると"hoge1"と"a1"の区別がつかないんじゃないか?
要求仕様は勝手に想像で書いてるが、質問者はそこまでの汎用性を求めていないように受け取れた
208 :
191 :2012/01/04(水) 01:59:49.91 ID:???
209 :
191 :2012/01/04(水) 02:13:55.15 ID:???
>>207 細かい指摘で申し訳ないが、"a1"が2つあったらどうする?
>>208 は「10個の要素があるとき class="a1" 〜 class="a10" の要素が一つずつある」が前提だが、
>>207 は「10個の要素があるとき class="a\d+" の重複しない要素が一つずつある」が前提となる
汎用性をどこまで広げるかでスタンスが変わるんだろうな…
汎用性だけを求めるならArray#sortのようなメソッドをNodeListにも作るのが一番いいんだろうが、おそらく速度が犠牲になる
単に子をクラス名でソートしたいだけじゃね
213 :
191 :2012/01/04(水) 03:11:19.19 ID:???
>>198 お前、書くとき計算量を概算せーへんの?
効率悪そうやなー
>>215 そりゃ、計算量を概算できるならやるよ。それは想像じゃなくて計算なんだから。
実際の話と仮定の話は明確に区別しましょうってこと
ソートの比較関数が何回呼ばれるかは事前に分かるやん アルゴリズムの問題なんだから でだ、どの実装もDOMアクセスがそんなに速くないから 比較関数におけるDOMアクセス回数が足を引っ張るのは想定内 それを体感云々でゴマカすのは、ちょっとしょっぺーな
>>216 横から失礼するが、仮定の話は誰もしていなかったと思う
どのレスを指していたんだ?
そろそろ、Good Partsみたいな小手先のテクニックじゃなく 計算量を調べる手段としてのアルゴリズムの話と 計算の妥当性を調べる手段としてのデータ型(クロージャーもデータ型の一種)の話を JavaScriptを題材に書く人が現れるべき
>>200 すまんすまん語弊があったな
せっかくあるんだからsortがかわいそうだから使ってあげたら?
って意味で言ったんだ
ただの提案のつもりだ
は?
∧l二|ヘ (・ω・ ) おいらをどこかのスレに送るんよ ./ ̄ ̄ ̄ハ お別れの時にはお土産を持たせるんよ | 福 | | | 袋 | |,,,....  ̄ ̄ ̄ ̄ 現在の所持品:シュールストレミング、メダルの器ウヴァさん、童貞、ガイアが俺にもっと輝けと囁いている拝聴券、 PGジュアッグ、ROBOT魂カルバリーテンプルヘルミーネ、ヌカランチャー、ウェンディーズバーガー倍額クーポン ザクレロ、パイルバンカー、魔法少女
このスレにもきたか つjQuery
>>115 > あとモバイルは常に無音を流してないとスピーカーが切れてレスポンス悪くなるから注意
majika
maji
>>217 >>218 えーと、たかが10個の要素を並べ替えるのに計算量とか考えるんですか?
勝手に数百個の要素を並べ替える話だと想像してませんか?
あと、どちらかというと
>>198 はinnerHTMLが速い遅いとかって話題に対しての発言ね
もし数百個もの要素ならスペックが低い環境に配慮して非同期にしないといかん
最近はデジカメでもWEB見れるからなw これからHTMLは対応環境や機種の差がどんどん 広がっていくんだからIE6とか言ってる場合じゃないぞ
初心者ですみません。
とあるサイトのブックマークレートなんですが、これを新規ウィンドウで実行させる場合ってどうしたらいいでしょうか?
javascript:(
function(){
var e=document.createElement('script');
e.src='
http://nicosound.anyap.info/js/public/conv.js? '+(parseInt(new Date().getTime()));
e.type='text/javascript'; e.setAttribute('charset', 'shift_jis');
document.body.appendChild(e)})()
そのとあるサイト上で実行しないと意味のないブックマークレットなんじゃないの?
そうなんですが認識した上で結果を新規タブ出やろうと思ってるんです。 色々調べてはいるんですがwindows.openとはまた違いますよね。
HTMLがないからできないんだろう document.writeで書き出せ
>>228 なんでよりによって非同期にするんだよ…
DOMは再描画が重いから、描画の回数を減らすのが高速化の基本
そのケースだったら、要素をページから切り離して、ソート済みの要素を一度で入れ直すようにすればいい
>>232 windows.openだけど貼られたコードじゃなく
貼られたコードのsrcで読み込んでいるファイルの中身を書き換えないといけない
>>235 なるほど、やはり中身書き換えないとダメなんですね。
ちょっといじってみます。ありがとうございました。
>>234 固まるより時間がかかった方がマシ
固まるのは大タブー
別に1回1回にわけなくても
計算と貼付けを分けるとか
それぞれをいくつかに分割するとかすべき
お前ら一日に何回もめてるんだよ ここは質問スレ、議論なら他所でやれ
ただのDOMを一番最後にbodyでappendChildする事ってできませんか? 描画を一番最後にforで回して入れたいのですがSyntaxError: Unexpected token ;がでてできませんでした var div = []; var body = document.body; for(var i=0; i<5; i++) { div[i] = document.createElement("div"); div[i].appendChild(document.createTextNode(i.toString()); } // このへんに関係ないいろいろな処理 for (var i=0; i<div.length; i++) { body.appendChild(div[i]); }
> div[i].appendChild(document.createTextNode(i.toString()); 閉じ括弧がひとつ足りない エラーメッセージに行番号とか出てないの?
やべぇwwwwww入力ミスだったのかwwwうはwwwwww 行番号がどこにも表示されなかったんです
皆ってJS打つときってEclipseなの?
俺はTerapadとMeryとサクラエディタを用途によって使い分けている メインは勿論Terapad Meryは色分け表示用 サクラエディタは正規表現の置換用
>>242 ある程度の規模になったらIDEは必須だね。
WebMatrixとEmEditor使ってるのははきっと俺だけか・・・
○○使ってるの俺だけだわ〜!かぁーっ!俺だけだわ〜!
vimとfirebugでしこしこしてる
秀丸で保存するとChromeのコンソールに反映されるパイプマクロをかまして開発してる
parent windowがあるかどうかをみればいいんじゃない
煽りのつもりでなく、実際、Terapad てどんなとこが良いの? エディタスレで、そこそこ人気あるみたいだけど。 何度か使ってみた感じ、特に何の特徴もないエディタに思えたし。
テキストエディタはホント人それぞれだから、慣れもあるし 人気があるからって万人にマッチすることはないから、 わからなかったら他当たればいいよ あと、カスタマイズ次第で化けるのもたくさんあるしね 俺はMacのmiが一番しっくりくる
俺はメモ帳で分割して何千行も書いてる いいエディタがあったら使いたいとも思うが 出先でPHSとか使ったりいろんな環境で書くから 結局メモ帳で慣れておくのがベスト
良いのがなけりゃあ作ればいいじゃん JavaScriptで
まあエディタがなきゃまともに書けない奴は ライブラリのそれと一緒で実力もたかが知れるわ 今だにalertでデバッグしてる俺を敬え
>>251 デザインがいいから書きたくなる
他のエディタは見た目がダサいのでコード書く気になれない
あと、今や貧乏くさいやりかただけど HTML、CSS、JS関連の主だったワードはIMEに登録してある コーディングしたあとメールで「ちぇっくして」て変換すると 「<input type="checkbox" name="" value="">して」になっちゃう
258 :
Name_Not_Found :2012/01/04(水) 13:55:25.82 ID:H2MMPJPQ
オレも不具合でたらalert使ったり、tex歴ながいから /*%%ここまでOK %%%%%%%%%%%%%%%%%%%%%%*?とか%使ってやってる。 テディタはterapad使ってる。テラって厨二っぽい名前がお気に入り。
サクラエディタは文字が小さいし画面の色が肌色っぽくて汚れてて気持ち悪いしツールバーがごちゃごちゃしすぎてうざい
サクラエディタ使ってるけど自分でカスタマイズしないといけないのが少々面倒 デフォルトで便利に使えるのはやっぱりEclips?
ドザばっかか
>>258 寺田さんの「寺」だけどねw
Tera Term と同じ。
>>259 色なんか変えられるし、1つ設定すればエクスポートして、他にインポートするだけじゃん。
まして文字サイズなんて。
別に勧めるわけじゃなく、単なるツッコミとして。
263 :
Name_Not_Found :2012/01/04(水) 14:07:26.29 ID:H2MMPJPQ
前にここに書いたのですが、jQueryの$関数ってドル関数って読みで いいのですか?
サクラエディタならjscriptでマクロ作れる
質問内容が「$をなんて読むか」なら ドルでもダラーでも好きに読めばいいんでないの 別にJavascriptの話でもjQueryの話でもなくね
んなもん手打ちでやれwww
>>251 軽い
ただUnicodeが化けるから使っちゃダメ
Terapad使うならMery
270 :
95 :2012/01/04(水) 14:31:56.03 ID:???
>>109 そういえばドロップダウンメニューの動作と同じですね、気付きませんでした。
そちらのソースを探してみます。
>>257 ZenCodingつかえよ
inputって打ってタブ押せば<input type="" />に展開される
これ以上はHTMLだからスレチ
>>261 Macのmiは結構良いと思うよ JavaScriptも色分け表示してくれるし
TiMidity++用のcfgファイルを色分け表示できるようにカスタマイズしたり便利だったわ
miってマクロも実装してない中途半端じゃん それにMacならBBEditが定番だろう
JavaScriptでマクロってどんなときに使うと便利なん? PCのマクロという機能自体を一度も使ったことがないから少し興味がある
aって打つとalert();に変換されてカーソルがカッコ内に入るとか 波括弧を挿入してカーソルを波括弧の中にもってくるとか タイプ数が減るから便利
マクロじゃなくて入力補完?
278 :
Name_Not_Found :2012/01/04(水) 16:52:19.82 ID:H2MMPJPQ
alertとか、functionとかは暗記して、タッチタイピングできるから ささっと打ち込んで、タイプ数とかはどうーでもいい。なんでも 覚えたらokって思ってるゆとり世代のオレ。 結局、どんなプログラム作るかで悩むよな。プログラムはアイデアじゃね?
ID:H2MMPJPQ
サクラエディタの唯一の不満は、UTF-8 を直ぐに Shift_JIS に誤判定すること。 そして一度誤判定するとなかなか認識し直さない。
エディタのマクロって自動処理じゃなくて呼び出すのがほとんどじゃないの? キー入力を監視して自動処理するのもあるんだ 知らなかったよごめん
>>282 例えば
Shift+1を押すとマクロ1を実行する
Shift+2を押すとマクロ2を実行する
こういうことですよ
勿論監視して自動処理するマクロもある
> 勿論監視して自動処理するマクロもある そのエディタ+マクロ教えて 乗り換え検討する
>>284 ただし、俺がさっき書いたような波括弧とかのは公式ライブラリにはない
というかマクロで簡単に実装できるのでライブラリに上げるほどのものでもない
>>287 そんなdll使わなくても標準機能で用意されている
これ以上はエディタの話になるので秀丸スレでどうぞ
すいません先生がた助けてください var t = "1:10:30"; // h:i:s var d = new Date(); この2行は絶対変えないでください 変数dにtの時間をセットしたいんですが d.setTime(ああああ); ↑ああああの部分は秒で渡さないとだめじゃないですか d.setTime(t);ってやるとNaNになります どうしたら時間をセットできますか?
年月日はどうした? 時間だけじゃいつの時間かわからんぞ new Date("2012/1/4 1:10:30");
実行した日の年月日を入れたいんです。 そこでd = new Date();って書いて年月日と時間を入れました。 そして時間だけ特定の時刻にしたいんです。
>>291 var t = "1:10:30"; // h:i:s
var d = new Date();
var parts = t.split(':');
d.setHours(+parts[0]);
d.setMinutes(+parts[1]);
d.setSeconds(+parts[2]);
こんな感じじゃね t2=t.split(":") d.setHours(t2[0]) d.setMinutes(t2[1]) d.setSeconds(t2[2])
こうが完璧 var d = new Date(); var d = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 1, 10, 30);
かぶった
294は289読め
文字列を数値化
意味はない単に気持ち的なものだな
var m = t.match(/\d+/g); if (m && m[2]) d.setHours(m[0], m[1], m[2]); setHoursには引数を三つ渡せる。
>>300 みたいに問題が決まってるのに変に冗長過ぎるのも
何がしたいのかわかりにくくなってだめだと思うの
お互いのコードの批評ばっかして質問者を取り残してんじゃねーよ
304 :
303 :2012/01/04(水) 18:37:42.44 ID:???
それに単に、1:10:30 きっかりにコードを実行すれば済む話じゃねーか
できるわけねえだろks
308 :
Name_Not_Found :2012/01/04(水) 18:49:18.23 ID:2FIVbJ0P
>>307 なんだお前
そういうことして楽しいんかオイ
プw
なりすましだか本物だか知らないけど、低俗な言葉遣いは無用なトラブルしか生まないよ? 言葉には気をつけた方がいい
311 :
303 :2012/01/04(水) 18:52:51.23 ID:2FIVbJ0P
とりあえず今日はもう書き込みません
質問者は取り残されるどころか結局
>>303 のせいで吹き飛ばされたなw
onclickとonmousedownは何が違いますか?
元々異なるものを取り上げて、何故その様な疑問を抱いたのかと。
ググればすぐわかるようなことを聞くな
なんか同じ奴が特徴変えながら書いてるな……
荒れ始めると質問して放置する人がいる気がしてる
クリック→↓↑ ダウン→↓ アップ→↑ これ
>>318 ああ!
何となくわかりました
ありがとうございます
左クリックをどーやって→にやるんだ?
荒らしはそこらへんにしとけよ
>>303 とか
>>322 みたいなのが荒れるきっかけになりやすいんだけどな。
「はい、分かりました」なんてなる訳ないんだから。
自演乙
旅行会社じゃね?
それしかないんじゃね
No news is good news.
新しいニュースは良いニュースです。
『便りがないのは良い便り』じゃなかった?
そうなんだよ
Google先生ダメだな
しかし世間じゃGoogleはSNSに失敗したりして落ち気味とか言われてるけど 裏では着々と独占進めてるよなぁ GoogleAPIのグラフツール2011で本当に色々な所で見かけるようになった
そのうち有料化するでw
Googleに限って有料化はないだろう
jQuery UIIとかgoogle.loadみたいなので読み込めるけどアレって著作権どーんってんの?
>>337 それが独占の怖い所だ
無料無料で「有料化する事は無いだろう」と誰もが思いながら『それに頼らざるを得ない環境』になっていき
その状態を見計らって有料化
なんだかヤクの売人みたいだけど本当に有り得るから頭の隅に置く程度でいいから気をつけておいた方が良い
言われてみりゃそういや最近だとchromeに広告入れようって計らいがあるらしいなGoogle。 おろそしあ・・
プログラム組むにしても google は必然的なパートナーだな。 俺の場合メールとかライブラリも使ってるからもっと依存してるけど。
唐突にスレ違いな話をはじめるヤツがいて、質問者も話題が変わってると事後報告しなくてもいいかって感じになったりするんじゃない しかも、持ちだしてくる話題が確信犯っぽくて過ぎて気持ち悪いぜ
ここ最近スレ違いなgoogleネタ振ってくるのは確かに
質問の後に毎回荒れるよなw最近
translateのAPIは有料化になったが。
347 :
Name_Not_Found :2012/01/04(水) 21:44:13.22 ID:ClvDiMcA
>347 i使う表記のときは原則十の位0埋めだから間違ってる
349 :
Name_Not_Found :2012/01/04(水) 22:07:07.08 ID:ClvDiMcA
>>348 あれ、ゼロ詰めじゃなかったっけ?
それによく考えたらhは01〜12だよね
メモ帳とブラウザだけで始められる手軽にjavascrptだが、 滅茶苦茶奥が深いな。 c言語、php、perl、mysql等は開発環境作るだけでも一苦労だよな。 逆に、この手軽に始められるとこが、javascriptが「文字の色変える 程度のプログラム(笑)」って認識になったんだろうなっと思う。
>>350 他の言語と大して変わらんよ。手軽さとのギャップがあるかもしれないけど。
>>350 ブラウザでやるのはHTML5でjavascriptじゃないし、
昔は間違いなく誰からも忌避される糞言語だったよ
それはJavaScriptの言語仕様を勉強もせずにただ偏見持ってただけでしょ。今も昔も言語の コア部分はほとんど変わってないんだけどね。
Ajax、HTML5、その他ライブラリ等 これらJavascriptで一くくりにしてるけど違うのか?
AjaxもHTML5もライブラリもJavaScriptと関係はあるにしてもJavaScript言語そのもの ではないよね。テンプレにある言語仕様の資料を見れば分かると思うけど。
<script type="text/javascript"> </script> この中に書かれてるものは誰がなんと言おうとJavascriptだと認識してる だってscriptのtypeがjavascriptじゃん
今年はhtml5+javascriptでゲーム作成の勉強を始めるか、 androidのアプリ作成の勉強を始めるかを 悩んでいるんだが、どっちがいいですかね?
<script type="text/javascript"> <?php echo 1; ?> </script>
html5は今年の上半期で結構変わると思うからまだまだこれからの分野 正直ゲームは『flashモドキ』がせいぜい
>>353 勉強するような言語仕様ができてからの話じゃないよ
jsって黎明期は、通信速度が遅すぎて、送信するデータのチャックをいち いちサーバプログラムでやってられないから、ブラウザ側でやるのに 開発された言語ってハイパフォーマンスjavascriptに載ってた。 現在の非同期通信にjavascritpを使うって当時からしたら想像 できなかっただろうな。
昔、糞だった話なんかしてもしょうがないね。 JavaScriptに速いコーディングを求められるような時代になったわけだし。
>>350 CとかVBとかいかにもプログラミングって感じのしたかったのに
「お前はjsから始めろ」って言ってきた中学の先輩に今では感謝してるよ
コレは俺の持論なんだが サーバーで処理(textファイルを読み込んでHTML表示とか)させるとどーしてもサーバー側の処理が増えるから そういうのはもう非同期通信でtext読み込ませてクライアント側で処理させてる モチロン全部が全部クライアント側でやってたら動作が重くなるからその辺りはバランスだが
jslintは嫌いです。
Netscape 1.1あたりに載ってたJavaScript 1.0でも今とそうは違わない。 言語そのものもはね。変わったのはブラウザの機能とかライブラリとかでしょ。
html5で一くくりだとjsをまったく使わない人も含まれるからちょっと違う
$.ajax({ url: 'hogehoge.php', type: 'POST', data: 'hogeId=abc', ※値"abc"は実際は変数で、押したボタン(呼出し元)によって値が変わる timeout: 30000, error: function(xhr, ajaxOptions, thrownError){ }, success: function(xml){ } }); といったかんじでPOSTした後、 エラー処理内でPOST時のデータ(hogeId)を参照することはできないでしょうか? アプリサーバからエラーコードを返すケースであれば、 レスポンスのxmlでhogeIdを渡せると思いますが、 例えばタイムアウトとなった場合やProxy等でエラーが返された場合にどのように取得したらよいか・・・
>>352 > ブラウザでやるのはHTML5でjavascriptじゃないし、
恥晒しだからもう止めとけ
>>370 var hogeId = 10;
$.ajax({
url: 'hogehoge.php',
type: 'POST',
data: 'hogeId=abc',$.ajax({
url: 'hogehoge.php',
type: 'POST',
data: 'hogeId='+hogeId, ※値"abc"は実際は変数で、押したボタン(呼出し元)によって値が変わる
timeout: 30000,
error: function(xhr, ajaxOptions, thrownError){ },
success: function(xml){ }
}); ※値"abc"は実際は変数で、押したボタン(呼出し元)によって値が変わる
timeout: 30000,
error: function(xhr, ajaxOptions, thrownError){
console.log(hogeId);
},
success: function(xml){ }
});
こんな感じで使えるよ
クロージャ勉強すると良い
>>372 あざーっす!クロージャ!神キーワードきたああああ!!!
さっとググッてみたかんじですと、
下記コード(以下、関数A)だと、
error: function(xhr, ajaxOptions, thrownError){ 略 },
行でエラー処理の関数(以下、関数B)が定義された時点で、
この関数B内から参照できるhogeId変数のインスタンスは決まる。
つまり、
ボタン連打とかで同時にいろんなhogeIdで関数Aが呼ばれまくっても、
関数Bは正しく自分が定義されたときのhogeIdを参照できる。
と理解したんですがOKですか?
function procButtonClicked(param){
var hogeId = param;
$.ajax({
url: 'hogehoge.php',
type: 'POST',
data: 'hogeId='+hogeId,
timeout: 30000,
error: function(xhr, ajaxOptions, thrownError){ console.log(hogeId); },
success: function(xml){ }
});
}
ok
HTML5JSCSSって書くの面倒だから 広義のHTML5にはそれらが入ってるっていう常識でしょ
必要技能Javascriptって募集してもjQueryすら使えないのたくさん来るのがどーしてもねー
>>376 どこで募集してますか?
どこで見たらこういう仕事の求人を見れますか?
毎日フロムエーは見てますがこういう求人全然ないですね
生JSなら得意ですがjQueryは知らん
プログラマーの求人募集サイトとか見てみれば? 必要技能:フォトショとかはあるけど
必要技能JavascriptでjQueryが使えるのが当然ってアホな雇用者だな
jQueryってもう大学でも教えてんぞ 院じゃなくて
ウェブ制作の募集ならjqueryは必須だよね。
面接が何の為にあるのか考えろ 知ってて当然ではない、それについての知識がある奴が来ないなら募集要項に書いとけ
しかしJavascriptって中途半端なキャメルケースだな
え?大学でjquery習ってる時代なの? もう若い人に抜かされそうで怖い
jQueryに抜かすも抜かさないもなくね・・・コードを読み解くとかそっちのほう?教わるって
>>384 JavascripTこうですか?わかりません><
jQueryから始めるような奴は、その中身がJavaScriptだということを知らない奴が多いよ
>>385 年齢関係なく伸びる奴は伸びる
入り口は何でもいいと思う。その後が大切。
>年齢関係なく伸びる奴は伸びる あまい。 頭皮がカッチカチになりかけの俺にそんな言葉は通用しない。
お前は伸びない奴なだけだろ
>>390 信じて頭皮のマッサージをするんだ。
毎日怠るな!
いいんだ、もう。 戦い始めて 4年になるが、疲れたよパトラッシュ・・・
attrは何て読むの?
アタタァって頭の中で再生してる
読むときはそのまま。attributeの略ね。
完全に非同期通信してチャットを作りたいんですがこれってnode.js使わないでもjavascriptでやる方法ないですか?
node.jsじゃないサーバーサイドJavaScript探してるってこと?
サーバサイドは何もしないでクライアントサイドで動くものが欲しいです
node.jsってプッシュだっけ? なんでnode.js使わないのか教えてくれ、根本的にはnode.jsと同じになりそうだから クライアント側のjavascriptだけでやるってことか? Ajaxみたいにこっちからアクセスするだけで、プッシュはされないみたいな
402 :
Name_Not_Found :2012/01/05(木) 19:10:57.18 ID:OnAVuI4G
>>385 自分は専門学校の一般教養でweb全般教えてて
JSも、そういうのがあるんだよと触れる程度なんであれだが
ピュアJSでイチからやらせる時間も余裕も無いのでjQuery使わせてる
ホントはオブジェクトとプロパティが云々、ってじっくりやりたいんだけど時間もないし
そんなこと話し出したら、学生のモニタはtwitterとニコニコ動画だらけになる
ちょちょいと書いてヌルヌル動くインパクトがないと学生が飽きちゃうんだよなー
>>400 それだとサーバーのファイルがどーなったかわからないから
10秒に1回とか更新確認するようなやり方しかなくね?
>>400 クライアントサイドだけでどうやって相手のIPを知るの?
PHPとかも使用しないのか? それだったら無理だろチャットなんて どこにチャットの文章をPOSTすればいいんだ
window1の俺とwindow2の俺とでチャット
>>400 クライアント同士は繋がってないんだよ。それをサーバが中継するわけ。
できるよ まずサーバーの代わりになるページを自分のPCで立ち上げておいて なんらしかのP2PAPIで自分にアクセスして貰う つまりWEBページ上のJavaScriptで仲介サーバーの代わりをする
例えばPHP+javascriptだったらcometで出来ますよね
<?php
while(1){
// ここで待機処理。文字列を受信したら皆に文字列を送信したりする所
sleep(1);
}?>
こんな感じで。
んで、チャットってインプットエリアからクライアントで文字列をサーバに送りますよね
クライアントから
http://localhost/post.phpに送信するとしますね そしたらサーバがクライアントに文字列をプッシュさせる
これだけがしたいのですよ
一応、クライアント同士のチャットなら個人のPCに簡易サーバ立てるだけでPHPでもできるんですが これをサーバサイドでやる場合はnode.jsでやるのが定番じゃないですか でも一般的なレンタルサーバではnode.jsなんて入ってないですよね なのでなんとかやりたいんですが そこでwebSocketしか選択肢はないでしょうか?
プッシュ自体は単純だがマッチングがどうなってるかが大事
前から何度か、サーバサイドなしでチャット!サーバサイドなしでチャット!って言ってるのは同じ人?
質問者は何が聞きたいの? ウェブソケットが良いのか、もっと良いものがあるのか聞きたいの? プッシュの部分だけ解決できたらいいの?
>>415 俺が一回聞いたわ
それだけ需要があるんだよ
>>415 僕はプログラム板の住民でnode.jsでやっててこれからクライアントでやりたいと思ってweb制作板に来たので別人ですね
ちょっと質問者とは別だが質問させてくれ 例えば500KBのtextファイルがあったとして、それについてのプッシュ待機と1分間に1回更新ってどっちの方がサーバーへの負荷少ない?
>>417 YES
つまりクライアントで非同期でチャットやるならajaxで通信するのが王道になってるじゃないですか
でもajaxだと定期的にサーバにチェックしにいくから無駄じゃないですか
これ無駄なのでnode.jsみたいに送信したときにプッシュできればいいんですよ
普通にやると待機の方が負荷かかるから いろいろ負荷が少なくなる方法が考えられてる それらをどう使うかしだい
コテハンがはずれたけど>>421は自分
>>420 1分毎に500kbだとモバイル回線が死んじゃう
そのくらいでしぬわけねえだろ
PHP&websocketはダメなのか
プッシュだけが問題なら すぐウェブソケット使えばいいじゃん それで解決解決
でもWebSocketで仕様が固まってないから怖いじゃないですか
もうあの騒動終わってあらかた固まったからまたブラウザも対応始めただろ もう使い始めていいころ、それがいやならコメットとかシコシコ使うしかない
あの騒動ってなに
あの、その、例の騒動っす
騒動なんて無かったんや…
>>431 素晴らしい!
ベストアンサーに認定します
とりあえずさくっと作れたので解決できました
でも400はサーバーサイドは何もしたくない つまりただの中継役として使いたいわけだよね まずマッチングはどうするの? あとサーバーをずっと起こしたまま全員を常に繋ぎとめておいてそういう事がしたいんだよね? それはかなり難しいかも 本当にサーバーをあまり複雑に使いたくないのならNode.jsにするか 409みたいな案しかないと思う 一番簡単なのは諦めることだけど
サーバーが絡む場合は 環境をバージョンまで含めて明確に指定してくれないと こちらもなかなか明確な回答が出せない
得に相談事はそこを注意してくれると助かる そこが曖昧だとあれもこれもいいんじゃないって感じになって 質問者も回答者も何がいいのか結局わからずに終わってしまう そしてそこに付け込んで荒らしがでる なるべくスパッと回答してすぐ終わるような質問をしてほしい
(3) 長い間連続して質問する場合にレス番を名前にしてあれば、質問の流れが回答者に伝わりやすくなります。 ↓ (3) 長い間連続して質問する場合にはトリップを付けるよう心掛けてください。
レス番号を付けてくれた方が
んじゃあレス番号にトリップで
それだとレス番号でポップアップできなくなるからさ
うわServer-sent Eventsっ使ったら数秒おきにサーバと通信して無駄なパケット増えるからajaxと変わんないじゃない
やっぱnode.jsでやれってことだな どうもな!
今更付けてどうする レス番号付きでageればOK
ageても日をまたいだらID変わるだろ
pushって転送量どうなんだろうか a.txt(100byte)が更新されてa.txt(200byte)になったとする そしたら最初の読み込みで100byte転送されてその後更新されたら200byte転送されるだけでOK?
>>446 それはサーバがクライアントに送信する次第だろう
データ丸丸おくるようにサーバ側のプログラムで書くか更新分だけ送るかの違い
<p>あああああああああああああ</p> ↑がブラウザに表示されているときの文字列のサイズをpxで取得する方法はありませんか? マージン部分とパディング部分を別に文字列の部分のみ取得したいのですがそういのはjavascriptじゃできないでしょうか
>>448 computedStyleからfontSizeを取得すれば?実際に幅を計測して、、という感じではないが。
インライン要素しか含まないならばできるよ。 <p id="aaa" style="padding: 3em; font-size: 3em;">あああああああああああああ</p> var getWidth = function(elem) { var span = document.createElement("span"); // elem の子要素を span に移動。 var fc; while ((fc = elem.firstChild)) { span.insertBefore(fc, null); } // span の padding を 0 にして elem に追加。 span.style.padding = "0"; elem.insertBefore(span, null); // 幅取得。 var width = span.clientWidth; // 後掃除。 while ((fc = span.firstChild)) { elem.insertBefore(fc, null); } span.parentNode.removeChild(span); return width; }; alert(getWidth(document.getElementById("aaa")));
プログラム初心者です <table> <tr><td><input type="button" value="clear" onClick="a(0)"></td> <td><input type="checkbox" name="chk[0][]" value="hhh"><br><input type="checkbox" name="chk2[0][]" value="aaa"><br><input type="checkbox" name="chk3[0][]" value="bbb"><br></td> <td><input type="checkbox" name="chk[0][]" value="ccc"><br><input type="checkbox" name="chk2[0][]" value="ddd"><br><input type="checkbox" name="chk3[0][]" value="eee"><br></td></tr> <tr><td><input type="button" value="clear" onClick="a(1)"></td> <td><input type="checkbox" name="chk[1][]" value="fff"><br><input type="checkbox" name="chk2[1][]" value="fff"><br><input type="checkbox" name="chk3[1][]" value="ggg"><br></td></tr> </table> 上のHTMLに対して <head>に入れた↓の関数が動作しません function a(num) { chk_arr = new Array("chk["+num+"][]","chk2["+num+"][]","chk3["+num+"][]"); for ( i = 0; i < chk_arr.length; i++ ) { for ( ii = 0; ii < document.form1.elements[chk_arr[i]].length; ii++ ) { document.form1.elements[chk_arr[i][ii]].checked = false; } } } 実際のテーブルには30行1〜10列のデータがあり、 クリアボタンで行ごとのチェックを一括削除したいのですが どういった記述にすればうまくいくでしょうか? よろしくお願いします。
document.form1.elements[chk_arr[i][ii]].checked = false; -> document.form1.elements[chk_arr[i]][ii].checked = false; 多分。確認はしていない。
みなさんjQueryのmapとeachの使い分けはどうやってます? 違いがあまりわからない…
>>452 素早い回答どうも有難うございます。
なるほど!!
と思ってやってみたんですがやはり消えません
他にも問題がありそうです。
>>451 なんかわからんが・・・「プログラム初心者です」って一言が無性に腹たつ
だからどうしたとしか言いようがない、優しくしてもらえるのか?って思えてしまう。
jQuery使うと綺麗にできる
$(function() {
$("button").click(function() {
$(":checked").each(function() {
$(this).attr("checked", false);
});
});
});
使いたくないならDOM使うのがいいんじゃね?
functiona(){
var c = document.getElementsByTagName("input");
for (var i=0; i < c.length; i++) {
if(c.item(i).type == "checkbox" && c.item(i).checked == true)
c.item(i).checked = false;
}
>>453 eachはただの反復処理だけど、mapは反復処理を利用して新たに配列を生成する。
var a = [1,2,3,4,5];
var b = map(a, function(c) {return -c;});
each(b,function(c) {console.log(c);}); //-1,-2...
>>454 同じ name 属性を持つ要素が 1つだけの場合、NodeList でなく
要素自身が返るから、その場合、変数 ii のループが不適切。
>>456 理解出来ました
ありがとうございます。
>>452 >>455 >>457 みんなすげーっすわ。俺なんか初心者以外の何者でも無いでしょ。
1日考えてたことが即解決したし。
マジみなさんでありがとうございます。
460 :
451 :2012/01/06(金) 03:24:50.11 ID:???
と思ったらやはりダメでした。 みなさんの指摘をもとに色々やってみます。
みなさんでありがとうございます
>>455 「プログラム初心者です」は
「検索で調べても専門用語だらけで分かりませんでした」ってことだろう
JavaScriptから入るとクラスとかサブクラスとか継承とかメソッドとか言われてもさっぱりなんだよな
>>455 ここでは質問者は神様みたいなもの
質問者の事を第一に考えなさい
http://vv1.jp/Aqm あと「質問です」から始まるのも俺は嫌いだ。
「質問よろしいですか」「質問させてください」だろ?
「質問です」って、んな物は見りゃわかるんだよって思う。
>>464 > 「質問よろしいですか」「質問させてください」だろ?
それも見りゃ分かるから要らん。
低レベルな奴ほどこういう上目線になる。
俺の汚いコードを自慢げにupできてオマケに喜んで貰えてありがたいと思わないとな まあ基本的なことだがお互い尊重することが大事だな
そうだそうだ 質問者は神様だからちゃんと頭下げろよ
>>465 「質問です」から入るならって話だ
別に「質問させてください」から入れと言ってる訳じゃない
ってか、どこが上目線なんだ。
まぁ、バカは、礼儀正しい=下手に出てると思うんだろうけど。
色々区別できない半島人なんだよ
みなさんでありがとうございます
よし! これからも皆仲良くいこうな!
ちょっとお前ら統合失調症かよと思うくらい神経質でワロタw
プログラマはみんな神経質 のんびり家には向いてない
神経質な奴が書き込んでいるだけ そうじゃない人はスルーしてるから見えてこないだけでたくさんいる 見えないものを感じ取れ!
まったく、ソースコードに1ミリ秒の無駄も気になるほど神経質になるのは大歓迎だが そこはちゃんと分けないと上に立ったとき下の連中はついて来ないぜメーン
自分がいかにスレチな発言してるかわかる程度には神経質になってもらいたいものですね
>>464 >>468 ここは唯でさえ雑談や回答に数レス使ってるから
解りやすいように配慮してるんだろ
人間のそういうのも理解してやれよ
え、ネタにマジレスしちゃうの!?
つついたら変なのがワラワラ出てきてるでござる
>479 そうだな…っておめぇもだろうがぁー(笑)
最近荒れすぎ
回答がつくだけマシだろw webprog板のPHPスレとブログ板のWordPressスレやDB板のSQLiteスレなんてもっとひどいぞ
webprog板は数人のキチガイが暴れてるイメージ ここはそういうのが居ないから楽園
new Date("2222/2/2 2:2:2")ってクロスブラウザで日付をセットできてますか?
jquery mobileでスマフォサイト作ってるのですが スマフォの解像度で1,280×720とかPCにディスプレイなみに大きい数字の機種があるのですが 見た目は普通のサイズのスマフォなのに何で解像度がこんなに高いのですか?
なんでって阿保か
どうして普通のスマフォサイズなのにこんなに解像度が大きいんですか
近くて見るんだから遠くで見るテレビ並にあってもいいだろ
細かければ細かいほうがいい!電池が許す限り!
ここはじゃばすくりぷとスレなんで
495 :
Name_Not_Found :2012/01/06(金) 12:20:42.01 ID:hjW1/LJJ
>>486 そこは
new Date("2222/2/2 2:2:2")ってクロスブラウザで日付をセットしてみた
って書いて結果報告じゃろ
各ブラウザで試してみるだけなんだから
IEないから調べられません
調べた範囲でいいよ
499 :
Name_Not_Found :2012/01/06(金) 12:33:30.29 ID:hjW1/LJJ
>>496 >>1 のコード投稿サイトに書いてくれたらIEの結果は書くよ
IETesterだけど
もう500? 最近流れが速すぎると思う。この速さなら言える…何も言うことないや。
<div style="width:1280px;height:720px;background:#000000">test</div> やってみたけどやっぱりでかすぎ ああもうスマフォサイト作るためにjquery mobile使おうとしたのにこんなところで間違った情報のセルサイト何なの!
ちょっとまてお前は何の話しているんだ 画面の大きさのインチと解像度は違うぞ
質問です プログラム初めてでJavaScriptやってるんだけど セミコロンを付けるとこがいまいちわからない。 入門書見ながら例題をやっているんだけど セミコロン付け忘れてても動く行もあるし、わけわかめ。
全部付けとけばいい
セミコロンは命令文の終了を表します alert(1); これはアラートで1を出力する命令文を終了させるためセミコロンを付けました if (1 == 1) { alert(1); } これはifは言語構造なので命令文ではありません ですので真ん中に登場する命令文alert(1)にセミコロンを付けてあげます
>>503 504の言うとおり、基本は全部つける。
間違ったらエラーで怒られるから、その都度覚えていけばいい。
付けなくても文末だってわかるところは自動で補ってくれるから基本は必要ない
いい加減なこと言うな
JavaScriptがいい加減な言語だから仕方がない 付けても付けなくても同じなら付けないのがベストなのは言うまでもないだろう
コンマで区切れるところはセミコロンじゃなくコンマを使う
付ける付けないは個人の自由だけど、付けないのがベストになる理由が分からない 書き手とインタプリタがまったく同じ理解をするとは限らないし。なおさら初心者だったらreturnの問題もある。
変数宣言をコンマで並べるやつとは仲良くなれない
>>509 最近は圧縮したりする場合もある。
その場合;無かったら不具合の原因になるんだから;は付けたほうが良い。
改行消さなくてもセミコロン省略は不具合に原因になりうる
>>509 セミコロンがどのような規則で自動挿入されるのかは言語仕様で
厳密に定められている。いい加減なのはあんたの知識だ。
質問です。 window.open()で作成したページを保存できるようにすることってできませんか? 他の方法でもいいんですが、JSで整形したページ内のデータをHTMLなどにして保存したい場合、 どのようにするのが一般的な方法なんでしょうか?
javascriptの言語仕様信用するとかsliceの引数の取り方とかみてたら無理だわ。
流石にそこはマンコ使えよ
512ではないけど、基本的にはvar付けるよ。 var hoge; var huga = [], hugaIndex = 0;
まあ好みの問題だな。 varを一本化する人は巻き上げのこともあって、先頭で全部宣言するタイプじゃないかな。
>>520 いや、
>>512 は↓の様にすると言ってる。
var hoge;
var huga = [];
var hugaIndex = 0;
var付けるとあちこちで呼び出せないから不便だろ そもそもvarなんていらん a = 1; function a(){ console.log(a); b =2; } a(); function b(){ b *= 100; } b(); console.log(b); こういうふうにどこでも変数にアクセスできるように書くのが楽
>>523 セミコロン付けないのがベストと言ってるのと同じくらい酷い。
コンマで区切れるところはセミコロンじゃなくコンマを使う <script> var arr = []; arr[arr.length] = "a", arr.push("b"), alert(arr); </script>
コンマ演算子は今の話題と関係ないから。
俺配列宣言は必ずvar h = new Array();ってやってるな そっちの方が見やすい
529 :
Name_Not_Found :2012/01/06(金) 16:17:44.09 ID:3W9IYcsn
>>527 しかし、それは速度面でほんの、ほんーの少しだけ遅いんじゃなかったっけ。
え、マジで []と比べて9byteムダに使うだけだと思ってた
動的に配列を作成するときに気を付けないとエラーが出ることがあるらしいよ javascriptパターンの受け売りだけどw
配列を空っぽにするときもarray = [];の方がいいのか?
空っぽにするって新たに空の配列を生成するってこと?それなら[]が広く使われてるよ。
開いて一度実行したら二度と使わない関数と変数をnullで上書きしたらページが軽くなります亜k?
>>534 その程度じゃ何も変わらないし、GCに任せればいい。昔は例外も多かったけれど。
jqueryで var img = $("<img>").attr("src",src) としても読み込まれないんだけどなぜですか?
>>533 その配列に上書きするから、その配列を一度空にしてまた入れる時
var a = [];
a[0]=1;
a[1]=2;
a[2]=3;
ってやって要素を一度全部削除して
a[0]=11;
a[1]=22;
alert(a[2]);ってやったら 見つかりません みたいな
>>532 var a = [1,2,3,4];
a.length = 0;
これがベストだと思うよ
>>537 その場合は"普通は"同じ配列を使いまわすから、a.length=0でクリアするのが正しい。
最初の意図と違ってるけどね。
varも;も基本付けた方がいいみたいな決まりはない 効果と見やすさをケースバイケースで考えて使うか決めるべき
>>532 配列の初期化の話はJavascript good partsに出てきた。
誰か、書いてくれ
>>542 ここでそういうレス見つけたらメモ帳にでもレスごと保存しておくのをオススメする
AudioBufferとかでかい配列のときに a.length=0;みたいにやると 予約枠が取りっぱなしにされて メモリの断片化が起こる場合があるので注意 a=[];だと100%GCが片付けてくれる
ケースバイケースって事ですかい デッカイ配列の場合はa=[]がいいのね
>>544-545 確認だけど、(a.length=0)と(a=[])は全く別のものだよ。
ケースバイケースではなくて、両者はまったく別のケース。
まあ、単純に新しい配列を用意したいってことならどちらか選べばいいけど。
×全くの別のもの ○厳密には違うもの ◎実質同じもの
いやぜんぜん違うだろ
同じ配列を使いまわすのと新しい配列を用意するのは別だと思うよ。 546が言うように空にしたいだけなら大差はないけど、一般的にはやはり別もの。
「配列を空にする」という結果を見るなら差は無い a.length=0;でメモリの断片化とかは初めて聞いたけど
配列を空にする≠(a=[])
少しとか厳密にはとか言われても困るな どのくらい違うのかちゃんと数値で出して貰わないと プログラマには理解できない
老人がいて、そいつを0歳の時点に戻す薬を飲ませるか 老人が0歳の時の複製人間を作ると同時に老人を殺すか 結果的には0歳の元老人が残る
理解出来ないのを言い訳するな
心を絞ってからっぽにするのと 心を無で上書きするのとは 同じことだろうが
>>553 var rouzinA = {}, rouzinB = {};
rouzinA !== rouzinB; // その例は成り立たない
553例えが下手 556脳に欠陥あり
>>556 後者の複製人間ってのは、老人が0歳の時のデータの複製を作るって事
どっちも元は老人A、結果的に残るのは両方とも老人Aが0歳だったときのモノと何もかも一緒なもの
おまえらどうでもいい話題でスレ埋めるの好きだなw プライドだけは一流で引き際がわからない典型的ダメ人間
>>547 「空の配列を作る」と「(既存の)配列を空にする」日本語の問題だけど違うよね。
>>558 556ではないけど、配列は参照だから辻褄が合わない。
>>553 死んだと思ってた老人が実は生きていて大変な事になったり
小学生の水の体積の問題で、大学生が気圧や温度とかを考慮に含めて盛り上がってる感じだな
哲学か?
そもそも次の2つは結果が異なるでしょ。 var a = [1, 2, 3]; var b = a; a.length = 0; b.push(4); var a = [1, 2, 3]; var b = a; a = []; b.push(4);
547が馬鹿でFA
まーた0.5くらいのものを1か0か言い争う作業してるのか これだからデジタル人間はだめだなぁ そんなんじゃあ生きにくいぜ
>>562 発泡スチロールの 10kg より、鉄の 10kg の方が重いんだぜ?
570 :
532 :2012/01/06(金) 17:29:20.23 ID:???
何か大事になっててすみません
自分としては空にしてまた使いなおしたいだけだったので
>>544 の言うでかい配列に気をつける位で十分満足でした。本当にすみません
JavaScriptでメモリうんぬん言っているならjQueryやprototypeを使うなよ これらのライブラリをロードする方がよっぽどメモリ喰うじゃん
同じ質量100Nでも空気による浮力がある分だけ発砲スチロールの方が軽い でも同じ重さ10Kgならもちろん重さは同じ、これはそんな議論
〜よくわかるまとめ〜 『配列を参照している変数』を初期化するなら[] 『変数が参照している配列』を初期化するならlength=0
2ちゃんのスレ一覧を取得してクソスレ認定して良スレのみをピックアップするサイトを作りたいのですが javascriptで提供のある形態素解析ってありませんか? cgiが使えない無料サーバでやるのでphpとかperlは使わないでjsonpでsubject.txtを取得して加工・分析させたいんです!
>>573 だから違うって主旨が書いてあるだろ、文系か?
575は例の奴だから注意
>>576 単位の N て何だよ。重量の単位だろ、アホ。
質量:大きい←→小さい 重量:大きい←→小さい 重さ:おもい←→かるい
まだ年明けて1週間も経過してないから皆ヒマなんだろう
>>578 え、それマジで言ってんの?
中学からやり直せ
kgf : 重量
N : 力
>577おいおいおい せっかく>575=581が盛り上げてくれようとしてんのに水差すなよw
正月なんだから多少の悪ふざけも大目にみてやってもいいじゃん
>>582 文系乙。
> 同じ質量100Nでも空気による浮力がある分だけ発砲スチロールの方が軽い
> でも同じ重さ10Kgならもちろん重さは同じ、これはそんな議論
N は「質量の単位」なのか?w
N (ニュートン) は重量の単位にも使用されているが。
馴れ合いスレから哲学スレになったと思ってたら いつの間にや物理スレに変わってまた馴れ合いスレに戻ったでござる
Y 100 | / | / |/ -------100 X ちょっとみずらいですが縦横100の長さがあるとします これで基点からX50:Y30の位置までの長さを求めたいのですが、こういうメソッドというのはありませんか?
>>587 三平方の定理でググってくれ
割とマジで
これは数式教えるのは良くない ググるよろし
寧ろ指摘するべきは、 みずらい -> みづらい
また例の荒らしか ばれないと思ってるのか
誰か
>>536 に答えてやれよ。俺は質問の意味がイマイチ理解できん
>>587 ピタゴラスの定理、または三平方の定理でぐぐれカス。メソッドなんかいらんだろ
でも関数定義するなら
function pythagorean(x,y){
return Math.sqrt(x^2+y^2);
}
こんなかんじ。
>>536 は具体的に何がしたいのか書いてくれないとよくわからん
>>593 これとsin2だかの座標から三角関数求てもめるメソッド使ったやつどっちが高速なんだろうか?
>>536 それは要素がただ作られただけ。表示するにはそれをドキュメントに追加しないといけない。
var img = $("<img>").attr("src",src).appendTo(document.body);
>>589 ありがとうございます
これ使わせていただきます
function pythagorean(x,y){
return Math.sqrt(x^2+y^2);
}
x^2で二乗になるんだっけ?
なるわけないじゃないですか。
ならない、ならない
x**2 に決まってるよねー
中学レベルの数学ができないとかすげーなw 数学なんて算数レベルしか使い所ないから必要ないとか言ってたヤツいたけどこーなるのかw
>>602 単に中学生なだけじゃない?
俺はプログラミングと無関係の生物学系だったから
大学卒業後の無職になってalert('hellowork');ってのから学んだけど
604 :
503 :2012/01/06(金) 18:47:07.00 ID:???
みんなサンクス
命令文を意識してソースを見てみることにする。
それと
>>506 の人がいってる「怒られる」ってどっかでエラーが出るってことだよね?
今Macでメモ帳とFirefox、chromeで勉強してんだけど
ソースが間違ってると、エラーが出ずに表示したい内容が表示されなかったり
ボタンを押しても無反応になるくらいなんだけど、他の人はツールかなんか使ってデバッグしてるの?
小中学生でJS触ってる人いくらでもいるからな
>>604 Firefox なら [Ctrl] + [Shift] + [K]
Google Chrome なら [Ctrl] + [Shift] + [J]
でコンソールを開いてください。
javascriptやる上で知っておくと便利な数学の定理とかそういうのの名前を一覧で教えてください
中一中二くらいのときブログホムペが超流行ったから
みんなにJS教えてやったらあっという間に無限アラートくらいは覚えたよ
やっぱり小中くらいの暇な時間があって物覚えもいいし
気力も溢れてるときに覚え始めておくのがベストかな
>>607 荒らしかもしれないけど
便利で自分で良く調べて使ってるものは自然と覚えるから
人に聞くようなことじゃない
ググって自分が使いそうだと思うものを覚えなさい
数学の教科書に書いてあるよ
> みんなにJS教えてやったらあっという間に無限アラートくらいは覚えたよ
なんて憎たらしいガキ共だ
>>607 キリがない。ボール投げる運動とかアークタンジェントとか使うし
気長に数学頑張りなさい、数学さえ出来てれば物理の公式とかググるだけで大丈夫だから
普段そんな数式とか使わないけど HTML5で放物運動をアニメーションで表現するのに物理の本引っ張り出してきた その程度にしか使わないと思うからあんま気にしないでいいと思うよ
物理演算は計算式よりもいかにフレームレートと精度のバランスを取るかが凄く難しい 10時間かけてアルゴリズム作ったら下手すると調整にも10かかる 最近はアニメーションフレームとか便利なライブラリとか出てきたからましになったけど
高校出たばかりならまだ若いんだから、今からでも勉強しておくと良いよ。 禿げるまで 10年以上あるし。
ac3みたいな物理エンジンライブラリはないの?
これからじゃね?
職業以外で高校の数学を最も役に立てられる環境 それがプログラミング
架空のことだけど 「成恵の世界」って漫画の主人公の和人は中学生ながらJavascriptの達人らしいぞ
何をもって達人というのか 毎月のように生まれている新しいAPIを全てマスターしてるのか WebGLやWebAudioはもちろんだが、ときには何かのファイルを編集したりするために 規格を覚える必要だってある 例えばQRコードを生成するツールを何も規格書を見ずにライブラリも使わずにできるのか ありとあらゆる事ができなければ達人とは言わない とか言うのは現実的じゃないので 所謂達人っていうのはセンスを掴んだ人って事にしておこう
PCやネット関連のすべてに精通した天才的なハッカーだとかどうとでも動かせる漠然とした設定ではなく そんなピンポイントな設定で物語に絡んでいけるのか
>>620 Wikipediaには基本的な技術を有するとしか書いてないな
漫画の主人公がJavascriptの達人とか微妙だな ベーシックから『なでしこ』まで全てを理解しているスーパーハッカーならいいのに
>>596 よくわかりました。ありがとうございます
まだJavaScriptを書いて2日くらいのものなんですが、for文とwhile文の違いがイマイチわかりません。 これらの構文にどのような違いがあるのか良かったら教えて下さい。
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4 のテンプレを読んだ上で質問してください。
>>625 985 名前:Name_Not_Found[sage] 投稿日:2011/12/10(土) 18:51:53.24 ID:???
ループする数がわかっているときはfor
わからないときはwhile
と教わった
というかJavaScript限定でもないからプログラム板のスレ立てるまでもない質問スレに行ったほうが
いろいろ聞けるんでない
986 名前:Name_Not_Found[sage] 投稿日:2011/12/10(土) 18:52:39.60 ID:???
>>984 初期化文と継続文があるなら for
それ以外は while
>>625 var i = 1;
while (i > 0) {
if (i == 0) break;
alert("うあああああああああああああああああああああああああああ");
i++;
}
以前カキコしたが、今年のオレの大学4年の研究が3DSを使った研究に 決まった。3DSでJavascriptを使用してやるぜ。 結構好き勝手できる研究室でよかった。
633 :
Name_Not_Found :2012/01/06(金) 22:58:18.36 ID:hjW1/LJJ
最近はそんなのもあるんじゃなー うらやましい
で、お前は3DSで何をやるつもりなの?
お絵かきアプリみたいなのじゃない? カーソルがタッチペンに変わっただけの
3DSだから飛び出すんだろ
canvasで3dか胸が熱くなるな .getContext("3d");
>>637 今canvasで3Dみたいなのあったりするけど、ああいうのって見せかけだから作るの超大変そう
MPO形式な画像なら飛び出すが、Canvasじゃな。あれ一部しか対応してないし 残念ブラウザだけどな
>>640 3DSを使った、ヒューマンインタフェースですかね。
642 :
Name_Not_Found :2012/01/07(土) 00:57:20.62 ID:BFmaFMyM
var a = [1].push([2,3]); // [1,[2,3]] pushメソッドから配列を値として追加することはできないんですか? applyしないとだめですか?
た、対有機生命体コンタクト用ヒューマノイドインターフェース・・・!
>>642 どうしてapplyを避けるのかわかりませんが、applyしないとできませんね。
>>642 普通に追加できるのだが。
pushメソッドが何を返すのか調べてみ。
>>642 の書き方なら concat で良い。
var a = [1].concat([2, 3]);
>>642 それ a === 2 になると思うんだが、ちゃんと試した?
apply を期待するなら
var a = [1].concat([2, 3]);
>>642 [1,[2,3]], [1,2,3] のどちらを期待するかで回答が変わるぞ
わかるように質問してくれ
マージしたいんじゃない?
[1,[2,3]] を期待してますが、2 になります。 よくわかりませんが配列だからapplyが必要ですか? …と受け取れなくもない。
>>642 var a = [1].push([2, 3]);
/* pushメソッドの戻り値はpush後の配列長なので
a = 2 となる */
var a = [1], b = a;
a.push([2, 3]);
/* a = [1, [2, 3]] となる。aに入っているのは配列への参照であり
bに入ったのは参照のコピー。pushで配列の中身が変化しても
a, b が何を参照しているかについては変化せず、 b == a のまま */
var a = [1].concat([2, 3]);
/* a = [1, 2, 3] となる。concatメソッドの戻り値は
[1] と [2, 3] (ともに中身に変化なし)とは別の
新たに作られる配列 [1, 2, 3] */
var a = [1], b = a;
a = a.concat([2, 3]);
/* aの配列 [1] への参照は、新しい配列 [1, 2, 3] への参照で上書きされる
bは配列 [1] への参照のままなので、b != a となる */
data:使ってMPO出力すればOK アニメーションはできないが お絵かきツールならできるだろ
入門書のinput typeに input type="button" こういう書き方されてるんだけど、ダブルクオーテーションって付ける意味あるの? 無くても動くし、ダブルクオーテーションって文字列の時に囲うものだよね? それとも、「そうやって書くもの」って覚えといたほうがいいんだろうか?
決められた特定の文字の集合であれば属性値をくおーてーしょんで囲わなくても良い 特定の文字の範囲外の文字を利用するときにくおーてーshんで囲わなくてはならない class="test"はclass=testと書いても良いことになっているが class="test test2"の場合は半角スペースは特定の文字に含まれないのでくおーてーっしょんで囲わなくては鳴らない
但し省略は出来てもなるべく省略しないで加工ねって仕様を作っている人たちがゆってるので省略しないほうが良い
>>653 動けばいいってもんじゃないんだが、
まあ趣味で作るサイトならご自由にどうぞ。
>>653 ある標準Xで「こう書くこと」と決められているとする。あるソフトA
ではそれよりも緩い書き方でも動くとする。あなたがその緩い書き方で
書いてソフトAで確認してOKと思ったとする。あなたがそれを公開した
後、標準Xには従っているけど緩い書き方には対応しない他のソフト群
で動かなかったとする。あなたはそれでもいいと思う?
>>653 自分には厳しく、他人には寛容に。
ITの世界でもね。
a = "2000/1/2 5:4:5"; b = "2000/5/2 5:4:5"; この二つを比較する場合、 if (a < b) { console.log(1); }else{ console.log(0); } で出来ました そこで質問なんですが ary = [ "2000/5/2 5:4:5", "2000/1/2 5:4:5", "2000/4/2 5:4:5", "2000/2/2 5:4:5" ]; みたいな時にデータの古い順に配列を並べ替えたいのですがどのように並べ替えればよいのでしょうか?
660 :
Name_Not_Found :2012/01/07(土) 11:15:09.37 ID:sdLl1yHt
普通にsortしちゃだめなの? sortedAry = ary.sort();
それだと確かどっかのブラウザでエラー出た気がするから UNIX時間 に変換したほうがよかったんじゃなかったっけ?間違ってたらスマン
sortって時間もとかでも出来るんですね unixタイムにしてソートしたいと思います ありがとうございます
>>659 こんな比較してたら確実に嵌る。
辞書順の比較だから、月しか変わらなかったとしても12月<2月と判定される。
月や日付をtoStringで36進数に直して普通にArray.sortしてまた元に戻す方法と その形式なら普通にDate.parseやnew DateでパースできるからそれをArray.sortの内部で使う方法
JSで取得できるのがunixタイムまんまだと思ってると大変な事になるぞw
666 :
653 :2012/01/07(土) 11:48:51.61 ID:???
なんとなくダブルクオーテーションで囲わなきゃいけない意味が分かった。 サンクス
>>666 英数字だけなら100%必要ない
空白や特殊記号含む場合は100%必要
その他はまあなくてもいい程度
HTMLのバージョンによっても少し違う
配列を逆順でソートする場合って sortした後にreverseするのが王道? 一回で逆順にソートするのってできないの?
>>666 >コンテンツ属性の値に、スペース、"'=<>\が含まれていなければ、引用符を付けずに、その値をマークアップすることができます。
>>668 sortに簡単な関数渡せ
JavaScriptから好きなPort番号で好きなプロトコルを使って通信できる方法はありますか? 策定中のものや議題に挙がってるものでもあれば教えてください またスレチになりますがJScriptやメトロUI上のJSならそういったのも可能なんですかね?
>>666 普通は付ける方で統一して頭の中のif文いくつか消すんじゃね
HTMLバージョン間での相互運用性やエディタの置換え機能の都合まで考えると囲っておいたほうがいい
付けなくてもいいものをあえて付ける必要はない そういう特殊な環境で使いたいのなら付けるようにすればいいだけ
>>667 必要な場合があり、常に囲んでも何ら問題ないし損にもならないのに
わざわざグチャグチャ場合分けする神経が分からん。
実務経験を積んでれば絶対あり得ない発想。
こいつらケースバイケースって言葉知らんのかw 必ず付けるべきなら仕様もそうなってるよ!#!# XHTMLが廃れた理由が理解できないアホ共めwww(笑)wwww(笑)w(笑)
付けなければならない場合をわざわざ意識して その時だけ付けるのがcoolってか。ド素人はこれだから困る。 まあ所詮、脳味噌の腐った草生やし厨だからな。
あれれ〜おかしいぞ〜 僕はちゃんと理屈を説明したのに 君はできないのかなぁ(笑)うぇっwうぇっw
アホは構うと調子に乗るからほっとけ
>>676 こいつECMAスレでもクロージャは括弧で囲うべきではないって言ってたな。今回と同じ理由で。
その時は付けない理由を一切説明できずに、ただ暴言ばっかり吐いてた。
ECMAスレぇ?クロージャぁ? こいつ一体何いってるんだぁ?(笑) 論破されたからって妄想たれるのはよくないぞぉw?
,. /ノ (\;''~⌒ヾ, ~'ミ ・ ェ) ヤギだよ .,ゝ i" 自動でみんなを癒してくれるすごいやつだよ ヘ'""~ ミ ,) ノ,,_, ,;'ヽ) し'し' l,ノ
一人で作業してて今後も自分でしか更新しないなら付けようが付けまいがかまわない 但し、共同作業を行うなら不具合のタネにしかならないから必ず付けておく
とりあえず質問者と回答者は一対一で、 他回答者への意見は書かないようにしよう つまり議論系はもう一つのスレでやって、 ここでは質問者以外は無視すれば荒らしも減るかも
だからまず質問者は具体的な状況環境設定をもっと示せって何度も言ってるだろ それがないとこの場合にはこう、あの場合にはこうって揉めるばかりになってしまう 回答者同士が争って正直Yahoo!知恵袋より酷い
回答に対する意見・議論は必要だと思う。
質問に不備があればスルーするかテンプレ誘導すればいいんでないの 適当に答えるからややこしくなる
ここから質問者をダシに論争するスレ
>>690 それはもう質問者の責任にしないと上手くいかないんじゃないか?
>689ここがそんなに嫌ならYahoo!知恵袋に行ったら?
いや、まず何よりも最初にやらないといけないことは ID表示だろ
いっそのこともう怒鳴り散らして議論するスレにすればいいじゃんww
皆さんここが2ちゃんだということをお忘れでは。糞質問には罵倒を。 糞回答にも罵倒を。なりすましなんて普通じゃん。それでこのスレは ずっとやってきたし。
>>692 質問者としては結構それありがたい所もあるよ
innerHTMLで質問したときappend使えって言われたけどappendとappendToの違いが議論されて
使い分けをよく知る事が出来た
確かにそうだが そうなって来たら引っ越しすればいい せっかくもう一つスレあるんだし
_____________ ↑ ここまで議論スレ ここから物理スレ ↓  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
そういえば昨日の自称理系()の奴はどうなったんだ? 逃げたっきり?
>>688 そんな質問者にだけ都合のいい環境が欲しけりゃ知恵袋でも行きゃええやろ
ここはJS関連の雑談も読めるから面白いんだよ
正月休みと冬休みが終わるまで我慢
>702 つ『スレタイ』『テンプレ』
ちょっとレス遡ってみたら var→カンマ→属性値のクオーテーション と全く同じ展開でクソワロタ
お前らまーた1でも0でもない0.5くらいの事を 1か0か無理矢理決めるために争ってんのか これだからデジタル人間は(笑)
お取り込み中すみません 1つ質問をさせていただきたいのですが 郵便番号と住所を相互変換するにはどういった方法がありますでしょうか
0 質問 1 回答 0 質問 1 回答 0 質問 1 回答 こういう質問乞食の理想のスレにしようという陰謀や
その陰謀こっわー
>>707 それは世のため人のためになる事でしょうか?
そうでないのでしたらご回答できません
郵便番号→住所は簡単 住所→郵便番号は表記のゆれがメンドクサイ
>>707 それぞれの対応関係をDB化してJSON出力
>>712 すまん>706はネタで俺が>566を改変したのを貼った
あれは多分同一人物の荒らし
>>714 全然面白くないし、スレが無駄に荒れるだけだから控えてほしいな
>>703 のように冬休みだから静観している人も多いと思うけど、基本的に今の流れはいいものじゃないよ
2ch特有の煽り合いが少ないのがここのいいところだったのに、最近の流れは正直目に余る
このスレ終了 ヤフー知恵袋でやれや
はい、--住人。
今からDBやJSONについて調べてみます 結果はまたご報告します
Yahoo!知恵袋のステマですねわかります
717 こいつ自分が散々荒らして来た癖によく言うよ
721 :あぼーん あぼーん
業務でjavascriptをやっている方に質問させてください スクリプトファイルのバックアップってどうやって取るのが主流ですか?
また出たいつもの奴
726 :
677 :2012/01/07(土) 15:37:08.71 ID:???
すみませんお願いします
関数で詰まった! 引数や戻り値がよく分からない。 function naoHan(number1,number2) { return number1 *number2; } (省略) num1 = prompt("1つ目の数字を入れて。",""); num2 = prompt("2つ目の数字を入れて。",""); document.write("2つの数字を掛けると" + naoHan(num1,num2) + "です。"); 入門書ではこういう関数を例に上げて説明してるんだけど 質問1. 処理の流れはこれで合ってる? (1)6,7行目でnum1、num2が決まる (2)それを元に1行目のnaoHanって関数のnumber1、number2に呼び出し元の num1、num2の数値が入る。 (3)3行目のnumber1、number2に1行目のnumber1、number2がそのまま入る。 (4)掛け算される。 (5)returnがついてるから再度1行目のnumber1、number2に戻ってくる。 (6)1行目のnumber1、number2がnum1、num2に返ってくる。 質問2. 引数と戻り値って言葉なんだけど どっからどこに引き渡されるから引数なのか、 同じくどこに戻るから戻り値なのかが分からない。 戻り値はreturnがついてる行の変数(number1と2)の中身が1行目の 関数名の隣の()の中の変数に戻るって意味で「戻り値」なの? 極力具体的に書いたつもりが長文になってしまった。 わかりにくかったらすまん。
>>724 バージョン管理で調べる。業務では必須だから勉強して損はない。
>>727 小さいから問題ないけど行数が分からんね。行数を入れるとコードは動かないし、この場合
コードの後にコメントで //A みたいに名前付するといい。
引数が関数に渡されて、もちろん処理の内容も引数によって変わるね、最後に関数から返されるのが戻り値。
関数側から見ると、「引数を受け取って、結果を返り値として返す」、
関数を利用する側から見ると、「引数を渡して結果(返り値)を受け取る」
>>727 いろいろおかしい
function naoHan(number1,number2)
{
return number1*number2;
}
num1=1;num2=2;
document.write(naoHan(num1,num2));
最後の行
document.write(naoHan(num1,num2));
↓
document.write((function naoHan(number1,number2)
{
return number1*number2;
}(1,2)));
↓
document.write(3);
>>727 A1
5,6が違う
5)return で掛け算の結果を返す(戻り値)
6)関数で得られた結果(戻り値)を
>"2つの数字を掛けると" + naoHan(num1,num2) + "です。"
で文字列連結している
A2
function naoHan(number1,number2)
これのnumber1,number2が引数
naoHan関数が返す値が戻り値
戻り値はreturn文で返す
return文がない場合はundefinedが返ってくる
A1にはもういくつか細かい点はあるけどとりあえずそれはスルー
>>728 svnとかgitとかあるじゃないですか
あれってwebデザイナーとかも使えるようになってたほうがいいですか?
つまり naoHan(num1,num2)がnumber1*number2の計算結果の値として評価されるの 変数が渡るんじゃなくて変数が持ってる値が渡るの number1にnum1が入るんじゃなくてnum1が持ってる値が渡るの
numは冗長だからnにすべき云々の意見↓
>>731 出来ることが増えるのはいいことだと思うよ。それがマイナスに働くことなんてない。
>>727 根本的な部分を勘違いしてる
今まで覚えた事は全部忘れて本じゃなくてネットで勉強し直せ
デザインだけじゃなくてコードも書ける、管理できる。わざわざ自分から遠のく必要はないな
>>735 いまだとネットより良書探したほうがいいぞ
初心者が良本なんてわかるわけないだろ
WEBサイトの方がオススメされてるように見えるが きっと俺の目が悪いんだろうな
両方お勧めされてるという発想はないらしい
>>739 に対しての発言でしょ
話の流れわかってないなら黙ってて
それを決めてどうすんねんw もう質問者完全無視じゃんw お前らは1つ質問がある度に揉めんと気が済まんのかw
お前らまーた1でも0でもない0.5くらいの事を 1か0か無理矢理決めるために争ってんのかー これだからお前らみたいなデジタル人間は ボンクラって言われてんだよ
荒らしはそこらへんにしとけよ
>>725 とか
>>727 みたいなのが荒れるきっかけになりやすいんだけどな。
「はい、分かりました」なんてなる訳ないんだから。
改変コピペで荒らさないでくれ
レスアンカーつけるテンプレルールが欲しいな
次スレのテンプレにFirebugとChromeのコンソールの使い方を教えてあげてほしい
number1, number2 が仮引数 num1, num2 が実引数
レス番号とトリップとIDがあって全て一致しないと本人とは言えない
もうすぐ800なんで、もう今、次スレ用テンプレの改訂案あればどぞ。 私はレスアンカールール不要派だけど、文案が良ければ寝返るかもよ。
iframeを使って居るのですが 子から親の関数を呼び出すことは出来ますか ----------parent.html------------ <html> <body> <script type="text/javascript"> function test(){ alert("ok"); } </script> <iframe src="child.html" /> <div id="xxx"></div> </body> </html> ----------child.html---------- <script type="text/javascript"> top.document.getElementById('xxx').innerHTML = "ok";//問題なくできる //ここでparent.htmlのtest()を使いたい </script>
質問です。 <a href="#" onclick="hoge(); return false;"> みたいに書くと、 クリックしてhogeを実行した際にhrefで#に移動するのを抑制できると思うんですけど、 これを、外部jsファイルからaddEventListenerでa要素に登録して、 HTML側にはonclickを書かないようにしたい場合、 上記の「return false」はどんな感じで仕込めばいいんでしょうか。 もしかしたら「hogeの中身次第で変わる」のかもしれないとも思ってるので、 hogeの中身について具体的な情報を出さないと質問にすらなっていないようなら、 申し訳ないんですけどそう指摘してもらえるとうれしいです。
>>759 preventDefaultで可能だが、リンクじゃないものには<span>を使うべき
ありがとうございます。両方とも検討します。
プログラミング経験の無い人達にJavaScriptの役割について説明するスライドを作っているのですが その中の「たくさんのネット上のフォーラムで活発な意見のやり取りがなされており…」のところで Twitterや知恵袋等と一緒にこのサイト、スレを是非紹介したいのですが大丈夫でしょうか?
2chのレスコピペして金儲けてる乞食みてーなカス居るし大丈夫なんじゃねーの?
そんで紹介するなら「
>>1 読んで出直して来い」っていうレスも紹介して人が来なさそうな感じにしてくれ
アフィ張らなければいいよ アフィ張るようなら全力で潰しに行くけど
やめとけ、やめとけw あんたが恥をかくw
>>766 全力で潰しに行くとかwww
無限ループでalertでも出して困らせにいくのですか?www
>>770 乙。
・onLoadでdtの行は削除漏れ?
・dt.appendChild(doc.createTextNode(sourceElement.firstChild.data));はcloneNodeがよりスマート
jquery についての質問です。 画面内に複数のボタンがあり、ボタンが押されたときに 同じ処理をしたいときって、jquery で短縮して書くことってできませんかね? 関数化して呼び出せばいいんだけど、それ以外の方法があったら知りたいです。 --------------------------------------------------- $('#button1').click(function(){ alert('hello!'); }); $('#button2').click(function(){ alert('hello!'); }); ↓こんな感じに書くことが出来ないのか?↓ $('#button1' or '#button2').click(function(){ alert('hello!'); });
Javascriptを利用すれば 新しいCSSって作れますか? たとえば、画像を回転するrotateプロパティを新しくつりたいとき <script> ここにrotateプロパティのコードを書く </script> <img style="rotate:45" src="sample.jpg"> ってやれば、画像が45度回転する みたいなことできますか?
>>763 だからさー、具体的なテンプレ用のレスにして貼って欲しい
わけよ。そうしないと人によって実際には考えていることが
違ったりするんで。よろしこ。
>>772 $('button').click(function(){
alert('hello!');
});
$('#buttons > button').click(function(){
alert('hello!');
});
>>774 原案だけ挙げて良さそうなら文面も考えるって工程は駄目かね?
文面なしにしつこく主張してくるのは辟易するが、初めの提案なら許容範囲だと思うのだが。
>>773 <img src="sample.jpg">
<script>
var el = document.getElementsByTagName('img')[0];
el.style.transform = 'rotate(45deg)';
el.style.MozTransform = 'rotate(45deg)';
el.style.webkitTransform = 'rotate(45deg)';
</script>
いやまあ、仕切りたいならどうぞ。別に反対しない。だれも主ではない。
782 :
778 :2012/01/07(土) 20:23:10.29 ID:F6nuGoW7
>>780 自分の発言を否定されて反論することが仕切ってることになるのか?
客観的に見て仕切ってるのは
>>774 の方だと思うが。
次のテンプレにお願いします 動かないときはエラーがないか確認しましょう エラーの確認の仕方はChromeのコンソール(ctrl+shift+j)を開くと、エラーが出てるときには赤文字で記されます
なんでChrome使う前提なんだよ
Chrome市か使ったことないので他のブラウザ分かる奴は勝手に書けや
自分でかけやクズ
別に仕切ってるでも仕切ってないでもいいので。最終的に975までに まとまれば不満ありません。用語定義がご不満なら謝りますぜ(w
火狐厨 vs Chrome厨
>>785 ctrl+shift+jで直にエラーコンソール出るのはFirefoxだよ
793 :
Name_Not_Found :2012/01/07(土) 21:55:37.72 ID:JtAQ/4u2
これだと、10ではなくて、202になってしまうのはなんでですか? -- <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>割り勘計算</title> </head> <body> <p><input type="text" id="a" value="20"></p> <p><input type="text" id="b" value="2"></p> <p><input type="button" id="c" value="計算!" onclick="calc();"></p> <script> function calc(){ var d = document.getElementById('a').value; var e = document.getElementById('b').value; var f = d + e; alert(f); } </script> </body> </html>
Internet Explorer [F12] Firefox [Ctrl] + [Shift] + [K] Opera [Ctrl] + [Shift] + [O] Google Chrome [Ctrl] + [Shift] + [J]
>>793 dもeも文字列の数字だから。
var d = document.getElementById('a').value * 1;
var e = document.getElementById('b').value * 1;
みたいに1倍してやれば数値に変わる。
若しくは
parseInt(d,10)
とかみたいに文字列を数値に直す。
> var f = d + e; これだと 20 + 2で 22じゃね? 割るは 20/2 だよ それと+には連結って意味があって "あ" + "い" だと ”あい”ってなる 文字列だから 20って文字列と 2 って文字列がくっつく
このスレで質問するならブラウザのデバッガぐらいは覚えてもらいたい
>>797 初回起動じゃなかったからIと混同してたごめん
800 :
Name_Not_Found :2012/01/07(土) 22:05:33.39 ID:JtAQ/4u2
>>795 ありがとうございます。*1 は出来るようになりました。parslntやってみます。
801 :
Name_Not_Found :2012/01/07(土) 22:08:39.95 ID:JtAQ/4u2
でも。これだとNANになってしまいます。 -- <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>割り勘計算</title> </head> <body> <p><input type="text" id="a" value="20"></p> <p><input type="text" id="b" value="2"></p> <p><input type="button" id="c" value="計算!" onclick="calc();"></p> <script> function calc(){ var d = document.getElementById('a').value; var e = document.getElementById('b').value; var f = parseInt("d"); var g = parseInt("e"); var h = f + g; alert(h); } </script> </body> </html>
802 :
Name_Not_Found :2012/01/07(土) 22:12:10.10 ID:JtAQ/4u2
自己解決。これならば大丈夫。"" とか '' はどういう意味があるのでしょうか。 -- var f = parseInt(d,10); var g = parseInt(e,10);
>>799 俺もアンカー無駄うちしてすまなかったごめん
>>802 ""でくくったものは文字列として評価される。
$(".a[id!='b']") class = aの id=b以外というのはこのようにできるのですが この記述方式でclass = aの this以外 というのは指定できるのでしょうか?
僕の昨日の飯はもう少し塩を利かせたら旨くなりますか?並の質問だな
thisってなんやねん
すみません、省きすぎました <div class="a">あ</div> <div class="a">い</div> <div class="a">う</div> <script> (function(){ $(".a").click(function(){ $("クリックされた要素を除くクラスa").css('widt','200px') }); }); </script> こんな感じです この$("クリックされた要素を除くクラスa")についてです、本当にすみません
>>808 jQuery('.a').not(this).css('width', '200px');
>>808 例題用に省略してるんだよな。そのままだと処理実行されないよ。
どなたか
>>2 の過去スレ全集に前スレまでの過去ログをUPしていただけないでしょうか
812 :
Name_Not_Found :2012/01/08(日) 02:30:09.47 ID:KqCuhj6u
ここにいるやつらってデザインがメインなの? それともプログラマ?
ログ速
datファイルが欲しい
いいロダがあれば上げてやるよ
javascriptやるならデザインパターンって覚える意味ありますか?
>>817 あれはアルゴリズムに名前が付いて伝達性が上がった事に意味がある。
中身を覚える必要はないけど、名前を聞いた時に思い出して
調べられれば大丈夫。本でもネットでも。
var second;っていう0から始まる秒数の値が入った変数があります これをストップウォッチみたいにHH:MM:SS形式で表示させたいのですが 秒数からこれらへの変換がいまいち分かりません second = 0;だったら 00:00:00 ゼロパディングの部分はsliceを使えば出来ますが、根本の問題である秒数からそれぞれ時分秒に変換する方法を伝授してください
とりあえず質問者はもっと具体的に
>>812 趣味プログラマー
>>819 秒=second%60
分=second/60%60
時=second/60/60%60
秒+=秒<10?"0":""
分+=分<10?"0":""
時+=時<10?"0":""
タイム=時+":"+分+":"+秒
>>819 h=Math.floor(s/3600)
m=Math.floor((s%3600)/60)
s=s%60
>>821 var second = 3530;
console.log(second%60); // 50
いろいろおかしかった 秒=second%60 分=~~(second/60%60) 時=~~(second/60/60) 秒=(秒<10?"0":"")+秒 分=(分<10?"0":"")+分 時=(時<10?"0":"")+時 タイム=時+":"+分+":"+秒
>>824 1時間- 30 = 3530
59分30秒になるはずなのに分=second/60%60の計算式じゃあ50秒
分=second/60%60じゃなくて秒=second%60がおかしい
~~(a / b % c) だっせぇ a / b % c | 0 だろ
いや、そこはあってる 1時間- 30 = 3570 3530なら秒は50
また荒れる悪寒
うはwケアレスミスw 3600-30=3570だった、おしい すまん
プッ
>828 それはなんだか直感的でないから長い式中に使うのは好きじゃない ~~()はまんまMath.floor()的に使えるから好き
また819無視して議論スレ突入か
893が一言↓
自分の好き嫌いでものを語っちゃう人ってなんなの?
>>893 そんな事言うとは思わなかったよ…尊敬した。
さあ893に入る人が何と言うかだな。
冬休みも今日で終わりか…
>>833 ~~() は括弧の対応取るための余分な脳内リソース食うだろ
| 0 なら見た目的にも最後に小数部切り捨ててる感出てて分かりやすい
~~(a / b % c) または a / b % c | 0 こんなコード普通は許されないな。普通に関数使えよと。かっこつけてんじゃねえ!
トリッキーコード万歳なお年ごろなんだろ。
できました! みなさんありがとうございました
何かにつけトリッキートリッキーって思考停止してるけど この程度の定型文に難癖つく職場とか相当低レベの集まりなんだろうな
↑小規模サイト作り止まりの人の意見でした。
初心者相手にあんなコード出す奴は眉唾。
その手でよく見るのは、!と+かな。あとは、||とか。
人に見せるためのコードなんだから短く書くよりアルゴリズムがわかるように書こうな
"この程度の定型文”らしいからもっと難解なコードが飛び交ってるんだぞ!甘く見るんじゃねえ
ラーメン作るけどお前ら何味がいい?
ミートソースで
ずっと一人でコード書いてると、業界の習わしが分からないんじゃないかな。 その人からすれば何の疑問の念も抱かずに使い続けてきたわけだから、これが一般的な書き方なんだと思い込んでしまう。 この前のクロージャの人だってそうだと思うけど、このスレを見ていると少なからずズレがある人を見かける。 たまには有名なコードを呼んで、自分の作法と照らし合わせるべきかもね。 合わせる合わせないは好きにすればいいけど、その基準を知っておくことは大切だね。
業界の習わし? 例えばどんなの?
コーディング規約も知らないの?
コーディング作法のことじゃねえの
>>855 へー「業界の習わし」= 「コーディング規約」なんだ。
知らなかった。
プログラミング作法という本なら知ってるけどコーディング作法は初めて聞いた コーディング作法でググってもコーディング規約がヒットするけど要は同じものだろ
859 :
Name_Not_Found :2012/01/08(日) 13:34:55.43 ID:AYIAVHKM
3分たったらお知らせしてくれるラーメンタイマーを作ったんですが 3分たってもお知らせしてくれません 添削お願いします var date = new Date(); var time1 = t.getTime(); date.setTime(t.getTime() + 180); $a = setInterval("a()",1000); function a(){ var d = new Date(); if (d.getTime() >= time1){ console.log("3分たちました"); $a = null return; } }
業界の習わしワロタ ワシの知らん書き方は業界非標準www老害wwww
>>858 どっちでもいいよ。規約は確固たるルールだし、作法はメソッドの設計とか、もう少し一般的なところまで及ぶ感じかな。
まあ、さっきの853では同じ意味ってことでOK
>>858 関係ないが、そういう場合は"で囲って検索するといい。"コーディング作法"
フツーにsetTimeout(function,3*60*1000)じゃダメなん?
で、「業界」に共通のコーディング規約ってどんなのがあるの?
大体はjavaのコーディング規約がベースになるけど そこそこの規模の開発なら社内でCheckstyleとかの設定共有するでしょ
>>861 なるほど。規約が完全に一致することは珍しいけど、作法は概ね同じだから、
それをコードリーディングして捉えようってことか。
トリッキーもなにも~や|はただの演算子でしょ 小数点切り捨てに長い関数使う方がわかりにくいしトリッキーだと思う
効率的なコードをトリッキーと言われてもらっちゃ困るわな
>867-868 自演乙。1.5|0 Math.floor(1.5) どっちか分かりやすいなんて明白。ましてここは質問スレ。
そんなのミニファイに任せればいい
ビット演算に使う演算子を小数点切り捨てに使うとか混乱する
>>865 ふーん。JavaScript でそれは、聞いたことないわ。
ラジオボタンで背景色と文字色を変えられるようにしたいのですが、 <style type="text/css"><!-- body { color: black; background-color: white } --></style> <script type="text/javascript"><!-- function change(fg, bg) { if(document.layers) { document.fgColor = fg; document.bgColor = bg; return; } var s = document.styleSheets[0]; if(s.cssRules) { s.cssRules[0].style.color = fg; s.cssRules[0].style.backgroundColor = bg; } else { s.cssText = 'body { color:' + fg + '; background-color: ' + bg + ' }'; } } //--></script> で、 <form aciton="#"><p> <input type="radio" name="r1" onclick="change('blue', 'brown')"> <input type="radio" name="r1" onclick="change('#00eeff', '#ffee00')"> </p></form> ↑これを押すと、NN4とIEでは見事にグワッと色が変わりました。 でも、NN6ではウンともスンともいいません。 どうしてでしょうか、教えてほしいです。
なんだよー 俺っ様ルールじゃだめなんかよー いいじゃんかよー
869 詭弁たれるのもいい加減にしろよww
876顔真っ赤ww
荒らしはいい加減そこらへんにしとけよ
>>877 とか
>>878 みたいなのが荒れるきっかけになりやすいんだけどな。
「はい、分かりました」なんてなる訳ないんだから。
>>873 <script type="text/javascript">
function change(fg, bg) {
document.body.style.color = fg;
document.body.style.backgroundColor = bg;
return;
}
</script>
<input type="radio" name="r1" onclick="change('blue', 'brown')">
<input type="radio" name="r1" onclick="change('#00eeff', '#ffee00')">
これでうまいくいかない?
お前ら懲りずにまた1でも0でもない0.5くらいの事を 1か0かに無理矢理決着付けるために争ってんのかよw
業界標準の書き方なんて無いわ。 jQueryの書き方が業界標準とでも言いたいの? クロージャの事っって言ってる奴って var a = (function () {})(); or var a = (function () {}()); にするか var a = functiion () {}(); これの事だろうけど 上はjQueryとかで使われてるけど、 下は有名所で使われてるのを見た事無いとでもいいたいのかな。
>>880 それ10年前の質問をコピペしてるだけだぞ。
クロージャーは本当はできるんなら function () {}(); ってできるのが間違いなく理想だろ (function () {})(); か (function () {}()); なら 個人的には最初は上で覚えて使ってたが 最近下もいいなと思い始めた
+function() { }(); これ。
おんや〜877さん反論できずに暴言で反撃ですか〜いけませんね〜
>>885 その書き方だとさ、最後まで読まないとクロージャだと分からないんだよね。
それと式の値として評価されない場合はエラーになるから、多くのプロジェクトが(function(){})();の書き方を採用してる。
別に批判じゃないよ。ただの意見。俺は読みやすさの観点から885が理想だという書き方は好ましくないと思う。
>>886 それもいいね
個人的には特殊感を出すために!もいいかなって思ってる
括弧は意外とよくないかもね
>>886 そういえば、twitterのオープンソースでは!で値として評価してたね。
>>888 いやいやできたらの話だよ
括弧付けるのはクロージャーだとわかりやすくするためじゃなくて
結局エラーになったりするからだからね
質問失礼します 関数を定義する際に、引数の型を厳密に決める事は出来ますでしょうか? また、関数を初期化するときに引数がある時とない時に動作を変えたい (要するにオーバーロードしたい)のですが、その場合どうしたらいいのでしょうか?
>>892 言語仕様としてはそのような仕組みは用意されてないよ。
オーバーロードはJohn ResigのJS講座で扱ってたと思う。型宣言のないJSではあまり意味ないんで忘れたけど。
>>892 型を厳密には無理
可変長の引数を扱う事はargumentsを使えば可能
オーバーロードは無理
>>891 自分の書いたコードなら最初からクロージャだと分かるけど、他人のコードだと分からんのだよ。
先頭に括弧があれば、クロージャかな、と察しがつく。
最後のたった二文字で挙動が全く変わるからな
>>892 汎用的にオーバーロード機能を実装するなら、せいぜい引数の数による分岐が限界。
>>893 のJS講座で扱われてるのもそれだと思うが。あとはそれぞれの関数内で分岐を実装するしか無い。
!function() { }() と +function() { }() は無いな 評価が undefined にならないのが気持ち悪い
俺はなんでもいいけど、何も付けないってのは勘弁して頂きたい
+function() { }() みてなんかの差分かとおもた
>>895 関数の最終行飛ぶだけだろ
>>898 それらを使わなくても
評価がundefinedになる保証はないだろ
>>901 コード読んだこと無いのがまるわかり。恥ずかしいからやめとけ。
>>902 また決め付け君か
実際コード書いたり読んだりしてりゃ分かるけど
そこまで負担になるものでもないぞ?
負担になると思うのなら
書き方を知らないからっていう理由の方が大きい
なにこの糞スレw
平常運転です。まもなく乗り換えです。
縦スクロールシューティングゲームを作りたいと思います 玉が敵に当たったかどうかを判定する仕組みが分かりません あれはどのようなときにあたったと判定したらよいのでしょうか?
>>907 基盤はもう出来てるの?図面の表し方とか。
909 :
907 :2012/01/08(日) 15:36:18.20 ID:???
>>908 まだです
自分の戦闘機は左、敵は右にいるとして、zキーを押したら敵に向かって玉が飛ぶようにさせたいと思いますが
ここまではまだコードは書いてませんがコードは書けます
当たり判定はどう考えていいのかわからず
主人公 ========ぴゅーん● 敵
>>909 敵の座標が(x1,y1)、玉(弾じゃなくて?)の座標が (x2,y2)として、両者の距離が
L以下という条件で当たりとすれば? (x2-x1)**2 + (y2-y1)**2 < L**2
ただしJavaScriptでは **2 とは書けないのでそこはよろ。
正しい答えは無視で間違いに延々と粘着 新しい質問も答えが出ないままどんどん流れていく NGにもできんし最悪だな
912 :
907 :2012/01/08(日) 15:51:58.79 ID:???
>>910 この**って書き方はじめてみたのですがこれはなんでしょうか?
>>912 一部の言語(FortranとかRuby)にある「ベキ乗」演算子。つまり2乗してるのね。
なんで ^ にしなかったの
915 :
Name_Not_Found :2012/01/08(日) 16:17:37.56 ID:ztS+fr98
XORと区別できないから
>>901 通りすがりだが、返り値未指定の関数はundefinedを返す仕様
>>917 クロージャを評価対象にするんだから未指定なるとは限らない
>>918 >>898 の意図をふまえたらクロージャは含まれない
+や!が気持ち悪いパターンなら評価値に意味はないと考えるべきだろう
>>917-918 ごっちゃになってないか。
(function(){..saveGrobalScope..})(); // 917
var x = (function(){...return y;})(); //918
というか、カッコを付けないことが正しい、みたいな奴がいて驚いた。
どう考えても読みにくいだろ。。
>>919 (function () {return 0;})()
と書いた場合0が返るが?
戻り値がundefinedになる保証は無いのに
それを気持ち悪いという主観だけで!やら+を先頭に持ってくるのを
無いと否定する方が間違ってるだろ
それにJavaScriptなら気持ち悪いパターンなんてそれ以外にもいくらでもあるだろ
>>920 ごっちゃになってるのはお前じゃないか?
function () {}()
単純にこれだとエラーになるから
+function () {}()
これや
!function () {}()
これが例に出てるんだろ
別に変数に代入する時の話題なんて無いだろ
雑談したいなら他でやって黙々と質問に答えたいヤツだけ残れば良いのに
>>921 その値はどこに返す?返すということは受け取る側があるということ。
つまり、
>>920 の後者に相当するじゃないか。
921みたいなバカはほっとけばいいんだよ。スレが荒れるだけ。
>>923 相当しないだろ
後者でいいなら態々!やら+付けなくても問題ない
後者なら
var x = function () {} ();
こう書ける
値が返るからといって受け手がある保証もないし
返ってくる値がundefinedである保証もないだろ
戻り値を返すけど、代入しないケース。 Bookmarklet で字数節約したい時にやってたわ。 var n = 0; ~function foo() { n++; return foo; }()()(); alert(n);
$("#hoge").css(backgroundColor,"#333333") と設定した後、無色にさせたいのですがどうにも上手くいきません 背景色を何も指定していない無色の状態に戻すことは可能なのでしょうか?
transparent
$("#hoge").css('background', 'none'); は?
.style.removeProperty('background-color')
>>930 transparentが正しい。これがbackground-colorの初期値。
オレもクロージャを何だと思ってんの?と問いたい
934 :
928 :2012/01/08(日) 18:33:03.66 ID:???
横レスだけど、無名関数の呼び出しが必ずしも 参照保持の為だけとは限らんよ。
<html> <head> <title>Test</title> </head> <body> <div id="box"> <div id="a">a</div> <div id="b">b</div> <div id="c">c</div> </div> </body> </html> div#bの次にdiv#b2を入れる方法を伝授してください <html> <head> <title>Test</title> </head> <body> <div id="box"> <div id="a">a</div> <div id="b">b</div> <div id="b2">b2</div> <div id="c">c</div> </div> </body> </html>
937 :
936 :2012/01/08(日) 18:40:00.77 ID:???
書き忘れました DOMの操作で伝授お願いします
>>927 本来なら
無名関数の定義をしたスコープの値を保持できる無名関数だろ
でもレスの流れ的には無名関数の事をそのままクロージャと呼んでるようだけど
でもそれが何か関係あるの?
>>934 もう解決してるかもしれないけど、設定した値を取り除くのは
$("#hoge").css("backgroundColor","")
のように空文字列を設定してやればいい。
(ここでいう設定はstyle属性での設定を含み、styleタグでの設定は含まない。)
まあ、お好みの方法で。
function b(){return false;} 正偽を判定するときに if (false === b()){} というふうに厳重に書いたものは以下のように書いたのと同じですか? if (!b()){} ↑ これも厳重に判定されますか?if(false == b()){}と同じゆるい判定になりますか?
>>942 ゆるい判定になる
というかコード解ってるなら試せ
ゆるい判定になるね。
試しても同じ結果になるのでわかりません
false == function () { return 0;}() これを試すだけが何で同じ結果になるのよ
ああ0ってfalseって意味があったのか どうも
例えばこんな感じvar a = ["a","","b"];の配列から空要素を削除したいんですけど PHPのarray_filterみたいな便利なメソッドはありませんか?
何かいまさFirefoxのconsole.clear()みたいなのはie9とsafariとchromeとoperaでは動かないのですが対応してないの?
es3にはないことを注意しとかんと。
次スレは975超えたら。テンプレは結局現行と同じでMSDNのみ新しくする?
空文字はデフォルト値って仕様で決まってるわドアホ
jQueryの仕様?
956 :
941 :2012/01/08(日) 20:52:36.69 ID:???
>>953 jQueryのマニュアルには明記されている。
DOM直接はどうだろ。
CSSOMって再開してたんか
IE以外なら使えるよ
まじすかwikiのほうが情報古かったんですね
script type = "txt/javascript"と script language = "javascript"って何が違うの?
上、HTMLの使用に書かれている属性、MIME-Typeを指定する 下、大昔にブラウザベンダーが勝手につけた幻の属性。 HTML4.xの仕様にもない、HTML3.2でも探したけど見つからなかった
application/ecmascript application/javascript application/javascript;version=1.8 application/x-javascript text/ecmascript text/javascript
>>963 type属性のapplication/javascript;version=1.8ってFirefoxだけだっけ?
厳密にはJavaScriptのMIMEタイプがtext/〜にはならないんだけどね (MIMEタイプの"text"は人が読むためのテキストという意味)
>>962 HTML4.01とXHTML1.0にはある
標準仕様で定義されてるのは application/ecmascript application/javascript text/ecmascript text/javascript
>>966 HTML4.01 Strict のほうだけ見てたわ
HTML4.01 Transitional はあった
<!ELEMENT SCRIPT - - %Script; -- script statements -->
<!ATTLIST SCRIPT
charset %Charset; #IMPLIED -- char encoding of linked resource --
type %ContentType; #REQUIRED -- content type of script language --
language CDATA #IMPLIED -- predefined script language name --
・・
↓
>>2 Ajaxスレと1行javascriptは更新停滞気味だから不要じゃないかな
>>970 に異論が出なければこの2つをけずりましょうか?
こうしてみるとJavaScriptスレは意外と少ない…(多ければいいというものでもないけど)
span onMouseover="opentextでポップアップを設定した文書を、 FC2ブログに掲載したのですが、IE8ではポップアップがかなり上の方(画面外のこともある)に出てしまいます。 FFでは正常です(テンプレートによっては少しずれることもありますが、大したことはないです)。 同じ内容のファイルを、ブログに掲載せずに単独で見たときは、IE8でも正しい位置に表示されます。 これは既知の現象でしょうか? なお、私は2chエクサワロスというサイトの2chコピペブログ支援ツールというソフトを利用して出力しているのですが、 JavaScriptの知識がないので、どこがいけないのか全く分かりません。 IEの仕様ということならあきらめも付くのですが……
その群れの中に個人サイトみたいなのを紛れ込ませるのはどうなのかしらん
html5.jpの著者ってJavascriptの講師もしてたのか。 習いに行きたいけど遠いなぁ
なんでJだけ大文字なんだよ いい加減むずむずするわ
>>984 だからそれはVisual Studio用のだっつーのよ
987 :
978 :2012/01/09(月) 04:17:48.22 ID:???
調べているうちに解決しました。
テンプレートの一番初めにある下記の行を、削除することでIEでも正しい位置に表示されるようになりました。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd ">
調べてみたらどうも互換性の宣言のようですね。
narutoというテンプレートではIE8でもポップアップが正常位置に表示されたので、
原因を切り分けしていくと、この宣言が原因だと分かったのです。
narutoのようにこの宣言がないテンプレートも存在することから、なくてもよいと判断しました。
>>981 このスレには、JavaScriptをJavaScriptと書く者、JSと略して書く者やJavascriptと書く初心者とJavaと書く勘違い野郎が来る
>>981 そんなタイプミスっぽいのよりもJavaScripterって書く奴の方が嫌いだ
<item> <hoge></hoge> <hoge2></hoge2> <hoge2></hoge2> <item> jQueryです。 このような<item>が並んでるxmlを読み込んで、hogeとhoge2をそれぞれ変数に突っ込みたいです hoge2は1つもない場合もあれば、複数ある場合もあるのですが同名の要素が複数ある場合に配列に突っ込むのがうまくいきません hoge2 = new Array(); $(this).find('hoge2').each( function{ var temp = $(this).text(); hoge2.push(temp); }); 自分で書いたのはこんなんです、誰かアドバイスお願いします。
それで問題ないように見えるけど・・・ var hoge2 = new Array(); $("hoge2", this).each(function() { hoge2.push($(this).text()); }); こんな感じで試したらうまくいったけど?
992 :
Name_Not_Found :2012/01/09(月) 07:17:47.57 ID:NfZgBYMf
すみません、本当にしょうもない質問なのですが $("#hoge")こういうの口で説明するとき「ドル カッコ アイディーhoge」でいいのでしょうか? Javascript使う仕事に決まったのですが、読み方で恥かきそうなので
「jQueryセレクターで、ID、hogeを指定する」 これで伝わらない相手なら、その言い方でいいんじゃない?
jQueyrセレクターですか。ありがとうございます!
>>990 functionのあとに()がないが…
997 :
Name_Not_Found :2012/01/09(月) 08:56:32.12 ID:WCvX0dGt
実際に現象が見せられなくてあれなんですが
http://jsfiddle.net/maeSZ/1/ このコードを私のwebサーバで動かすと挙動がおかしくなります。
具体的には、 chrome最新版で見て
リンクからここに飛んだとき、数字の表示が中央ではなく
左上の座標0,0を中心として表示されることがある
1度目のアクセスは正常で、2度目からズレる
そのページでF5すれば位置のズレがなおる
再びリンクからアクセスすると1度目は正常で2度目からズレる、のパターン
firefoxで確かめてみたところ、この現象は発生しませんでした。
ブラウザ側のOSはubuntu11.04 64bitです
これはどこの問題でしょうか?
またどのようにすれば常に正しい位置に表示されますか?よろしくお願いします。
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。