1 :
デフォルトの名無しさん :
2011/08/26(金) 13:32:13.80
早速ですが、ブラウザゲームの自動入力装置を作りたい場合 勉強するのはjavascriptでよろしいですか? 現在類似の商品はあるのですが自家製にしたい。 たとえばブラウザゲームの戦国ixaをfirefoxまたはIE上で自動でこなす装置 オークションの自動入札装置などを作りたいと思ってます。
>>1 の関連スレがおかしい、けどGJ
Web制作板のJSスレは質問用だからなあ。もう一つWeb制作板にスレ立てれば良かったのかな?
なんでJavaの質問スレが関連スレなんだよw
とりあえず、これで運用してみてWEBの話が多ければ、分岐すればいいんじゃね?
Javaスレが関連スレという認識の
>>1 が立てたスレワロス
こんなスレにはJavaScriptとJavaの区別ができないやつしかこねーよ。
JavaScript == Web制作 っていう認識は時代遅れだと思う
みんなCoffeeScript使ってる?
>>9 次期OfficeもマクロにJavaScriptを採用するかとか言ってるしな
OfficeのマクロにJavaScriptは
GoogleDocやらOpenOffice、LibraOfficeで使えるからだろうな
これらがなければ採用するとは言ってないと思うがw
そもそも
>>10 で全て終わってるではないか
Windows 8はJavaScriptとHTML5で書かれたアプリがネイティブっぽく動くらしいしな
HTML5とか未来過ぎて勉強する気が起きない
ネイティブっつーか、OS自体が処理してくれるってことでは?
だとしてもInternetExplorer使用時限定になりそうだな
マルチプラットフォームでローカルファイルシステムにアクセスできるような環境ってある? WSHじゃちょっとやだ。
使ったことあるけどJavascriptとは言えないような・・・
ページを読み込んだ時点でページ内の"あああ"ってテキストを消し去るプログラムを作るとして body onloadで<html>内のinnerHTMLから一括削除するとレイアウトが崩れた onloadのタイミングでinnnerHTMLいじるとcssとかの設定が消えるのかな・・・ onloadより早くページ内のhtmlをいじくれるタイミングってある?
JSの質問ならJS質問スレへどうぞ つーかこのスレいらんだろ
>>19 PhantomJS
しかし、node.jsはまた別だし、あんまり話題ないなぁ
PhantomJS、CoffeeScript、あとはテストの話とか?
CoffeeScriptは構文も変わるし別スレで良いだろ PhantomJSもサーバサイドみたいなもんじゃないか 処理内容的な事は結局クライアントサイドになるわけだし
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
ここはjavascriptの今後を憂うスレです あとコーディングスタイルの話とか
TitaniumとかPhoneGapとか、JavaScriptでエセMVC的なことする人向けのスレにすれば良いじゃない Web制作版の方は初心者だらけだし
backbone.jsとかunderscore.jsとか
ライブラリが多過ぎて、どうすりゃいいのか分からん
>>32 ecmaって何?って人のが多いと思う。検索でたどり着けないよ。
素人おことわり
>>34 頭がおかしいのか?
池沼流入を避けるためにそうしてるんだろうが。
37 :
デフォルトの名無しさん :2011/08/28(日) 22:28:10.95
JavaScriptで以下の動きがしたいです。 1)JavaScriptでワードファイルを指定。 2)Word上で[すべて選択]-[コピー]-[貼り付け]と 同じ動作をJavaのプログラムで行う。 こういうことってJavaスクリプトで実現することは できますか?ファイルコピーではなく、現在のページ 内容を複製みたいなかんじです。
38 :
uy :2011/08/28(日) 22:32:46.57
そういうのはマクロツール使えゴミカス
39 :
36 :2011/08/28(日) 22:35:01.86
Webサービスで37みたいな動作したら、 ウイルスみたいなので悩んでます。 ほか、.NET Frameworkの関数を呼び出して 作成するやり方等ありますが、人のフリーソフト シェアウエアソフト使わないやり方があれば ご教授お願いします。
40 :
37 :2011/08/28(日) 22:36:09.43
さっそく流入してきましたね
無理 あとJavaとJavaScriptは全く関係ないし別物
43 :
37 :2011/08/28(日) 22:58:40.78
訂正。 Javaと書いたけど、JavaScriptの間違いで 再度質問します。 JavaScriptで以下の動きがしたいです。 1)JavaScriptでワードファイルを指定。 2)Word上で[すべて選択]-[コピー]-[貼り付け]と 同じ動作をJavaScriptのプログラムで行う。 こういうことってJavaスクリプトで実現することは できますか?ファイルコピーではなく、現在のページ 内容を複製みたいなかんじです。
何で動かすのかぐらい書けよ Webで動かすなら無理だし Office関連ならそれ関連のスレにいけって事になるし
45 :
37 :2011/08/28(日) 23:17:11.84
Webで動かそうと思いました。 無理そうということですね。 失礼しました。
簡単に無理とか言うな JSアシストプラグイン使えば無理なことなんて無くなる そのくらいなら既存のものを1日ちょっと弄ればできるようになる
JSアシストプラグインが何を指すかはしらないけど JSでローカルのワードファイルを指定するなんて出来んの? そんな事できたらセキュリティ的に終わってるだろw
まあ自分専用でいいなら何かしら方法はあるだろう
>>36 ここは池沼専用スレということでいいじゃない
ECMAScriptはもうなんか名前が嫌だ
俺みたいな池沼でも気軽に話せるスレがあってもいいじゃない
初心者専用質問スレにタイトル変更しては?
上級者お断り
お前らに質問することなんてない
>>49 門戸を狭めるなら始めからそう書いた方が良かったんじゃ?
Java と混同するレベルの奴をホイホイして、 Java とは違うのだよ Java とは、と叩き込むためのスレだろう?
>>45 はそもそも Web で、という意味を分かっているのかな?
Web ブラウザで javascript を実行する、で合ってるよね。
したいことによっては WSH を使えば……。
ブラウザならブラウザって言うと思うけどな 態々ブラウザにWebブラウザとつけて言わんだろw
55とは別人だが WebブラウザーはWebブラウザーって言うな。 ファイルをブラウズするものとかブラウザーって言ってもいろいろあるからな。
ファイルブラウザだなんて言うか? 変な人じゃなきゃファイラって言うだろ
質問スレに誘導して終わるべき話題
>>57 でもここJSのスレだからなあ
ブラウザと言えばWebブラウザでいいと思うぞ
スレチだがついでに
>>58 ファイラーとブラウザーは違うぞ。
閲覧ソフトのことだ。ファイルをブラウズというのは内容を閲覧すること。
>>60 昔「インターネッツ」が見れない等と連呼する奴がいて
Webのことを指してるのかと思ってたがなんだか話が咬み合わない。
ソフトの名称の略したものだった。
「SQL」でもそんなことがあった。
一般的なSQLのつもりで話ししてたら相手はMSSQLサーバーのこと指してたらしい。
そんなことがあって少し神経質になってるのかも知れない。すまんね。
そんな事まで気にするような奴だったら そもそも質問時点であんな書き方しないと思うが・・・ だからあえてWeb=なんらかのWebサイトという意味で書いたし Web=Webブラウザという意味では書かないだろとレスした
>>61 あー、MS-SQLServerをSQLって略して意味が変わっちゃってる人居るね
でもそれはJavaScriptをJavaと呼んじゃうようなもんで
単に無知なんだと思う
でもWebブラウザ以外をブラウザと略す例は少ないと思う
2chブラウザの話をするときに2chブラウザのことを
そう呼称する人は居るけどね
て
>>63 日常会話においてはUSBメモリをUSBと言うこともあるけど
技術情報の交換時にそれは無いわ
ここまで、JavaScriptの話題なし
>>49 のような思想で立てられたらしいからな
池沼専用スレといっておきながら有識者に来て欲しい腹の内が見えるわ
>>30 問題ない。
ページ内の問題に過ぎないし。
69 :
デフォルトの名無しさん :2011/09/07(水) 16:50:37.25
backbone.jsのビジネスレイヤーのエラーハンドリング時のエラーの受け渡しってどうやるんだ とりあえず、errorにするだけならjquery.ajax()のdataFileterかconvertersでjQuery.error(String)吐けばいいと思うんだがここで吐いたStringをBackbone.jsが下で捨てちゃってるような var wrapError = function(onError, model, options) { return function(resp) { if (onError) { onError(model, resp, options); } else { model.trigger('error', model, resp, options); } }; }
マウスのボタンの状態をjavascriptで取得ってできまうすか?
javascriptって言われると困るけどonmousedownではだめ?
eventオブジェクトから座標軸まで取得できるはずやけど
ここまでJavaScriptの質問しかない 初心者のための質問スレ?
入力された数字nを1からnまで順番を入れ替えて表示するものを作りたいのですがどうすればいいでしょうか。 例えば数字が5と入力された場合「3,1,5,4,2」など毎回ランダムな順番で表示したいです
こんなんでええのん? function a(arr){ if(!arr.length) return false ; return arr.splice(Math.floor(Math.random()*arr.length),1); } //実行例 testarr=[1,2,3,4,5]; while(true){ var result=a(testarr) ; if(!result) break ; alert(result); }
function randarr(n) { var a = []; for (var i = 0; i < n; i++) a.splice(n * Math.random() | 0, 0, i + 1); return a; } alert(randarr(5));
普通そうやるわな
>>76 のは「1からnまで」って要求仕様も満たしてない上にダサい
spliceにそんな使い方があったのか
冴えない標準関数の使い方講座スレはここですか
総合スレの名を借りた池沼専用スレらしいです
83 :
デフォルトの名無しさん :2011/09/13(火) 12:50:36.93
宿題も丸投げで解決
しかもお礼もなしやで ヒャッハー
85 :
デフォルトの名無しさん :2011/09/13(火) 17:15:59.79
backbone.js見たけどPHPerばりの糞なコードだな
javascriptで人のコード利用する限り、そういうの気にしちゃダメw
>>76 のコードみて思ったんだけど、
明示的にfalseを返すのは、言語によっては害ですらあるときがあるけど、
JSはどうなん?
> 言語によっては害ですらある 具体例plz
90 :
デフォルトの名無しさん :2011/09/14(水) 11:47:07.02
正常系にthis異常系にfalse返してきたりな メソッドチェーン() その異常系のチェックもスカスカだし
>>90 Backbone.jsの話?異常系にはthrowを使ってるように見えるけどなあ。
メソッドチェーンって笑われるようなものなんですか?
>言語によっては害ですらある ・言語仕様を理解していない ・組んだコードがカス どちらかです
自動型変換しちゃう糞言語だとバグの温床になりがちだな
>>92 はそれを言語仕様の理解不足の一言で済ませるんだろうけど
自動型変換をもつ言語が糞言語と言うのであれば使わなきゃいい話だろ
自動型変換が糞な理由がわからん バグの温床にはならんぞ
別に糞とは思わないが、他人が書いた型宣言あり言語のソースと、型宣言なし言語のソース、 どっちが読むのが困難かと言えば後者。 他人が書いたJavaScriptのソースは追うのが大変だ。 自分で書くだけならいいんだけどね。
>>96 JSDocで解決しそうな話ではある
自由な分コーディングパターンも多くなるからなー
動的型共通の悩みだな
つまり動的な型変換についてけない頭ですよって事か
程度の差の話が、ついて行けないとかいう話に飛躍させないと何も言えないなら、 無理に突っ張らなければいいのに。 一度言ったら引っ込みがつかないタイプなんだろうけど無駄なエネルギーだよ。
101 :
デフォルトの名無しさん :2011/09/15(木) 00:27:38.63
おまえは誰と戦ってるんだ
配列にfalse入ってない前提なら何の問題もない。
javascriptの[]は真値だから
なんで""は偽で[]は真なんだぜ
105 :
デフォルトの名無しさん :2011/09/15(木) 14:11:33.38
↑板間違えました;
107 :
デフォルトの名無しさん :2011/09/15(木) 17:15:00.25
だから、if (!(function(error) {if (error) {return false} return ""})(true)){}みたいな正常系が暗黙の型変換で偽値になるケースだと型チェックも必要になるのが害だろ。
でも空配列は真値だから
>>76 は問題ないけど
>>94 職業プログラマに使わなければいいなんて選択肢はねえし
!使わなきゃ良いだろ
そもそも空配列返らないし。
>>96 他人のソース追うのが困難なレベルの奴は、無駄な努力せずに他のことしたら?w
遅
>>107 何で false と "" の二択なんだ?
正常系とか異常系とかオレオレ理論を振りかざしてるし、想像力たくましいな
>>107 まず、暗黙の型変換がどこにあるのか教えてくれ
自分で真偽値にしておいて暗黙はないわ
>>104 むしろなんで""を偽にしたか。大したメリットもない。
そもそもObject.prototype.ToBooleanをreturn trueと定義するメリットもない。
型変換で混乱する事があるとすれば数値と文字列の比較とかだろ なんで単純明快な真偽値でブツブツ言ってるのかわからん
なるほど、オブジェクトを評価すると必ずtrueが返るのを利用してるのね。 new String("")がtrueで""がfalseを返す…ううーむ。
このスレのレベルすげえw さすが厨言語
>>114 文字列が空文字か判定できる
全部の文字列がtrueを返すことこそメリットがないし、0が良くて""が駄目な理由は何なんだ?
あと、Object.prototype.ToBooleanなんてないから
たぶんJavaScriptをこき下ろしたいだけなんだろ 目的先行で知識が伴ってないんだから放置してやれ
変数strが空の文字列かどうかを調べるときは if(str) ではなく if (str === '') と書く派です
str.lengthとどっちが速い?
多分だけど
プロパティアクセスや文字列オブジェクトへの変換が入るはずだから
>>120 の方が早いんじゃない?
>>104 基本と参照の違いくらい理解してから書き込めよ・・・
基本型と参照型か? おまえのほうが意味不明だ。 しかも何が真で何が偽かは言語によって非常にまちまちだろうが。 原則があるものとか思ってたら大怪我するぞ。
ここはJavaScriptのスレで、JavaScriptの基本と参照の違いを理解しろと言ってるんだが それで意味が通じないなら、全言語に共通する原則でも探してろ
基本=プリミティブ型 参照=オブジェクト型 って言いたいのかな?俺もわからんかったわ
他の言語規則を持ってくるのは的外れだし、基本型&参照型も的外れ
JavaScriptの基本 と 参照の違い でげそ
>>128 「JavaScriptの基本」は認めるとしても「参照の違い」ってなんの事だ?
>>104 に参照が関係するとは思えないが
誰かが池沼専用スレといってたけど見事にそうなってる感じ このスレはローカルルールが全くないからやりたい放題なんだよな 俺も時々突っ込み入れてるけどもう追いつかんわ
>>113 とか引数と戻り値の区別がついてねえしwww
134 :
88 :2011/09/17(土) 01:47:35.89
えーと、Perlだと、 @ary = func(); のときは,funcにreturn undef; って書いちゃうと、配列の要素として格納される。 だからif(@ary)で真になってしまう。 return;とだけ書いておけば、コンテキストに応じて勝手に偽なるようにしてくれる。
以前質問スレで見た奴に似てるな 彼も同じ勘違いしてた
もうここは池沼専用スレでいいよ 賢い奴は書き込み禁止な
わーい書き込み許可降りたどー ぶっちゃけクロージャ意味分からん 解説サイト通り動いて、それで何なので終わってしまう
俺もわからん つーか池沼専用スレなら誰もわからん
JavaScript第5版のGCと絡めた説明がわかりやすかった>クロージャ
クロージャは速度面で優位だけど、メモリを占有し続けるのよね。 MDN では、あまりクロージャを使うなと書いてあったと思うけど、 結局どっちが良いのかしら。
そのJavaScript本でも、「あまり使わないけど」、勉強するだけの価値はあるって書かれてたね。
Clockford 御大は推奨してるんだな、これが。
間違った。Crockford
道具は必要な時に使えばいい。
>>143 え、第5版にそう書いてあるの?「あまり使わない」って?
どうでもいいだろ。
jqueryつかってると、ばんばん使ってしまうな。
>>147 P143の一番下の段落。どうでもいいけどねぇ。
クロージャでメモリリークとか(もはや)都市伝説だろ するって主張するなら再現可能な実例を出すべきだね
誰もメモリリークの話はしてない
bindとかで使いまくられとったやん
第五版が出版された当時の話に決まってるだろ
クロージャw
苦労じゃ
googleに聞いた方が早い
>>158 配列を扱うのにfor 使わず
$.each(fooArr, function(i, l){
ここで$.each外の変数にアクセス
});
ってしてしまうとか。
5版て2007年か けっこう古いな
>>68 池沼がページ作ると衝突とか何も考えず複数ライブラリ読み込んだりするんだよ
あえて具体例は挙げないけどpixivとか
今見てきた感じそんなヘボやってるようには思えんが? むしろhtml含め騒動後のボウフラ業者サイトで笑ったがな。イラスト部のコードとかすげえぞ。
>>163 とりあえずvar書いとけ、みたいなコードで笑った
なんでみんなjavascriptオフの環境でちゃんと表示されるか確認してくれないの?
今更javascript offなんて考慮しなくて良い
有効にしてください案内が問題なく出てれば十分 それさえないとこもあるけどさ
amazonとか信頼出来るサイト以外では原則オフにしたいんだけど、 最近javascript有効が前提になってるところが多くて困る WEBアプリならまだ分かるけど、小さいショッピングカートごときでスクリプト有効にしないと操作が進まないとか終わってる
>WEBアプリならまだ分かるけど、小さいショッピングカートごときで >WEBアプリならまだ分かるけど、小さいショッピングカートごときで >WEBアプリならまだ分かるけど、小さいショッピングカートごときで
前時代の人間は大変だな
小規模なサイトだからこそJavaScriptが使えることを前提にして工数省いてんだろうな。 pjaxが普及してくれば多少は状況が好転するんじゃないかと期待してるんだが。
>>168 > amazonとか信頼出来るサイト以外では原則オフにしたいんだけど、
どうぞどうぞ
ここの反応見てると底辺WEB開発者の感覚が分かるわ 大手はちゃんとスクリプトオフでも最低限の機能が使えるように設計してくれるのにな
グーグルの悪口ですか
音声ブラウザや、Javascriptを切ってるような面倒そうな相手は 客にしたくないって店なんだろ。 どうでもいいわ。
次スレ自体いらない
いらないなら黙って他いけよ^^;
200レスもいかないうちに次スレの話を始めちゃう男の人って……
そもそもここでは板違いでしょ。言語の話するなら初心者関係ないし。
そもそもJavascript使いたくないって人がスレ違い。 Web制作板のHTMLスレにでも行けばいいんじゃないの?
「JavaScriptの雑談スレ」でいいじゃん ゆるくJavaScriptのことなんでも語ればいいじゃない ECMAScriptスレ的にその方がうれしいだろ?
Googleが今度発表するDartとかいう言語がJavaScriptキラーになるとか言われてんのな。 ウェブ用の言語って聞いた時にはてっきりサーバー側で動かすだけの言語だと思い込んでたわ。 ブラウザ上でプラグインを介さず実行できる言語の地位は 事実上JavaScriptが独占状態だったわけだが、今後どうなるんだろう。
最初はJavascriptへの変換コンパイラが提供されるんだろうし、 結局はJVMと同じように(invokeDynamic)、 Javascriptが多言語プラットフォームとしても注目されるだけに終わるだろう。
ブラウザ上の言語はSchemeでいいよもう 仕様小さいから実装楽だし
JavaScript は C言語の皮をかぶった Scheme である(キリ
>186 だったら末尾再帰の最適化しろやwww
JavaScriptで実装したScheme処理系がいくつかあったよな
Perl忍者は偉大 Perlの知名度を上げPerl業界に大きく貢献した
BiwaSchemeイイヨ
194 :
デフォルトの名無しさん :2011/09/28(水) 19:18:12.36
>>194 「愛してる」って言わなくてもエスパーで伝わると思っているタイプの人ですか
>>195 どっちかというと、「愛してる」といわれなくても「愛されてる」と勘違いしちゃうタイプなんじゃ…
ecmaスレから誘導された。 パーフェクトJavaScriptって本はどんなもんかな? 購入を検討してる。 ちなみにサイ本は持ってなくて、JavaScript: The Good Partsは持ってるし愛読してる。
>>194 えすぱーしてみると、ネームスペースと非同期処理あたりか?
Javaと間違えられるネーミングだろ
>>197 初心者が読むような本を何冊も集めてなにがしたいんですか?
the good partsは初心者向けじゃない。 少なくともJavascriptの初級抜けてから。
他言語出来る奴にならJavaScriptの初心者でもオススメだけどな
>>201 Googleは4に反対してyahoo, MS他と3.1を作った方。
4はAdobe, Mozilla, Opera他。
なるほど。確かに著作表示に入ってないね。
日本語で読めるjs関連の書籍で、サイ5本とGood partの他にお勧めはありますか? 英語のサイ6出てますけど、日本語版は着手しているのかな?
言語覚える時はちょっと読んで気になったら全部買え 本を行き来してコード真似して書いてるうちに覚える
>>211 208に名前上がっている本読んだことないだろ。
どっちも今から言語覚えようというレベルのやつが読む本じゃないぞ。
>>208 おれのお勧めは「JavaScriptパターン」。同じオライリーから出ている。「Good Parts」とかぶっているところも多少あるが、より実践的な内容になっている。
213 :
デフォルトの名無しさん :2011/10/17(月) 15:56:12.09
配列の並び順をランダムにしたいんだけど 配列のsortの比較関数を使った内部処理がよくわからないから arr.sort(function (a,b) { return (Math.random() < 0.5) ? 1 : -1; }); こういう風にランダムに値を返すソートって避けたほうがいいかな 実装によっては無限ループ入ったりしうる?
>>213 無限ループとかじゃなくて
それだと実際にはランダムにならないという話はあった
>>215 それは Math.random() の実装がくそだからだ
トランプゲーでもっと頭悪い実装した時はとくに問題なかったけど (Math.randomで選んだ要素を新しい配列に入れてその度に元配列から選んだ要素をspliceで消してた) 、 Math.randomってどんな実装なん?
ESではrandomがどのように乱数を生成するかは規定されていないんだっけ?
> (Math.randomで選んだ要素を新しい配列に入れてその度に元配列から選んだ要素をspliceで消してた) だめなの!?
>>216 > それは Math.random() の実装がくそだからだ
勉強しなおせ。
sortのアルゴリズムに大きく影響される。
乱数の実装を疑うなんて冗談にしか見えないんだが。
Math.random()が疑わしいなら自前で乱数生成せい
F-Yシャッフルを使えば解決
「a<bかつb<cならa<c」これが満たされない比較関数で正しくソートできると思ってるヤツは頭がおかしい
まともな疑似乱数というものがわかっていて正しく実装できる奴なら、 大小判定の結果をランダムにしてソート、がまともなシャッフルにならないことは ちゃんとシミュレーションしてみればすぐわかるよ。
>>225 真性乱数でも駄目。アルゴリズムによっては大きく偏る。
学術的にはどんなランダムでも 部分的は偏ることがありうるとか
だからそういう問題じゃなくて、 ソートアルゴリズムの、大小判定部分をランダムにすれば、シャッフルできるだろ、っていう発想が、 根本的に間違ってる、っていう話なの。
「a<bかつb<cならa<c」これが満たされない比較関数を渡されたのに正常終了してしまうsortの仕様がおかしい
半分以上の確率で並べ替えが発生しないのならランダムにはならんだろ
しかし、見事にJavaScriptプログラマのスレとして機能しているな。
>>231 sortのアルゴリズムを一つも知らないからそんな考えになってしまう。
こんなかんじ? var compare=function(a,b){ return b-a; }; var swap=function(a,x,y) { var v=a[x]; a[x]=a[y]; a[y]=v; }; var i,j,a = new Array(); for(i=0;i<23;i++) a.push(Math.random()); for(j=0;j<a.length;j++) for(i=a.length;--i>j;) if(compare(a[i],a[i-1])<0) swap(a,i,i-1);
関数を意味もなく式で書くのはうざい^^
238 :
デフォルトの名無しさん :2011/10/19(水) 11:30:24.80
240 :
デフォルトの名無しさん :2011/10/19(水) 19:13:32.23
FireFoxのadd-onのGreasemonkeyのスクリプトを書いているんですが var img, newElement1; img = document.getElementsByTagName('img'); newElement1 = createElement('hr'); img.Node.insertBefore(newElement1, img); imgタグの前にhrタグを挿入したくこうしたんですが、動きません。 どなたか教えていただけませんか?
よく知らんけど createElement ↓ document.createElement とかのじゃね?
エラーコンソールなんて便利なものがあるんだから使ってあげてください
>>241 さん
ありがとうございます。そうしてみても変わらず動作しませんでした。
>>242 さん
ありがとうございます。書き換えてみました。
>>243 さん
242さんのものを少し書き換えてみました
こんなものがあったのですね、ありがとうございます。
結局、こうすることで文章の表示はできたのですが、挿入される場所が一番下になってしまい、imgタグの前では無いのがよく分かりません…
var my_div = null;
var newDiv = null;
newDiv = document.createElement("div");
newDiv.innerHTML = "<h1>Hi there and greetings!</h1>";
my_div = document.getElementsByTagName("img");
document.body.insertBefore(newDiv, my_div.nextSibling);
245 :
244 :2011/10/19(水) 20:52:25.05
度々すみません nextSiblingは後に追加でしたね。 しかしimgタグの直後でなく、htmlの最後に表示されます。 nextSiblingを抜くと表示されませんでした。
246 :
デフォルトの名無しさん :2011/10/19(水) 20:59:59.44
これは・・・
getElementsByTagNameはタグのリストを返すとあるが
document.body.insertBefore(newDiv, my_div.nextSibling); ↓ var i;for(i in my_div) document.body.insertBefore(newDiv, my_div[i]); とか
var i;for(i in my_div) if(i!='length') document.body.insertBefore(newDiv, my_div[i]);
250 :
244 :2011/10/19(水) 21:23:19.94
意味を理解せずスクリプト使ってる感じか
色々問題あるな
253 :
244 :2011/10/19(水) 22:53:12.08
>>251 さん、
>>252 さん
今日思いつきでやってみて、JavaScript自体始めて見たものですから、問題しか無いですね…
>タグのリストということは、imgの中のsrcとかってことでしょうか・・・
そうじゃなくて、そのページのすべてのimg要素のリスト。
<html>
<body>
<img src="dog.jpg">
<img src="cat.jpg">
</body>
</html>
たとえばこういうページだと、dog.jpgを参照してるimg要素と
cat.jpgを参照してるimg要素の2つがあるじゃん。
ここでdocument.getElementsByTagName("img")を実行すると
dog.jpgのimg要素とcat.jpgのimg要素からなるリストが返ってくる。
これは「HTMLの要素のリスト」であって、HTMLの要素そのものではない。
insertBeforeには要素そのものしか渡せないからエラーが出てしまう。
>>248-249 ではfor in 構文を使うことでリストの要素一つ一つを取り出してるから
とりあえずうまくいっている。
ただ、getElementsByTagNameが返すリストの中には、HTMLの要素でないものもいくつかまじっていて、
>>248-249 のコードではそのうちのlengthという名前のやつしか弾いてないので、
insertBeforeにHTMLの要素でないもの(itemとか)が渡されてエラーが出てる。
for inを使いつつ名前を指定して弾くよりも
for(i = 0 ; i < nodeList.length ; i++){...}で取り出したほうが安全だと思う。
よく分からなかったらjavascript forとかでググってくれ。
今回のケースではリストの中のHTML要素が全部取り出されてからエラーが出たから
外見上は問題なかったけど、もしもHTML要素でないものが先に出ていたら
そこでエラーが出て処理が終わってしまう。
変なエラー出てるけど今は動いてるからいいやと放置していると
後になって謎の不具合に悩まされたりするので、どこでなぜエラーが出てるのかは
なるべく理解しておいたほうがいい。
<img id=abc src=".."> とかだとgetElementsByTagNameで帰ってきたときリストが連想配列になってID名じゃないとアクセスできないし
var i,t="",a =document.getElementsByTagName("img"); for(i in a) t+=i+"\n"; alert(t); で見ると分かると思うが
257 :
238 :2011/10/20(木) 11:05:34.24
>>239 ページのソースを見て昨日半日ほど色々試行錯誤してみたのですが、
どうもうまくいきませんでした。
ちょっと違う手段でやってみたいと思います。
回答有難うございました。
いえいえ
>>239 は
>>238 のjsファイルを取り込んでるって話では?
://sites.google.com/site/mrnkvault/store/ecl_new.js
これっしょ
このスレはDOMの話題もアリなの?
いまさら板違いどうこう言ってもなーって流れだしねえ いいんじゃないの
どもども
263 :
デフォルトの名無しさん :2011/10/20(木) 22:15:04.59
>>255 <html>
<head>
<style>
div{border:1px solid black;margin:10px}
#abc{background:aqua}
</style>
<body>
<div id=abc>id=abc</div>
<div>no id</div>
<button onclick="divChange()">divChange()</button>
<button onclick="abcChange()">abcChange()</button>
<script>
div = document.getElementsByTagName("div");
function divChange(){
for(i = 0 ; i < div.length ; i++) div[i].style.background = "pink";
}
function abcChange(){
div.abc.style.background = "lime";
}
</script>
</body>
</html>
Firefox 7.0.1とChromium 14(ちょい古い)でしか確認できてないが
divChange()でもID付きのdivの背景色まで変わった。
ID名でしかアクセスできないんじゃなくてID名でもアクセスできるというだけじゃないか。
IEとかでは事情が違うのかな。
スクリプトエンジンによって動作が異なるとかひどいな
Web制作板のほうがjavascriptの話題多いし向こうでやりなさい
じゃあここは何のjavascriptのスレだ javascriptってブラウザ以外にも使われてんの?
node.jsなんぞもあるけど 雑談スレみたいな感じらしいぞ 議論みたいなのも含めて 質問自体は質問スレにいってくれ
>>268 WSHではテキストフィルタくらいなら書けるぞ
でもそれはそれでWSHスレの話題になるからスレチだが
(´・ω・`)うん
272 :
238 :2011/10/21(金) 21:48:40.88
>>259 レスありがとうございます。
それを試してみたのですがどうもうまくいきませんでした。
というのもGWTのJSNI上でやってるのでそれが原因かもしれません。
時間ができたらまた色々試してみたいと思います。
いえいえ
ダウンロードダイアログボックスを出すことはできますか? 具体的には、テキストエリアに書いた文字列を、 ボタンを押したらファイルに保存させたいのですが
FileAPIだっけかな
>>2 からHTML5周りの話題探すといいよ
え?つうても無理やろ
ここは”何に使うjavascript”のスレなの?
それ言い始めるとこのスレ要らないってことに
PictBearっていうペイントソフトがVBScriptやJavaScriptで色々と操作できるみたいだけど
>>274 実質数行の cgi を用意しておいて、ボタン押下したら POST すれば良いよ。
dataURLで無理すりゃ右クリックで落とせるリンクは吐けるな
File APIは的外れだっつってんだろ無能 10年ROMってろ
287 :
274 :2011/10/22(土) 19:18:37.42
みなさんありがとうございます
>>283-284 が目的に適っているのでこれを利用したいと思います
古籏一浩 JavaScript 関連のつまらない本を量産してる奴か。
dataURLなんか落とし穴あったような 最近のIEなら大丈夫なんかな
fileAPI的外れと言い切るってことは質問者本人か まあいいけど
あ?ちげーよ 誰がどう見ても的外れだろうが
File API: Writerは対応ブラウザがなー
>>291 どう的外れなのか言ったらいいんじゃね?
お前が何を伝えたいのかお前にしかわからんようでは、お前の書き込みに意味がなかろう
294 :
274 :2011/10/22(土) 20:01:30.64
申し訳ありませんがFile APIは不要です
流石に噴いた
まあ、解決したならもういいじゃんw File APIはクズって事でww
見てごらんなさい。目はつり上がってるしね、顔がぼーっと浮いてるでしょ。これ基地外の顔ですわ
ごめん。それ、オナニーした後の俺だわ。
俺も似たようなもんだ 目の代わりに別の物が釣りあがってるがね(観客大爆笑
javascriptでアプリケーション作ろうぜ
すでに沢山あるが、まだまだと言いたい訳ですな それでどんなアプリで天下を狙ってんですか旦那
>>275 一言
お前みたいな低脳はプログラマ気取るなよ
人の不幸しか呼ばないからな
花屋でもやってろ
>>221 偶数奇数が交互に出る実装とかよくあるからね
たしかPS2かなんかの双六ゲームでやっちゃったのがあったような
乱数表そのまま使うと一番下のビットが交互に並んでるからそうなる
305 :
デフォルトの名無しさん :2011/10/23(日) 13:08:31.76
var wsh = new ActiveXObject("WScript.Shell"); wsh.run("notepad.exe") でメモ帳は起動するのですが、 var wsh = new ActiveXObject("WScript.Shell"); wsh.run("C:\Documents and Settings\user\My Documents\test.exe") は起動しません。 半角スペースの入ったパスの起動方法を教えて下さい
wsh.run( "\"C:\Documents and Settings\\user\\My Documents\\test.exe\"" ); こうかな
おもいっきりスレチだろ
309 :
デフォルトの名無しさん :2011/10/23(日) 13:45:37.68
310 :
デフォルトの名無しさん :2011/10/23(日) 13:46:28.04
このスレ自体がLR違反 プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。 ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。 Javascript は Web 制作板、CGI は Web プログラミング板へ。 業界談義、愚痴はプログラマ板へどうぞ。 ゲーム関係の話題はゲーム製作板へどうぞ。 ネタ、板とは関係の無い話題はご遠慮ください。
var d =newdate(); d.sethours(d.gethours()+hours*1); この最後らへんのコメマークの意味がいくらググッても出てきません。どなたか教えて下さい。
JavaScriptの書き方の勉強をすればすぐ解るよ。
なんやこりゃ?hoursが文字だから数に変換しとるとか?
ああ、数値変換だね
>>312 勉強中にこれが出てきて足止めしてます。
クッキーの有効期限を設定するところです。上の方でhoursに1が代入されて1時間でクッキーが削除されるんですがコメ1の意味がわかんないです。
>>315 文字列のhoursに数字の1を掛ける(*)ことでhoursを数字に変換している。
>>316 てっきり正規表現みたいな感じかと思ってました。助かりました。
レス下さったみなさんありがとうございました。
+ 0 じゃダメなの?
>>318 +は文字列連結の演算子でもあるのでダメじゃないかい?
320 :
デフォルトの名無しさん :2011/11/18(金) 02:16:27.92
さきほど質問した時と全く同じプログラムからなのですが 恥を忍んで質問させていただきます。 var options = new Array(); options.push("expires=" + d.toGMTString()); // 引数『key』『value』を元にした設定と、時刻の設定を、 // 文字列結合してクッキーに書き込み document.cookie = escape(key) + "=" + escape(value) + "; " + options.join("; "); // 『key=value; expires=時間』を書き込み このjoinとはoption内の配列の間に;を付け足すって意味ではないのでしょうか? この場合だとexpires= と d.toGMTString() の間に ; が入ると 解釈したんですがどうやら違うようです。 どうゆうことなんでしょうか?
>この場合だとexpires= と d.toGMTString() の間に ; が入る 入らない。 "expires=" + d.toGMTString() これ全体で一つの要素だから。 options.push("expires=", d.toGMTString()); または options.push("expires="); options.push(d.toGMTString()); のように書けばキミの言うような結果になる
>>322 すいません。こちらが質問スレなのかと思ってました。
OKWAVEで答えが来なくてこちらで聞いてみたんですが、すでにあちらの答えが返ってきてました。お騒がせしました。
>>323 ここにも説明付きで貼りつけること。
マルチポストの責任。
>>323 そんなことよりOKWaveの回答者にお礼いって「マルチポストしてました」とお詫びしなきゃ駄目でしょ
もちろん、ここのURLも張ってね
質問から2時間でマルチポストして4時間30分で回答がついてるんだよ?
せっかちなあなたが回答者だったら「まだお礼ついてない!」って怒ると思うけど
つか回答者も張り付いてるわけじゃないんだから2時間でマルチポストは早すぎ!
こうゆうのマルチポストってゆうんですね。質問直後の上段表示時点で回答が無かった上に何故かJavaScriptのカテゴリーにリストアップされてないみたいだっので諦めて2ちゃんで聞いてしまいました。一応起きた直後にお礼したんですが時間的には大幅に遅れてしまってました。
> JavaScriptのカテゴリーにリストアップされてないみたいだっので JavaScriptにカテゴライズされてるようだけど
>>326 マルチポストに触れずにお礼だけいって閉めたのはなぜ?
単に他人が答えるという事に対して何も思わないクズなんだろ。
330 :
321 :2011/11/18(金) 18:01:16.00
こっちで回答した僕にはレスくれないのね
> 質問直後の上段表示時点で回答が無かった 質問直後にどうすれば回答できると思ってるのやら
…とまあ、マルチポストは色々と問題を孕む行為なので原則しないように。
> 一応起きた直後にお礼したんですが時間的には大幅に遅れてしまってました。 嘘いうなよ。>323の書き込みから50分も経ってからお礼してるだろ。
マルチポストごときにいつまで粘着するつもりだよw
質問者はアカウント消して逃げたか
document.cookie = key1=value1; expires= + d.toGMTString() javascriptではこのようなクッキーへの書き込みで セミコロンは間に置いて文末には付けないのでしょうか?
337 :
デフォルトの名無しさん :2011/11/19(土) 03:08:07.39
javascriptってなんですか?
ふつーは言わなくても分かる
>>336 JSの場合、文末のセミコロンは必須ではないからな
一行に複数文書くなら要るけど
341 :
デフォルトの名無しさん :2011/11/19(土) 12:13:09.01
イジメられすぎておかしくなったんだよ。 毎日知恵袋の質問ここに貼りまくったりして。
「こうゆうのマルチポストってゆうんですね。名前を変えればマルチポストにならないと思って2ちゃんで聞いてしまいました。」って書きそう。
あまり叩きすぎるとお荒し様に化けるのでほどほどに
344 :
デフォルトの名無しさん :2011/11/19(土) 17:55:18.52
var a = b = c = 1; とした場合、aはvar宣言してるように見えるのですが、bとcはvarで宣言されているのですか?
じゃあここは何スレッドだよw
それは誰も知らない
質問以外の話題全般だろ 誰も使ってないがなw
少なくとも質問スレではない
>>1 が適当な理由で立てたスレだから存在意義があやふやなんだよ
雑談スレの認識の人もいるが、新しく立て直した方がマシな状態
代入前に、 alert(a); alert(b); として確かめればいいんじゃないかな?
>>344 var c = 1;
var b = c;
var a = b;
というメカニズムだよ!!!
prototype.constructor書き換えによる継承とか、 super、virtual、privateの実装の話とかしようぜ。
初心者スレですれ
なんだここ
Don't think. Feel!
ゲーセン嵐とネオって似てるよね
360 :
デフォルトの名無しさん :2011/11/21(月) 23:17:26.79
だれかextjsに詳しいやついる? レイアウト変えるのが難しい・・・
このスレLR違反 プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。 ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。 Javascript は Web 制作板、CGI は Web プログラミング板へ。 業界談義、愚痴はプログラマ板へどうぞ。 ゲーム関係の話題はゲーム製作板へどうぞ。 ネタ、板とは関係の無い話題はご遠慮ください。
Windowsでいう、JS/CScript みたいな環境ってUNIX系にはないの? 要するに、JSに標準入出力やファイル操作&入出力などを追加したような環境 Perlとかを新たに覚えるしかないんかな
>>363 seed
gjs
Rhino
どこまでできるかは知らない。
seedとgjsはGnomeとかGTKのAPIが使える。
試すにしても、電車の中でヒマなんで簡単に調べてみた… node.js ってだいたい枕言葉的に「サーバサイド」って付くから サーバ上で動かさなきゃ無意味なもんだと思い込んでたが 標準入出力を備えてるから単なるスクリプトとしても使えるのね Rhino はJavaのライブラリが使える=色々出来る、と。 gjsとseedは純粋に知らんかった。seedはググりにくいな…慣れか
nodeがいんじゃない 速度も速いし
行指向のフィルタとか作るには なんかいるけどな
document.getElementById("hoge").firstChild.firstChild.nodeValue; の firstChild.firstChildって短縮する方法はあるのでしょうか?
childNodes[0].childNodes[0]..nodeValue
>>372 thx
この場合はfirstChildのほうが短いけど他で長い時に時に使えるんですね
function f(x){return x.firstChild}; を定義しておいて f(f(document.getElementById("hoge"))).nodeValue; Node.prototype.f = function(){return this.firstChild;}; とか、拡張して document.getElementById("hoge").f().f().nodeValue; …なんちて
二回書きたくないだけなら var f="firstChild"; document.getElementById("hoge")[f][f].nodeValue; でよくね
そのてもあったか。 あと、Getterつかうとか。(IEじゃだめだっけ) Node.prototype.__defineGetter__("f",function(){return this.firstChild;}); document.getElementById("hoge").f.f.nodeValue;
myFolder = Folder.selectDialog("フォルダを選択して下さい"); ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for (i = 0; i < ABC.length; i++) { myX = ABC.charAt(i); exFolder = new Folder("\""+myFolder+"/"+myX+"\""); ← if(exFolder.exists){ 質問です、現在After Effectsに使用するスクリプトを組んでいます 選択フォルダ下階層の存在するだけA〜Zのフォルダを読み込みたいのですが 矢印部分でエラーが出ます 指定の仕方が間違っているようなのですが分かりません、どなたかご教示お願い致します
new Folder(myFolder+"/"+myX);
出来ました!ありがとうございます
すみません、ラジオボタンで質問があるのですが var myfps = 24; var radiobutton1 = this.panel1.add("radiobutton", [ 117, 69, 117+ 53, 69+ 24], "24fps"); var radiobutton2 = this.panel1.add("radiobutton", [ 117, 92, 117+ 59, 92+ 24], "30fps"); radiobutton1.value = true; radiobutton1.onClick = function(){myfps = 24;} radiobutton2.onClick = function(){myfps = 30;} ラジオボタン2が選択された状態でOKされた時myfpsが30になるようにしたいのですが上手くいきません functionでは動かないのでしょうか
this.pane1てなんやねん
とりあえずonClickじゃなくて onclickじゃねえの
結局ここは質問スレなのか 何のためにスレをわけてるのかわからん
385 :
デフォルトの名無しさん :2011/12/03(土) 16:00:24.65
多分誰も分からないと思う
みさくら語コンバータってソース公開していますか?
389 :
デフォルトの名無しさん :2011/12/03(土) 19:17:26.10
普通に見れるじゃん
>>391 ありがと 自分のHPに組み込みたかったの
HTMLソースを読めないレベルで自分のサイトに組み込めるか怪しいが てか、ライセンス書いてないのな 許可はちゃんと取れよ
>>393 HTMLのソースからJSファイルへのリンクも辿れないアホが
プログラムに著作権があるってことを知ってるとは思えん
コピペして使いまわすにきまってる
おまえのものはおれのもの、おれのものもおれのもの
何か問題でも?
だけど、お前はおれのもの
>>396 ライセンスの記載がないものは制作者に許可をもらわなくてはならない
配布物ではないなら尚更に
個人サイトなら黙って使っててもバレることなんてそうそうない
ばれなきゃいい
論理のすり替え
まあ、そのみさくら語コンバータの作者はみさくら先生に許可とってるのかって話も。 (だからといってパクっていいわけはない)
つまり、こういうことか? みしゃくらにゃんこちゅにお゙ぉおォおん願いぃぃぃぃっっっ゙しにゃければにゃらにゃいぃのぉおお
386 :デフォルトの名無しさん:2011/12/03(土) 16:56:21.20
みしゃくら語コンバータってソース公開してぇぇぇぇ゛いぃましゅぅぅぅか?
398 :デフォルトの名無しさん:2011/12/04(日) 14:18:53.51
>>396 ライセンスのぉおお記載がにゃいぃものぉおおは制作者に許可をもらわにゃくてはにゃらにゃいぃのぉおお
配布物れはにゃいぃにゃら尚更に
うーむ
よくできている
javascriptって何時までたっても ブラウザ毎の仕様が統一されないけど そういう部分ってもっと厳格に 規格化しようとする動きとかないの?
はぁ?
もしかして: DOM, XHR, HTML5, etc...
408 :
デフォルトの名無しさん :2011/12/14(水) 01:37:46.29
10年以上前にタイムマシンは完成してたということか
411 :
デフォルトの名無しさん :2011/12/14(水) 18:31:26.94
何を以って「動かない」とするかも分からん読んでないけど
なんでプログラム板にこのスレがあるんだ
JavaScriptがブラウザ以外の環境でも使われだしたから。
乱立するからクライアントネタならweb制作板でやれ
>>414 特に変化がないって言ってるが、Safari は Ogg 何かも再生できるようになってる
状況はかなり変わってるぞ
jsはブラウザによって挙動が異なるけど、これはjsで言うところのクライアント(エージェント)ねたになるのでweb系板扱い。そもそもム板ではブラウザの挙動などまったく興味ないし誰も知らない。
>>413 それならブラウザで使用するJavaScriptの話をここでするのはおかしいんじゃないの
ム板でjsスレがあってもおかしくないけど、ブラウザねた(jsコンパイラの実装レベルの違い)や ブラウザ依存(xml/domなどの処理クラス・オブジェクトのサポートがブラウザ別にある・ないなど)の話題が中心になるは興味ないしそういうtipsコードはプログラムに関係ないからこの板では勘弁してほしい。
いくつか乱立してるからそのうち一つにまとめると2ch jsコミニティーとして成立するだろうね。 【node.js】サーバサイドjavascript【Rhino】 みたくクライアントサイドの議論じゃないってことを付けとくと勘違い者とかまぬけ者は無理にスレに入ってこないだろう。 俺はインタプリタでrhinoを使ってるからjavaにも精通する必要があるしcgi,httpserver,streamなんかも当然に理解してる必要があるけど、ブラウザでやるならmozilla,webkit,chromeのjs実装が中心でms-ieはweb板扱いになるんじゃないか。
このスレはJavaとJavaScriptの違いすら解っていない馬鹿が立てた JavaScript関連の雑談スレだっけかな だから削除依頼なりなんなりして良いと思うよ ブラウザ依存なんかの質問とかは基本的に質問スレに誘導してるし
>>422 立てた奴の資質より、集まって来る奴のマナー次第。
JSとESは別だろ
今も昔もJSを一般化してまとめたのがESだからMOZILLA+JSが元締めだろ・・・と思う
>>424 ecmaスレはjsのオレオレ実装とか利権団体(google,adobe実装)とかの集まりでスレが腐ってるってこと?
ecmaスレを30分ぐらいかけて読んでみたけど、ecma仕様の中の人が一人で頑張ってるってところじゃないか。 そいつの排他的な信仰心せいでスレの雰囲気悪くなってるからjs,mozilla中心の話題で、html5やserverside,js libraryなど仕様にない最新技術のjsスレとしてフォークした方がいいって感じはする。 本当はこんな過疎板ならjsスレは一つで十分だけど、奴の仕様絶対の信仰は一生経っても曲がらないだろうからes3スレは奴の隔離スレとして無視して、ゆとりやガイキチ荒しと同じで相手にしない方がいいだろう。 どうせこのすれもチェック入れてるんだろけどな(笑)
ところで、もしかしてnodeって 「標準入力から一行読み込む」ってのは無かったりする?
Readlineなんかを使えばできる
431 :
デフォルトの名無しさん :2011/12/15(木) 16:44:54.19
向こうはWeb プログラミング板が管轄のDOMだのライブラリの話が来るから言語まわりって事になってた気がするけど そもそもマ板から別れたム板でhtml5とか板違いじゃないか? あとCoffeeとかdartとかactionscriptはどうなるのよ。
actionscriptは板違い flash板
コーヒスクリプツはとかweb系はやっぱりwebprog板じゃないと人があつまらないしこの板で扱う内容でもない
>>422 ,431
>ブラウザ依存なんかの質問とかは基本的に質問スレに誘導してるし
こういう認識なら即刻考えを改めた方がいいだろう
過疎板では答えるかどうかは強制ではないから質問も雑談もほとんど同じだし質問用・雑談用・言語仕様専用とかに細分化することもマヌケってことに気がつかないといけない
ecma 3スレなんかはコミ障みたいなスレ主の資質も然ることながら万年万年閑古鳥じゃんw
jsのコミニティーがないならないで別に構わないけど、jsとhtml5によってクライアントサイド(ブラウザ)以外でもパラダイムシフトが既に始まっているってのも気がつかないんだろ?
コミニティーがないと、情報も分散するし分かる人だけが次に進めることが出来てそうでない人は時代に取り残されちゃうと思うよ
ここは環境依存の少ない、言語関連の話題や汎用ライブラリ関連の話題でいいんじゃないかのー。 あと独自アプリにJavaScriptを埋め込む話とかもアリだろ。
rhino,java,mozilla以外に興味ないからその他のCoffee,dart,node.jsとか一時期のはやりだろし、サーバサイド・ライブラリの議論もこっちでまとめていいよ。
ecma 3スレに合流するのが本来だけど、
>>428 のとおりあそこはガイキチさんが息絶えるまでまたは言語仕様原理主義者専用(権威ism信仰者とも言う)の隔離スレってことで問題ない。
web系の頭が軽そうな連中はこのスレの議論に付いてこれないし、ム板にでは最新ブラウザ云々の話題に答えられる者もいないからjsスレがこの板にあっても問題ない。
windowsでcoffiescript使う方法をおしえてください
それを一言でいえばecmaスレは隔離スレってことだろ? 過疎ってる板で運営の裁量などどうでもいい さらにソーシャル概念が一般人にも認知された現在では、初期の頃は匿名が2chの最大の瓜だったけど今に至れば2ch本体がもう洋梨なのかなと思う
>>441 その説明の延長だとjsだけじゃなくてpython,rubyスレなんかはム板じゃなくてwebprog板に移動するのが適当ってことになるけど?
>>441 webprog板を覗いてみたけど、ム板より過疎ってるしjava,java eeもなくphp中心でもう終わってるじゃん
この際、人気がない全ての板(ブラウザ以外)はム板に合体してもいいんじゃないか
>>443 いまの隔離スレはdartスレだな。
dartの話しせずにjsは糞か最高か争ってる横でライブラリ最高ライブラリがないから糞とか言ってるのしかいない。
ここ統合してdartスレが落ちたらそいつらが合流するな。
>>444 なんでそうなるんだよ。
perlはム板から追い出された過去があったな。
>>444 お前の理屈だと、CでWebProgできるからCはWebProg板に行けってことになるだろ?
Cもpythonもrubyもweb関係ない領域で普通に使われてますから。
JSもそうなりつつあるからこのスレはここであってると思うんだよ
dartは結局、ECMAScriptの互換実装のグーグルバージョンってだけで、chromeようのapiを用意しているとかでms jscriptがやってるwindows/activex向けとかと同じだろに
>>448 そう思うならこのスレにふさわしいネタを用意しとけよボケ
>>448 これのどこをどう解釈したらそんなぶっ飛んだ解釈になるんだよ
●スレ違い●なレスの例
+ JavaScriptによるWebページの挙動実現に関する疑問/質問、は、
■スレ違い■です。→Web製作板へどうぞ
+ Webブラウザの動作挙動に関するの疑問/質問 は、
■スレ違い■です。→Web製作板へどうぞ
+ そのほか、Webページ作成に限定した内容の疑問/質問 は、
■スレ違い■です。→Web製作板へどうぞ
■参考■[Web製作板] + JavaScript の質問用スレッド vol.59 +
http://pc11.2ch.net/test/read.cgi/hp/1187856865/l50 ※JavaScriptが板違いと言いたい人へ
運営サイドから次のような見解が出ています。
|459 飛べない削除屋 ★ sage :04/05/30 15:38 ID:???
|>?>458
|ローカルルールにはひどく単純化されて書かれていますが、
|Javascript という言語そのものが板違いなのではありません。
|用途によって板違いかどうかを判断してください。
ここだろ
なんで板が違うだとかそんな些細なことで白熱できるのwww そんなに無駄にできる時間があるなんて羨ましいわwwww
スレ違いを主張する時間はなくても他人を蔑む時間はあるのか
456 :
デフォルトの名無しさん :2011/12/17(土) 15:17:56.34
>>26 なんでも叩くこの世の底辺ニューカス民のおいらっちですら
中学から・灘・甲陽学院・東大寺学園クラスの進学私立で大学は楽に東大京大理系以上の連中は尊敬せざるをえんわ
東大文型は微妙だけどどうなの?
ごめん間違えた。 文系で特に文IIIの連中だとどうなの?
459 :
デフォルトの名無しさん :2011/12/17(土) 15:31:13.52
461 :
デフォルトの名無しさん :2011/12/19(月) 11:51:37.02
昨日からJavaScriptを勉強し始めたのですが、 <a href="JavaScript:foo()">foo実行</a> fooに引数を渡す方法ってありますか?
引数という言葉を知ってて渡し方を知らんとはどういうこっちゃ
465 :
yuitest :2011/12/19(月) 19:54:39.54
466 :
yuitest :2011/12/19(月) 19:55:29.53
最強の相槌は、「そしたら?」かな?
467 :
デフォルトの名無しさん :2011/12/20(火) 00:26:51.60
すみません、引数に文字列を渡す方法を教えてください <a href="JavaScript:foo("hello")">foo実行</a> これじゃだめですよね?
<a href=JavaScript:alert("hello")>alert実行</a>
470 :
デフォルトの名無しさん :2011/12/20(火) 01:11:16.03
ここプログラム板だよな?
そです JS自体は板違いではない(一応コンソールアプリとかも書けるしな)が Web絡みの話題が出やすい言語ではあるだろうな
>>471 そもそも JS スレは ECMA スクリプトスレに統合って話だったんじゃなかったの?
ECMAスレはガイキチさん達の隔離スレらしいですよ
HTML絡んだら基本板違いじゃね。
同意
最近の面白いJavaScriptの使い方教えてよ
JavaScriptを使って漫才やります! JavaScriptってどんな漢字だっけ?
蛇馬酢栗麩湯
犀
柔素暗号 やわすくりぷと
482 :
デフォルトの名無しさん :2011/12/24(土) 14:32:48.56
483 :
デフォルトの名無しさん :2011/12/25(日) 02:31:46.16
window.location.hrefで指定したURLのページが完全に表示されたかの情報を取得することってできますか? ループ内で使っているのですが、aleptを仕込んでテストしてみたところ、 ページの読み込みが終わる前に次のページを指定してしまっていって困っています
>>483 そのやり方でそんなことはできない
window.onload や $(document).ready を使う
485 :
デフォルトの名無しさん :2011/12/25(日) 03:03:02.83
連番でアクセスかあ。いまどきそんなエロサイトあんの?
推測だけどfirefox拡張とか書いてるんじゃないかな?
489 :
デフォルトの名無しさん :2011/12/25(日) 03:53:31.22
ありがとうございます
>>486 見てみましたが難しそうですね
jQueryというものがどういう扱いなのかちょっと調べてみます
画像収拾ではなくて単にページへのアクセスが完了したいのです
>>488 HTML+JavaScriptで書いてます
日が浅いので苦労してます・・・
490 :
デフォルトの名無しさん :2011/12/25(日) 04:04:30.99
Web制作行けよと
491 :
デフォルトの名無しさん :2011/12/25(日) 17:49:48.61
GoogleのV8エンジンを使ってJavaScriptをスタンドアローンで実行しています (Web関係ないのでプログラム板にも残しておいて欲しい....) var ss : "Hello World"; print (ss); の型指定:がエラーになるのですが、これはV8の対応しているJavaScriptのバージョンが古いためでしょうか? V8のはECMA-262に準拠しているらしいのですが、これが何を意味するのかさっぱりわかりません。
JavaScriptの勉強しておいでよ スタンドアローンで実行していても基本はJavaScriptなんだから ECMA-262はJavaScriptの仕様を策定公開している番号で 現在はECMA-262-5the editionかな
>>491 まずはブラウザ使って初心者の立場で頑張れ
JavaScript 入門 とかでググるといいぞ。
でも、何見てそういうふうに書こうと思ったんだろう…
495 :
491 :2011/12/25(日) 21:36:14.43
HTML埋め込みのJavaScriptは気持ち悪いから嫌ぽ スタンドアローンのV8が良いんだけどちょっと古いみたいですね 型指定はできないようです
ECMAScript規格から外れる機能使いたければgjsとかseedとか使えば?
>>491 そりゃエラーになるだろw
そんな文法はない。
古い本を図書館で借りて勉強してますみたいな感じかなw 型が書いてないのに型指定とか言葉の意味も わかってない段階みたいだ。
>>495 > スタンドアローンのV8が良いんだけどちょっと古いみたいですね
うん。
お前の見てる本が古いwww
図書館においてある本なんて古くて質が低いのに。時間の無駄だろばかだな。
まず文法ミスを先に気持ち悪がれよw
単純な文法ミスは初心者は誰でもやることだから そんなのはどうでもいい。 だがミスの仕方が不自然。 普通の初心者なら「型指定」なんて用語を この段階で使うわけがないんだ。 そして型指定という用語の意味を分かっている人間なら こんな初歩の初歩というか、プログラム言語一つも知らないよね?って ミスをするわけがないんだ。 どうしてそういう書き込み内容になったか それを推測する方が楽しいだろw
無知なのにずいぶんと背伸びしている 自信過剰な人間とプロファイリングしてみたw
504 :
494 :2011/12/26(月) 00:10:09.99
>>502 俺もそう思った。
型指定があるようなのだったら
var ss : string = "Hello World";
print (ss);
なかんじかなあ。
そういうjavascriptっぽいのがあるの?
>>504 ActionScriptと勘違いしたんじゃね?
まあ、見たことのない間違い方だから、どうしてそう書いたかは気になるな
ちょっとJSON風だとか {s1: "Hello"}
しかもV8とか無理しちゃってなw 普通にブラウザでやってろってw
508 :
デフォルトの名無しさん :2011/12/26(月) 00:50:22.89
俺のSpaiderMonkeyはECMA-1262準拠だからそういう書き方もできるぜ!
ひどい自演を(ry
最近動的型vs静的型スレが上がってること多いし、 それ読んで知ったかしてしまっただけと見た。
init メソッド簡単に教えろください
516 :
デフォルトの名無しさん :2012/01/02(月) 12:47:38.72
初心者です。 XMLHttpRequestによる同期通信は基本的にやらないほうがいいんでしょうか?
>>516 asyncである必要性なんてない。普通に使っていいと思う。
それと詳細はここじゃなくてWebプログラム板の方で。
…けどなんでそういう疑問が出てきたんだ?
もしかしたら見当はずれな回答してるかもしれない。
同期だと通信中UIが固まるのでよっぽどの理由がない限り非同期にすべきでは
「この話題は板違い」とか言うならecmaスレと同じじゃないか このスレ何のためにあるんだ?
>>519 昔のブラウザはそうみたいですね。
浅い知識で答えてしまって申し訳ない。
>>520 勝手に板誘導のためだと思ってた。
昔のブラウザとかは関係なくて、同期通信とはそういうもの
ま、これも敗北宣言の一種か
何か誤解があるように見受けられます。 ブラウザの話は(恐らくソケットに関する)メモリリークの話です。 応答性が重要ならそもそも同期通信という発想が出てこないでしょう。
誤解は私の方でした…すみません。 レス番間違えてました。
>>520 ・このスレはWeb制作に関係しないJavaScriptスレ
・ECMAScriptスレはECMAScriptに限定したスレ(DOMとかXHRはスレ違い)
だと思うよ。.
>>1 は深く考えず、適当にスレ立てて逃げてるっぽいけどね。
XHRはWeb制作に関係している気がするからスレ違いの指摘は妥当かと。
ブラウザじゃない処理系でXMLHTTPRequest使えるのって少ないね。
XMLHttpRequestはActiveXのMSXML2.XMLHTTPと互換性があるから COMが使える処理系ならなんでも使えると思うけど?
用途的にも結局Web向きじゃないの
Airのこともたまには思い出してあげてください
tamarinが公開された時にソースコード読んであまりの適当さに吹いた。 Adobeな人たちの開発者MLのダルな雰囲気もワロタ。
AjaxとJQueryがあってはじめて いきてくる言語だな 昔、この言語使い道ねーと思ってたのに
いやCanvasさえあれば、昔のBASIC以上に使い道はあるよ
なんでIE6はCanvasをエミュレートできるんだ? 元からCanvas相当の機能が搭載されていたってこと?
>>536 IEには、Windowsの機能をほとんど利用可能にする裏技というか隠し機能があるんだよ
もちろんセキュリティ問題があるから、一般には伏せられているけどね
詳しいことは、このスレを機密公開モードで見ればわかる
名前欄に「fusianasan」と入れてこのスレに書き込んでごらん
>>537 一般に伏せられていることをなんでお前なんかが知ってるのさw
矛盾してるな。
通報しましょう
ビルゲイツに決まってんだろ
541 :
デフォルトの名無しさん :2012/01/07(土) 14:59:48.15
Javascriptの開発のためのツールってないんですか?
いろいろ調べてAptana Studio3というやつをインストールしてみたけど
初心者でまだJavaScriptのプログラミングをしたことのないひとにとっては
わけがわからなすぎる。
単純で【シンプル】なソフトないですか?
HTMLで言えば「へきへき帳(
http://takabosoft.com/win )」みたいなタグ打ちしか機能のない【シンプル】なやつ。
つ メモ帳
543 :
デフォルトの名無しさん :2012/01/07(土) 15:23:59.10
WebStormでも買っとけ ただがいいなら諦めろ
545 :
デフォルトの名無しさん :2012/01/07(土) 15:41:31.99
やっぱりタダがいいんですがないでしょうか?
>>543 時は金なり。
楽して時間節約したかったら金出せ。
547 :
デフォルトの名無しさん :2012/01/07(土) 16:04:01.57
初心者の質問です。 JavaScriptをWebブラウザで使う時に、 別ページで入力された値を参照する事は可能でしょうか? やり方以前に可能かどうかすら分からないので教えてください。
ケースバイケース。 元のページが管轄外なら原則無理 (xss の穴があれば可能な場合もある)。
画面遷移時にクライアントサイドだけで情報を引き継ぎたいならクッキー
550 :
547 :2012/01/07(土) 19:23:24.72
ありがとうございました。 クッキーでいけそうなので試してみます。
MSE7.EXE
552 :
デフォルトの名無しさん :2012/01/08(日) 11:54:31.05
NetBeans
JavaScriptのchar型って文字列ですか数字ですか? Javaみたいにchar型とbyte型があって明確に分かれてますか?
>>553 どのJavaScriptか知らんけど、
俺の知ってるJavaScriptには文字やバイトを表現するデータ型はないぞ。
>>553 むしろchar型があるJS実装を教えてくれ
つ typed array
557 :
デフォルトの名無しさん :2012/01/10(火) 17:36:11.77
558 :
デフォルトの名無しさん :2012/01/10(火) 18:28:08.18
>>558 対話式に指導してるから、本見て学習するより効率的だろうな。
まだ初歩的なレッスンしかないけど。
英語に抵抗なきゃええんでねーの?
>>547 webの質問はweb制作板でやってね
本来あっちで扱うネタだからそれ
ちがうだろ。ここはJS全般のスレッドだから。JSネイティブだけの話したいならECMAScriptにいけ。
>>558 このサイト、英語の勉強にもなるしいいね。
>>547 の質問は完全にWeb制作板の範疇だろ。
ここで質問する神経が分からない。
答えようと思うなら答える、 そう思わないのなら、何も書かない。 最低限のマナー
じゃあこのスレ不要だから削除依頼だしとけよ
仲良くしろっつってんだろ 馬鹿なの?氏ぬの?どっちなの??
>>565 サーバサイドじゃないnodeとかどこで語ればいいのさ
次からスレタイに総合やた全般やら入れとけ
全般でおけ
いやこんな低レベルなスレマジで要らないけどな お子さましかいねえ
だったらわざわざ見に来るなよw
そういう返しが低レベルだって事なんだがな
ここが低レベルかどうかなんて誰も気にしてないよ 自分が必要ないと思ってるスレにわざわざ書き込まないでね
検索フォームに文字を入れてフォーム下ににょきにょきって感じで結果出てくるようなことってjQueryで可能でしょうか? 可能であればサンプル等あるサイト教えてください よろしくお願いします
web制作板に行って聞いて下さい。
すいませんそうします
にょきにょきがよくわからんけどたぶんできる でもサンプルとかわからないな
クソスレ過ぎ…… Javascriptなんかおつむの弱い奴用言語だから仕方ないか。
未だにJSをステータスバーにメッセージスクロールするとか 右クリメニュー出さないようにするのに使う言語だとでも思ってるのかい?
ここではWebの話はしちゃいけないんだよ
訳あって早急にjavascriptを覚えて使わなければならなくなりました。 プログラムは全くjの初心者なのですが、 いきなりjavascriptから勉強してもなんとかなりますでしょうか。 それともHTMLとかいうものから勉強した方が良いでしょうか。 よろしくお願いします。
早速のお返事とご指摘ありがとうございます。 webっていうのを使うと思います。 以後、該当スレで質問してみます。 どうもありがとうございました。
Webっていうのってw ちょっとはじゃなく、バリバリ使えないと無理だろ
彼は明日本屋へ行って店員に聞くのさ 「webっていうのの初心者向けの本あります?」
会社に買ってもらえよ
587 :
デフォルトの名無しさん :2012/01/17(火) 02:22:24.30
山田さんに買って♥ってお願いするといいよ。
.
for(var i=1; i<6; i++){ $("#target"+i).change(function () { alert("change!!"); }).trigger('change'); } って、ID:target1〜target5までにイベントリスナを設定してやろうと思ったのですが なぜかiが最後の値の「6」を返してしまいます。 この現象と対策についてどなたかご教示を・・・。
質問スレのFAQとリンク先読めば多分解決する しなかったらクロージャで勉強しろ
しかし海外じゃnodeやcoffee-scriptがクソ盛り上がってるのに 相変わらず2chじゃJSは伸びないのな それとも本スレはマ板じゃないのか?
マじゃない、ム
ヒント 日本人のレベル
nodeやってる人はhatenaとかtwitter界隈に多いってだけだろ。 それに日本だとまだまだJSに対する言語的な偏見が多いからなー。
2chが過疎ってるだけだと思う
2chが過疎ってるというか、使用者が分散してるな
2ちゃんなんて初心者しかいないし盛り上がれないよ 悪いけどこんなところで情報交換なんてするつもりもない
初心者っぽい書き込みだな。
nodeはサーバサイド専用スレあるよ。まあ盛り上がってないけど。 2ちゃんねるにはどうせろくな情報ないし問題ないでしょ。
昔の2chならギークな人も一部居たりはしたけど今はあんまり居ないからな。 今の2chはそれなりのレベルの人が初心者に教えるためにあるようなもんだし。 初心者はまだNodeをしようって感じでもないからな。
2chじゃロクな情報が入らないのは昔から。 本気でやるなら、ユーザーグループに入るなり、 海外のブログ読み漁ったりしないとどうにもならんでしょ。
>>603 必死になるなよ
情弱で低能なのを隠そうとしても哀れなだけだぞ
お、おう
もうこのスレ要らないよね
そうだ、削除依頼を出そう。
圧縮ツールでコンパイルするのが主流になるんだろか もうさ、HTML・CSS・JS全部コンパイルして ブラウザバイトコードに変換したれ
NaClって知ってる?
NaClはネイティブコードにコンパイルされてることと それを実行するサンドボックス(ジャンプ命令とかをひっかけて安全にする)がミソ
chromeのサンドボックス内のプラグインと同じ?たとえばflashプラグインとjsもお互いに何か投げ合えるよね
NaClじゃ全くだめだろう
NaClはベンダー独自実装だからな
サイ本買おうか悩んでるんだけど、最新第6版は日本語訳ないのがなあ…… やっぱ英語で読むべき?みんなはどうしてる?
欲しいなら両方買えば?
俺が最近買ったからきっとしばらくしたら第6版でるyo
>>618 英語読むのを躊躇するような人は迷わず日本語版買った方がいい。
補完情報は他で手に入れればいい。全文英語で読む苦労を考えれば、
よい補完情報(英語のものも含む)を集める苦労は大した事ない。
2chは有用な情報が少ないから暇人しか来ない・・
口開けて情報待ってる奴は、何を見ても情報だとは気づかない。
argumentsのプロパティの一部が使えなくなるそうですが無名関数の再帰とかはどうするんですか? 再帰したい場合は関数に名前を付ける方向?
方向。 var f = function f2() { setTimeout(f2,1000); console.log(Date.now()); }; console.log(f2); // ReferenceError
関数名を付ける方向なんですね
どうしてもstrict modeで無名再帰がしたいなら不動点コンビネータ使えば?
違うだろ。無名関数はarguments.calleegが使える
爺w
> 無名関数はarguments.calleegが使える 使えません。
jQueryに関する質問です。 作業時間の推移を折れ線グラフで表示するプログラムを作成したいのですが、 y軸に何時間何分何秒という値を表示する方法はあるのでしょうか?
> y軸に何時間何分何秒という値を表示する方法 以外のできている部分の動作するコードでも貼ってくれないと 大雑把過ぎてなんとも
ブラウザ内での表示でしょ。Web制作板で。 JQueryと一緒に使えるplotライブラリいっぱいあるよ。flotとか。
634 :
デフォルトの名無しさん :2012/02/02(木) 20:49:51.10
教えてください。 ActiveXコントロールのプロパティ(PropertyA)に値を設定するところで IE8標準モードまでは普通に動作するけどIE9標準モードでは 異常値を設定すると例外がキャッチできないです。(例外にならない値なら正常に動作) try { sampleControl.PropertyA = document.getElementById( "PropertyA" ).value; } catch(e) { alert("PropertyAで例外発生"); } で、プロパティに値を設定するところの記述を下記のように変更したら意図通りに動いたのですが これがJavaScriptの書き方として正しいのかがわかりません。 sampleControl.PropertyA(document.getElementById( "PropertyA" ).value); どなたか、何かご存知ないですか?
Web制作版に行けよ
このスレの存在意義が云々かんぬん
web以外で使わんからな
639 :
デフォルトの名無しさん :2012/02/03(金) 03:09:25.02
cmd.exe呼び出さずに済む分バッチ作るのに便利だったりするけどな
.batに埋め込みはよくやるなあ
JScriptだし!
642 :
デフォルトの名無しさん :2012/02/05(日) 13:21:13.42
質問です A〜Gの一文字をランダムで表示し、F5を押すと更新するプログラムを作りました。 これを、F5を押さずに所定時間(例えば5秒)経ったら自動更新するようにしたいのですが、 どう書けばいいのでしょうか? 当方初心者で行き詰ってしまい質問させていただきました。 教えていただけると助かります。 ちなみに、F5で更新するプログラム↓↓ <p style="font-size:1000%"> <script language="javascript"> <!-- var txt = new Array(); txt[0]="A"; txt[1]="B"; txt[2]="C"; txt[3]="D"; txt[4]="E"; txt[5]="F"; txt[6]="G"; mmax = 7; //メッセージの行数を数字で txtno = Math.floor(Math.random() * mmax); document.write(txt[txtno]); //--> </script> </p>
最近はJavaScript(Ajax)やHTMLだけを駆使して作ったものをリッチクライアントと言うのか?
>>642 関数化してWindow.SetTimerじゃダメ?
Web制作板の話題だな。
>>646 HTMLの<HEAD>と</HEAD>の間に、
<META HTTP-EQUIV="Refresh" CONTENT="5">
を埋め込む
>>648 できましたー!ありがとうございます
勉強して使わせていただきます
>>645 ありがとうございます
ググってみましたが例文が少なくて自分で作れませんでした・・・
>>647 ,649
すみません、リンク先の方法も勉強させていただきます
>>650 <!--と//-->の間に書いた処理を
function hoge() {と}で囲む。
document.write(txt[txtno]);
の次に、
setTimeout('hoge()',5000);
をいれる。
>>651 それやったら <title> とか必要なものまで消える
これでどう? <html><head> <script language="javascript"> <!-- var txt = "ABCDEFG"; mmax = txt.length; //メッセージの行数を数字で function hoge() { txtno = Math.floor(Math.random() * mmax); document.getElementById("text").innerHTML = txt[txtno]; timerID = setTimeout("hoge()", 1000); } window.onload = function(){ hoge(); } //--> </script> </head> <body> <p style="font-size:1000%"> <span id="text"></span></body> </p> </html>
>>653 動作は問題ないが、タグの対応関係がおかしかったり、非推奨属性を使ってたり、onloadにhogeを代入すれば良かったり...
解決後に延々とレスしても仕方ないからこの辺で
HTML側でリストから選択 選択されたものに対応するクラスを生成ってのやりたいんですけど これってswitchでいっこいっこ対処するしかないんでしょうか phpでいうnew $objName()みたいなことができないかと
var a = "F"; function F() {}; F.prototype.log = function () {console.log(arguments);}; new window[a]() こんな感じ? なんかもっとましな方法あったと思うけど忘れた 誰か補足するだろう
662 :
デフォルトの名無しさん :2012/02/17(金) 02:46:26.66
>>596 > それに日本だとまだまだJSに対する言語的な偏見が多いからなー。
むしろ英語圏のほうがJavaScriptクソクソ言われまくってるって。
だいたい、「JavaScriptは根本的な問題を抱えている」とDartを作り始めたのはもとより、
Native Client作ってるのもJavaScript嫌いな連中が多くて
JavaScripter達としばしば喧嘩状態になってるぜ。Emscripten遅すぎだろゴルァとか
ジャップのほうがよっぽど、乗るしかないこのHTML5にって感じで無批判で従順ですね。ええ。
一番目立つはてなあたりがJavaScriptが主言語のウェブ屋だらけなせいかもしらんが。
いずれにしても、推進するにせよ批判するにせよ
海外のがパワーとダイナミズムがあるのは如何ともしがたい。
> むしろ英語圏のほうがJavaScriptクソクソ言われまくってるって。 聞いたこと無いな。 RubyがCoffeeScriptに変更すると聞いて ひんしゅく買ってたことなら知ってるがw
javascriptとネイティブコードの速度を比較したサイトってないかな? ググって最初の方に出た英語のサイトは見たんだけど、もっと色々見てみたい。
そんな比較に何の意味があるんだ
>>662 Javascript遅いってどんだけ無知なんだw
いやそういう話じゃなくてね
Javascriptは言語としてはかなりまともな部類。 文句が多いのはブラウザ上の実行環境で、 主にAPIの設計とブラウザ間の非互換性。
それもあるけどうんこなイディオムが広まりすぎたっていうのもあるって パーフェクトJSには書いてたな まぁ確かにWebにはうんこな書き方の情報たくさん転がってるし否定はしないがw 言語はいいとしても誤解されすぎた言語だよなぁ
strictモードがないと使い物にならないのはガチ
この世にまともな言語なんて存在しない まともになれる可能性があるのもLispくらい あとは全部糞
歴史的事実をねじ曲げてまともな言語としようとする理由がわからんわ
その歴史的事実とやらを具体的に語ってみたら?
JavaScriptはマイクロソフトが DHTMLを使って広告を配信する目的で作った。 関数しかない簡易的な言語だったが それを無理やりオブジェクト指向とか言い始めた。
はあ? どこの星の話?
MSが作ってるのはネスケが作ったJSをパクったJScriptだからな 作った企業も違うしなー ほんとどこの星だよw
オブジェクト指向の意味も分かってない
MSちがw
>JavaScriptの登場初期は、ブラウザベンダー間で言語仕様の独自拡張が行われていたため、ブラウザ間の互換性が極めて低かった。 これが糞だった一番の原因。あとは1月が0だったりとかトンデモな仕様がいくつか散見される
1月は普通0だろ。
ブラウザ間の差異はまぁMS死ねで片付くとして 言語的な仕様でトンデモな仕様ってそんなにあるっけ? classがないとかは抜きで
ローカルスコープ変数は関数ローカルしかない arrayの型が弱い with氏ね
>>682 使ってはいけない構文とかが解説本に載っている言語は少ないぞw
;の代わりの改行氏ね
>>683 型が弱いってObjectと然程かわらんって事?
まぁ実際そうだけどそれが何か悪いの?
スコープも別にそんなとんでも仕様でもないだろ
改行で;が補完云々とかはたしかに面倒くさい仕様だな
>>686 クイズです。
argumentsは配列ですか?
可変引数と配列どちらを渡されても、可変個引数として処理する関数はどう書くでしょう?
べつにプロトタイプベースなのは、とんでもじゃないだろ。 ブロックごとにスコープが作られない、ってのも、スコープは関数によってのみ 作られると明確なルールがあるだけ。むしろ関数がネストできないのに、スコープは ネストするCのほうが奇妙な仕様、と言えなくもない。 Bad Partsが嫌ならJSLint使えば良い。
>>687 argumentsは配列ではない
arguments使えばいいだろ
ところで、「可変引数と配列どちらを渡されても、可変個引数として処理」はBad Partsじゃないの?
最近JavaScriptから離れてて、また勉強したいから、良ソースコードを教えてくれ なるべく数千行レベルの軽いやつを頼む
>>687 クイズです。
JavaScriptにArray型はありますか?
オブジェクトのレングスとかキーとかさっと取得できるメソッドとかプロパティを 初めから用意しとけよとか小言は一杯出てくるな
695 :
664 :2012/02/18(土) 01:36:35.14
>>666 サンクス!スゲー参考になる。
これ見るとV8はかなりネイティブコードに近い速度でびびるな。
その内事前コンパイルしたものと遜色ない速度になるんだろうね。楽しみだ。
>>688 JQueryなどのライブラリで、グローバル空間を汚染しないために、
Objectの中や関数の中で初期化コードを記述するバッドノウハウが連発されてる。
697 :
664 :2012/02/18(土) 01:47:54.58
あと、パターンマッチングでPerlが断トツで速いのはさすがだぜ。 これは単にライブラリの出来の問題だけど、そういうのも大事だよね。
>>696 var a {
init : function () {},
b : function () {}
};
こういうコード?
Objectオブジェクトの事なのかobjectの事なのかわからん
ちょっと前(ES3)迄だとundefinedとかがひどかったな
上書きできるってなんだよって思うわ
>>696 こういうコード?なぜこれがバッドノウハウ?
(function () {
var undefined;
)();
>>699 たぶん
>>696 はブロックスコープがないことにイライラしてるんだろうね
だからといってバッドノウハウ呼ばわりはやりすぎだけど
ES6準拠のletとconstがはやく実装されますように・・・
>>700 Array型がないことにもバッドノウハウ呼ばわりしそうだね。
バッドノウハウ呼ばわりはやりすぎに同意。
というか、どう見てもECMAScriptスレの話題だろ 何でこのスレで議論になってるのかさっぱりだ
住み分けなんてずっと曖昧なままやってきただろ どう見たらそんな風に思えるんだ
>住み分けなんてずっと曖昧 じゃあこのスレいらないじゃん ecmaスレに統一しろよ
ecmaはecmaだろ
むしろecmaがいらね
acme
いやw ecmaはいるだろw こういう認識こそがJavaScriptが糞と言われる原因じゃないのか? お前が書いてるscriptは本当にJavaScriptか?
つ JScript
JavaScriptとECNAScriptって何か違うの?
ジャバスクって呼ぶ奴死滅すればいいのに
> ECNAScript はつみみです
スクミズネコミミと聞いて
スクミズネコミミょぅι゛ょと聞いて
俺はウサミミの方がいい
即時関数パターンは、引数と戻り値が使えるから ブロックよりもわかりやすいコードが書けたりするよ。 var ret = (function (value) { return value+1; )(hogehoge_value); 更に発展形でプライベートメソッドと パブリックメソッドをもったオブジェクトも作れるよ。 var My = (function (msg) { function add() { return 'hello '; } function get() { return add(msg); } return { get: get }; //getのみ公開 )('world'); console.log(My.get()); ブロックよりも、柔軟で多くのことが出来るパターン。
varでグローバル空間汚染する例かよw
汚染しないように書けばいいだけだろ、 そもそも汚染するコード書いたらダメなのか? function hoge() {} これも汚染するって分かってる? このスレは関数1つ書くこともできないのか、
なお
>>718 のようなのは、
「JavaScriptパターン 優れたアプリケーションのための作法」にのってます
別に関数宣言する必要性ってないからなー 毎日JSには書いてるけど、ここ2,3年関数宣言した覚えがない
それはダメ人間の例ですか?
>>720 汚染しないためにはもうひと囲み必要だから問題なんだろ。
var hoge = function hoge() {}; と書くのは個人的に許せない。冗長だろ。
>>725 関数式と関数宣言はちょっとだけ違うのよ
とくにJScript (5.8以前)はESの仕様通りになってない
ESのどのバージョンだよ?
無名関数は排除される方向
>>730 お前そんな事思ってるの?
バカだなぁw
>>731 俺の妄想を書いたわけじゃないんだがw英語勉強しようねw
FunctionExpressionのIdentifierを気にせず書きたいのはヤマヤマなんだが IE8までが消滅してくれないと面倒な話が色々と出てきて萎える スマートフォン環境だけで使うコードでは気兼ねなく使ってるけど
736 :
デフォルトの名無しさん :2012/02/19(日) 11:43:20.49
IE9で、 右クリックメニューから呼び出す使い方をしたとき、 ドキュメントをオープンしたあと、 external.menuArguments.document.clear() とやると、エラーになったり、ならなかったりするんですけど、 この違いはなにが由来なんでしょう?。 またエラーにならないクリアの仕方はあるでしょうか。
関数でラップする書き方否定してる奴はただの老害だから早く引退して!><
741 :
738 :2012/02/19(日) 16:16:48.08
ラップしないと汁が回りに飛び散るので、 ラップして、チンがプラクティス。
関数でラップする書き方に問題はない
>>744 ぷっ。初心者ですか?
オライリー本にも乗ってるやり方なのにね
即時関数になってるから、プライベート変数が使える。
ローカル変数になるから、速度も早くなる。
4.5.1には即時関数のパラメータ というタイトルで
ブラウザ以外でのコードの相互運用性の向上について書いてあるね。
4.5.2には即時関数からの戻り値というタイトルで開設されてるね。
詳細知りたければ、勉強しろってことさ。
お前は初心者なのだからさ、勉強しないで文句だけ言ってたらダメだよw
>>745 おまえは勘違いしてる
前半には意味がない
即時関数をキチンと解ってない奴が
>>718 を書いたのが悪い
意味がない理由を述べよ
数値に1を足すだけのコードに何か意味があるとでも? って答えが返ってきたら、こいつは馬鹿確定だ。 サンプルに実用的何かを求めるな。 それを使って何が出来るかを考える 頭すら無い。
var counter = function (seed) { return function () { return seed++; } }(1); せめてこんな感じの書いておけよ
var ret = hogehoge_value + 1;
自分の頭で考えられない儲登場 即時実行関数は代用なんだから正当な方法を用意したほうがいいじゃないの? って意見は当然出る。しかしどっちが老害かと。自覚ないんだろうな。
即時実行関数はそれはそれで便利なもの。 即時実行関数のうち一部はブロックなので代用できるが、 引数とか戻り値が明確という利点はブロックでは表現できない。
むしろ、ブロックが関数の代用ではないのか? 本来ブロックは関数に出来るはず。 なぜ関数にしないのか。 一回しか使わないから? 関数の中でしか使わない関数だから? そういうどうでもいい理由で関数から ブロックに変更するのはおかしいよね。
書くのめんどーだろ
>>753 自分の基準でしか考えられない老害登場。
「代用」という単語の背景に、暗に自分の経験を
仮定していることに気付いていない、真の老害。
やたらコードを書くのではなく、 コード自信にやっていることを語らせるべき。 よくあるこんなコードを他の言語だとどう書き換えるか。 function() { //○○の処理 ・・・長いコード・・・ //△△の処理 ・・・長いコード・・・ //□□の処理 ・・・長いコード・・・ }
コードが長いんだから関数にすべき function ○○() { ・・・長いコード・・・ } function △△() { ・・・長いコード・・・ } function □□() { ・・・長いコード・・・ } function hoge() { ○○(); △△(); □□(); }
>>760 の欠点は、○○、△△、□□のスコープが広がってしまっていること
JavaScriptならこう書けます。
function hoge() {
(function ○○() {
・・・長いコード・・・
}());
(function △△() {
・・・長いコード・・・
}());
(function □□() {
・・・長いコード・・・
}());
}
>>758 ただの言葉遊びなら他所でやってくれないか
もちろん、即時関数は関数なのでこう書けます。 function hoge() { var ret1 = (function ○○() { ・・・長いコード・・・ }()); var ret2 = (function △△(value) { ・・・長いコード・・・ }(ret1)); var ret3 = (function □□(value) { ・・・長いコード・・・ }(ret2)); }
>>761 長いコードなんだろ、hogeの見通し悪くて読む気になれん
もしhogeの中があまりにも長くなって 分けたくなった時でも、リファクタリングは簡単です。 function △△(value) { ・・・長いコード・・・ } function hoge() { var ret1 = (function ○○() { ・・・長いコード・・・ }()); var ret2 = △△(ret1); var ret3 = (function □□(value) { ・・・長いコード・・・ }(ret2)); }
>>767 リファクタ簡単、はいいけど
その形だと粒度が整ってなくてキモチワルイ
>>764 ただの言葉遊びなら他所でやってくれないか
770 :
764 :2012/02/19(日) 19:13:39.26
>>766 ただの言葉遊びなら他所でやってくれないか?
スコープを広げたくなければ関数冒頭で定義しましょう function hoge() { function ○○() { ・・・長いコード・・・ } function △△(value) { ・・・長いコード・・・ } function □□(value) { ・・・長いコード・・・ } var ret1 = ○○(); var ret2 = △△(ret1); var ret3 = □□(ret3); }
hoge関数が長いことが気持ち悪いならこうしましょう。 先程の例には即時関数はなくなってましたが、ここで即時関数復活です。 var hoge = (function() { function ○○() { ・・・長いコード・・・ } function △△(value) { ・・・長いコード・・・ } function □□(value) { ・・・長いコード・・・ } return function () { var ret1 = ○○(); var ret2 = △△(ret1); var ret3 = □□(ret3); } }());
Javascriptのブロックって他の言語のブロックのように扱えないだろ スコープに過ぎないものをファーストオブジェクトである関数と比較する時点で 何かおかしいな
(function(){})() より {} の方が楽だろ?returnが使いたい時は関数がいいが (function(){ "use strict"; })() とかのスコープだけなら{}でいい
ここまで来るとオブジェクトに変更することも簡単ですね? var HOGE = (function() { function ○○() { ・・・長いコード・・・ } function △△(value) { ・・・長いコード・・・ } function □□(value) { ・・・長いコード・・・ } function process() { var ret1 = ○○(); var ret2 = △△(ret1); var ret3 = □□(ret3); } return { process: process } }()); HOGE.process();
オブジェクトだから他に拡張もできます。 var HOGE = (function() { var state = 1; //ローカル変数です function ○○() { ・・・長いコード・・・ } function △△(value) { ・・・長いコード・・・ } function □□(value) { ・・・長いコード・・・ } function process() { var ret1 = ○○(); var ret2 = △△(ret1); var ret3 = □□(ret3); } function getState() { return state; } return { process: process, getState: getState, tag: 123 //オブジェクトなので単なる値も保持できます } }());
このように即時関数があると、 ただの関数からオブジェクトまでの拡張が 段階的にスムーズに容易に行えます。
バカ相手にこんなに丁寧に説明してやること無いのにw
その一方、クラスベース言語ではメソッド引き上げとアクセシビリティ変更だけで済むのであった
ちなみに、「JavaScriptパターン」の 5.4 モジュールパターン で 解説されていることはこんな内容です。
var ret = hogehoge_value + 1; で問題ない
>>781 いいたいのは、即時関数が本来あるべき姿で、
ブロックはその亜流であるということ
引数や戻り値の概念がない時点で、即時関数の劣化版。
ブロックを使いたい時ってのは、 本当は関数を使いたい時なんだよね。 それができない、または関数にすると 大袈裟になりすぎるから、ブロックで代用するだけで。 ちっちゃい関数? ブロックで代用? だめだめ、ちっちゃい関数は、その場に ちっちゃい関数として埋め込こもう! 大きくなったら、そのときに少しづつ変更する。 それができるのがJavaScript
大は小を兼ねる、が常にいいわけじゃないだろ ブロックスコープを目的にしてるんなら、ブロックスコープで書かれた方がシンプルで見やすく書きやすい上にその意図も伝わる
ブロックスコープを使いたいだけってことはあまりない。 普通は、ブロックに対して何かの引数を渡して、 ブロックを抜けた時に何かの値が変わる。 だけど、ブロックではその引数と戻り値が明確にはならない。 その意図が伝わらない。
if, for, while 内はブロックスコープ欲しいけどな。
ブロックスコープを使いたいときに、引数と戻り値という概念の出番はないよ 前提に結論先取りの我田引水してたらそりゃ結論は変わらんよ
いやだからw
今、全てのライブラリで
>>775 が使われてるからw
信者はこれだからめんどくさいw
無名関数否定なんか初めから誰もしてないだろw
jQueryを見たがこうなってるぞ (function( window, undefined ) { })( window );
>ブロックスコープを使いたいときに、引数と戻り値という概念の出番はないよ 老害。
>>795 前みたいなキレのあるボケまた見せてくださいよ
ブロックスコープの有用性は誰も否定していない ブロックスコープがなく即時関数を使うことの是非が問われてるんだろ それを仕様というか、バッドノウハウというかは個人の好き嫌いだから結論が出るはずがない 俺としてはあるがままを受け入れられず、バッドノウハウ呼ばわりする人はこのスレにいる必要はないと思うがな
敬虔な信者以外は去れ!
ブロックスコープとか無い物ねだりしても仕方がない
JavaScript では何もかもオブジェクトなのを忘れんな。 基本型にオブジェクトを用意してるのも体裁の為。 関数のスコープも実体は (内部的な) Call オブジェクト。 正規表現も、日付も、配列も、必要なくても皆オブジェクト。 だからブロックスコープなんて言い出す輩は悔い改めると良いよ。
とんでも理論入りました!さすが先輩
JavaScriptではブロックスコープを (function() { }()) と書くだけ文字数が長い以外のデメリットはないよ。
ちょっと荒れてるみたいだけど疑問に思ったから流れを読まず質問 C++とかだと、whileループの内側のスコープに一時利用変数を宣言して そのループ内からしかアクセスできないようにできるよね? こういう一時変数はJSだとwhileの内外でスコープが同じだからできない 再帰関数でスコープを作る方法で機能的には代用できるけど 末尾再帰の最適化が保証されてないからwhile文より遅くなる ……っていう話がJSのブロックとスコープへの批判だと思ってたんだが違うの? 俺の勘違いかも知れないからできれば間違ってるところを教えてほしい
>>804 間違ってるのは、入信してないところかな
>>803 それでwhileループを書いてみてくれないか
>>806 こ、こうかしら…。
while (function(repeat) {
if (some_condition) repeat = false;
return repeat;
}(true)) { }
俺の腹筋返せw
うぉおお、スコープの理解が完全に間違ってたことが判明した!! ifやwhileはローカルスコープあると思ってたあああ 道理でイミフな謎のバグがでるわけだorz
for (i=0;i < 10;i++)(function (num) { })(i); そう言えばこんな風に書く人は本スレにいたね
JSとか最近触ったけど可読性がクソということだけは理解できた
>>809 普通に書いていれば、ローカルスコープの内外の
変数名を一緒にしたりしないから問題が起きたことがないな。
>>810 それはクロージャーを作る必要があるから
そうしていただけ。
ループは普通にループで書けばよろしい。
>>806 > それでwhileループを書いてみてくれないか
じゃあここらで模範解答
while (condition) {
・・・
}
これでよい。 即時関数使ってないって? それ必要なの?
俺は必要になったことがないけど、もし本当に必要ならこうすれば良い。
これはどうしても使えといったから使っただけで、俺なら使わん。
(function() {
while (condition) {
・・・
}
}())
>>797 こっちこそ老害。
今そうなっているからそれでいいのだと主張してる。
ろう がい らう― 0【老害】 企業や政治の指導者層の高齢化が進み,円滑な世代の交代が行われず,組織の若返りがはばまれる状態。 DAIJIRIN Third Edition
>>652 > 今そうなっているからそれでいいのだと主張してる。
そんなことは主張してない
仕様は常に更新されるべきだ
>>818 代替手段のない即時関数をバッドノウハウ扱いする理想主義的意見が否定されてるんじゃないの?
>>817 は、周回ごとのスコープはできていない。
周回ごとのスコープ作ったら駄目だろw
825 :
821 :2012/02/20(月) 00:00:08.25
>>822 ごめん、わかりにくい書き方だった
件の主はブロックスコープの代替手段として提案された即時関数がバッドノウハウと主張してる
ES5には関数スコープしかないんだから関数スコープで代替するしかないのに「ブロックスコープを使うべき、即時関数はバッドノウハウだ」と主張してる
彼の中では関数スコープ自体が受け入れられないんだと思うよ
そんなに嫌ならこんなところで主張してないでES.nextで策定予定のletがちゃんと定義されるように議論に参加すればいいのにね
>>824 え?ブロックスコープのある言語では周回ごとのスコープになるやん。
彼はバッドノウハウの意味わかってるのかな? 即時関数がバッドノウハウなら即時関数に代わるグッドノウハウがなくてはならない 全部が全部バッドノウハウならそれはもうノウハウの問題じゃない
いや別に本当はああ書きたい/書けるべきなのに、現状代替案としてこう書かざるを得ない というのを指してバッドノウハウという表現は、おかしくはないと思うけど
>【bad know-how】ソフトウェアなどを使いこなすために、ストレスを感じながらも >しぶしぶ覚えなければならないようなノウハウ。高林哲による造語。氏によると、 >バッドノウハウは、複雑な設定を「奥が深い」として有難がってしまうマニア独特 >の感性によってはびこるという。 これだとちょっと違う気がするな。 >バッドノウハウは、ソフトウェアの複雑怪奇な仕様が歴史的に引き ずられ、根本 >的な改善は行われないまま、そのノウハウが文書によっ て受け継がれることに >よって蓄積が進行する。 これだとまさにバッドノウハウ。 ただ、let使うのはなんか気が進まない
>>823 >
>>817 は、周回ごとのスコープはできていない。
ん?
ブロックスコープがある言語の場合、
while(cond) {
int a=0;
b++;
}
aはwhileの中に閉じ込められて、
bはwhileの外を参照するよね?
(function() {
var a=0; //同じだよね?
while (condition) {
//var a=0; //ここでやってもいい
b++; //同じくスコープの外
・・・
}
}())
(function() { while (condition) { var a=0; //こっちしかダメだったねw b++; //同じくスコープの外 ・・・ } }())
(function() { var i=0; //こっちのパターンと勘違いしたw for (var i=0; i<length; i++) { var a=0; b++; ・・・ } }())
>>831 前者の場合、変数 a は、(記号は同じでも) 周回ごとに異なる変数。
>>833 JavaScripit の場合、var a は while の内でも外でも同じ。
>>835 え?
>>837 >
>>833 > JavaScripit の場合、var a は while の内でも外でも同じ。
うん、でも重要な点はvarの位置ではなく、
1.var aのスコープは閉じており、
2.ループの最初で0を代入しているから
実質同じ事になっているとこうこと
>>832 Javascriptの<ような>言語じゃなきゃ
周回ごとにスコープ出来てるか否かという概念自体がなりたたないだろ
>>840 お前の本質とは、
全く同じ動きをして
代替として使えること以上に
重要なことなのか?
>>842 クロージャ。コレでわからなきゃ半年ROMってろ
>>839 ブロックスコープのある言語だと、while 内で宣言した変数は、
(参照を格納しておくのでもない限り) 別の周回で参照できない、
という意味で
>>823 、
>>826 。
>>843 即時関数も、クロージャーなんだけどw
無名クロージャーを定義と共にすぐに実行することを
即時関数(パターン)と読んでるだけ
>>844 うん。だから最初に値を初期化することまで含めて
「 (function(){}())と初期化 」を使った
ブロックの実装例だよ。
>>846 馬鹿?
(function() {
}())
↑これが無名クロージャの即時実行
C言語か?
>>851 勝手に切るな。
どこから別の話なんだよw
クロージャっていまだによくわからん これって無効には出来ないの?
今まさに、バッドノウハウが生み出されている、その瞬間であります!!
ちなみに即時関数は オライリー本のJavaScriptによるでも 紹介されている、グッドノウハウです。
オライリー本に紹介されるとグッドノウハウになるそうです\(^o^)/
オライリー本にはバッドパーツとして 紹介されているものもありますよ。 即時関数はもちろんグッドですがw
>>844 具体的に何の言語か教えて欲しい
>>817 周回スコープが出来てない事が指摘されてるのにクロージャとか関係ない話を続けているのはなぜ?
>>858 おまえは何もわかってない
バッドノウハウとは、使い方の問題なんだよ
存在の良し悪しじゃないんだ
>>859 クロージャにスコープは関係ありありだろ
ちなみに俺は817とかじゃないが
>>859 843 名前:デフォルトの名無しさん[sage] 投稿日:2012/02/20(月) 00:49:11.23
>>842 クロージャ。コレでわからなきゃ半年ROMってろ
ほかの言語じゃあまり見られないような議論だな やっぱり自由度が高いからか。
>>862 関係ないとはいわんが、前進してないだろう
>>834 で「
>>810 で答えが出てる」と指摘を受けておきながら「クロージャだ、即時関数だ」と言葉遊びを続ける理由がわからん
whileを
>>810 っぽく書こうとするとこうなるな。
(function() {
var condition;
while(condition) (function() {
condition = ?; // 条件書き換え
})();
})();
俺が整理してやるよ
Javascriptでスコープいったらクロージャは無視出来ない
ここまではいいだろ? で
>>807 wwでは毎回クロージャが作られる
>>831 では毎回クロージャが作られない
そこが周回ごとにスコープ出来てない、言われてるんだろ
>>868 それはすまんかった
>>839- から続く不毛な議論に終止符を打ちたかったんだが、途中から入ると難しいな…
>>869 while でも出来る
>>872 > while でも出来る
じゃあ、実際にやってみ。
?って思うぞ。
>>807 のクロージャーの部分は
whileの( 条件 ) だ。
>>873 var i = 0;
while (i < 10) (function (i) {
console.log(i++);
}(i));
whileにクロージャーを使えというレスに 対するボケを見抜けない人は辛いなw
ねぇねぇ 今どんな気持ち?
∩___∩ ∩___∩
♪ | ノ ⌒ ⌒ヽハッ __ _,, -ー ,, ハッ / ⌒ ⌒ 丶|
/ (●) (●) ハッ (/ "つ`..,: ハッ (●) (●) 丶
| ( _●_) ミ :/ :::::i:. ミ (_●_ ) |
___ 彡 |∪| ミ :i ─::!,, ミ、 |∪| 、彡____ ねぇ今どんな気持ち?
ヽ___ ヽノ、`\ ヽ.....::::::::: ::::ij(_::● / ヽノ ___/ ねぇねぇったらー
/ /ヽ < r " .r ミノ~. 〉 /\ 丶
/ /  ̄ :|::|
>>877 ::::| :::i ゚。  ̄♪ \ 丶
/ / ♪ :|::| ::::| :::|: \ 丶
(_ ⌒丶... :` | ::::| :::|_: /⌒_)
| /ヽ }. :.,' ::( :::} } ヘ /
し )). ::i `.-‐" J´((
ソ トントン ソ トントン
0 0 0 0 0 0 0 0 0 0 0 0 0
882 :
877 :2012/02/20(月) 01:47:11.21
そういうことか var i = 0; while (i < 10) i = (function (i) { console.log(i++); return i; }(i));
(function(){ var i = 0; while (i++ < 10) (function (i) { console.log(i); }(i)); }());
var i = 0; while (i++ < 10) (function () { console.log(i); }()); こうだろwww
リロードしろとあれだけ(ry
で話は
>>831 という最終形態に戻る。
普通はこれでいいし、
var i=0;
while(i<10) {
console.log(i++);
}
どうしてもというのなら、
(function() {
var i=0;
while (i<10) {
console.log(i++);
}
}())
これだけでいい。へんなコード書くな。
>>887 だから、それだとスコープが毎回できないだろ
毎回スコープを作るのがお題なんだから
そのお題の理由はわからんけどw
結局のところ、
>>800 が正しいならむしろES.nextのletがバッドノウハウになる気がするんだがそこんとこどうよ?
whileとかどうせループの最初で変数初期化するんだから これでいいが (function() { var i=0; while (i<10) { var j=0, k=0; ・・・ } }()) 変数初期化サボるとかどうしてもやりたいのなら (function() { var i; while (i<10) {(function() { var j, k; ・・・ }())} }()) こう書けば? { ・・・ } が JavaScriptでは (function() { ・・・ }()) に なるってだけの話をいつまで続けてるんだ?
>>884 そこまで求めるのか
while 文の体裁を崩して条件式に関数を入れないと無理だと思うのだが
すごく変態です……ってことだろ 少なくともブロックスコープさえあれば自然に書ける(C++派) あるいは末尾再帰が最適化されるなら開き直って全部再帰で書ける(Scheme派) letがなくてどっちもできない現状のJavaScriptは中途半端だなって気はする つーかブロックスコープなんていらんから末尾再帰の最適化しろと言いたい
>>885 のは無意味
(function() {
var i=0;
while (i++ < 10) (function (n) {
console.log(i++);
})(i);
}());
これと
(function() {
var i=0;
while (i<10) {
console.log(i++);
}
}());
これじゃ意味が違うだろ
上の方のconsole.log(i++)はnに置き換えてねw
while(i ? i < 10 : (i = 0, true)) (function(i) { console.log(i) })(i++)
Javascriptは、条件式の部分で変数宣言ができないから、 条件式まで含めなくても実用上は困らないと思う。
>>889 es6はlet定義しかないけど
(function() { let x = 10; {let x = x + 20; console.log(x)}})() //->NaN
(function() { let x = 10; let x2 = x + 20; console.log(x2)})()//->30
(function() { let x = 10; {let( x = x + 20)console.log(x)}})() //->30
を理解してりゃ問題ないと思う。
letでブロックスコープになると思ってるのが間違い。
>>800 の言いたいことは多分こういうのだと思う。
>>889 >>800 は正しくない。
全てObjectなんて言えるのはSmalltalkみたいに
制御文の中のbodyもObjectにできるような言語。
Javascriptは、Schmeに多くを担いながら、
Cのsyntaxを使い、なおかついろいろと削ぎ落してブラウザ向けに軽量にした言語。
ECMAScriptの仕様的にも”primitive value"は"Object"ではない。
意識しないうちにboxing/unboxingをするんだっけか
>>892 Schemeは、letに関しては、
ラムダ式さえあれば、letも簡単に実現できる。(当時はBLOCKマクロ)
意味論的にも問題ないし、コンパイラもシンプルになる。"RABBIT: A Compiler for SCHEME"
けどプログラム書く時に不便だからletは言語仕様に入れようね派。"RnRS"
ちなみに、Brendan Eichは、Javascript(Mocha, Livescript)を設計した時に、 "RABBIT: A Compiler for SCHEME"にもろに影響を受けて、 言語を小さくするためletは導入しない決定をしたと思われる。 Schemeを実装する予定でNetscape社に入ったと後に語っているので。 ただ「小さくする」制約が、今では全く無意味になったので、 EichはECMAScript仕様策定ではかなり盛り込む派に立っている。 moduleも付け加えたほうがいいと考えている。 けどそれは現在のWebの世界を尊重して慎重にやらないといけないという立場。 だからHarmonyを仕切ってES4を一旦白紙に戻した。 けど捨てたわけじゃなくて個別の項目について継続審議中。
letは、lambdaを使うマクロとして実装することもできるけど、プリミティブとして実装すると、 作ったらすぐその場で適用する関数として、最適化できるんだよな確か。
let式じゃなくてlet文なら持ち運ばれる可能性ないからね。 エスケープ解析しなくてもクロージャ生成を端折れる。
javascriptって結局lispのパクリemacsのパクリなんだろ もうjavascript廃止してlispを標準にしろよ
ブラウザ標準スクリプト言語として? 妄想は他の人の目に付かないところでやってくれ
見た目がC言語っぽくないと拒絶しちゃう人がいかに多いかわかってないだろ
>>904
まあ、ブロックスコープがないC言語でも UnixやLinuxが作れるように、合ったら便利だけど 無くても問題ないものなんだろうね。 関数にしておけばいいだけなわけだし。
> ブロックスコープがないC言語 > ブロックスコープがないC言語 > ブロックスコープがないC言語
早速一匹釣れたかw
910 :
1/2 :2012/02/20(月) 23:27:57.98
そもそもCはオブジェクト指向じゃない。その上、for文にブロック変数が作れるよ。ミスリー? スコープが簡単に作れないってのはJavaScriptが根本に抱えてる問題の一つだよ 現実から目を背けたって意味ない
911 :
2/2 :2012/02/20(月) 23:30:19.23
JavaScriptは 他のオブジェクト指向言語のように直感的にブロックでスコープが作れないし (ex.ループ内にスコープを作ろうとするだけで複雑なコードになる) Function objectでスコープ作れるけど、Lisp/Schemeほどの便利さはない (ex.末尾再帰最適化されない、高階関数が簡単にはできない)
いや、高階関数は結構得意。 Javascriptの特徴といっていいくらい。 設計時にクロージャを導入する決断をしたのは素晴らしい。 Schemeと一緒で部分適用は苦手。(ML, Haskellは得意)
玄人向きの機能が無駄に充実してるのに基本的な機能が足りない でもそんなところが可愛いよJavaScript
釣り人が足滑らせて溺れながら「釣れたか」とか言ってる?
>>903 var x = eval("let (x = 20) { x }")
これで簡単に外に漏れる。
var xの実行コンテキストがGlobalならCallがメモリリークするのと同じ問題が起きる。
evalはバッドノウハウだから どうでもいい。
次のテンプレ案これでどうかな。 【言語設計】JavaScriptスレ 2.0【限定】 言語としてのJavaScriptに関する議論のスレです。 Web製作におけるJavaScriptの質問はWeb製作板へ。
せっかくのホイホイスレなんだから限定にすんなよ
次スレイラネ ECMAScriptスレで必要充分だろ
無いと分かってない奴が立てるんじゃないかな。このスレみたいに。
立てなくてもいいからdartスレのバカどもをちゃんと引き取ってくれよ
おまえが誘導しろよ
923 :
デフォルトの名無しさん :2012/02/21(火) 15:21:48.40
2ちゃんねるはオワコン 質問サイトに移行したほうが俺らのため
質問サイトもいいかげんオワコンだろがw はてなはあいかわらずのはてなクオリティだし、他のサービスはほとんどの回答者がハズレ回答者だし。
dartは別スレでいいだろ
926 :
デフォルトの名無しさん :2012/02/21(火) 21:32:28.60
連想配列をキーそのものでソートする方法を教えてください
連想配列はソートできませんので連想配列のキーをソートしてください。
javascrpitを使って、skypeのチャットのようなことをブラウザでやりたいのですが可能でしょうか? サーバからの要求を受ける機能があるかどうかというところだとは思っているのですが
Push自体は無理なので 定期的なポーリングによるPushもどきになるのは仕方ない
なるほど、やはりそうなりますよね 私はチャットのデータをMySqlで管理したく思っているのですが、 とすると、数秒起きに最新何十件のチャットを読み込みにいくということになりそうですね。 あとはどのようにレスポンスをあげていくか頑張ってみます。 ありがとうございました
>>932 「何かあるまで応答を返さない」 という手もあるぞ
ローカルストレージはブラウザによって作法が違うのでよく調べたほうが良い。 今後はHTML5 client-side database storageに集約されていくのだろうが。
pushが無理とかHTML4時代の人間ばかりだなw
スレがすげー伸びてるw
>>727 >>725 が言っているのは、
var foo = function foo() {}
function foo() {}
と全く同じ意味だから前者は無駄ってことなんじゃ?
>>930 よろしくありません
ピント:ggrks
>>935 >>937 まぁそう言わずに、勉強する気はありますので、せめて何という技術かくらいは教えていただけませんか
>>936 どっちかと言えば
var foo = function(){};
と同じと言いたかった。
fooを二度書く意味あんのかよと。格好悪いし。
>>939 同じじゃないよ
nameとスコープと変数の実体化に影響する
>>936 スタイルで書いてると(必ずしも同じ名前である必要はない)
幸せになれるよ
>>936 ,939
var f = function (){};console.log(f.name);
var f = function hoge(){};console.log(f.name);
var f = function hoge(){},b = f;console.log(b.name);
この3つ実行すりゃ違いわかるよ
>>938 横レスだけど、HTML5前提でよければ、WebSocketという技術がある
詳しくは、WikipediaなりGoogleで調べてちょ
(
>>944 の補足)
WebチャットなりWebSocket技術はWebブラウザ前提の話題だから、
もし続きの質問がしたいのであれば、このスレよりも
WebProg板のHTML5スレのほうが期待するレスをもらえると思う
こういうプッシュとかを使う物って、その間ずっとセッションを残してる訳だろ? サーバ側が対応してないと実際使用するのは難しい
WebSocketは(socketという名前が示すように)双方向通信技術であって、 プッシュ技術ではないし、さらにはサーバ側の対応は(最初から)必須
>>948 var f = function hoge () {
console.log(hoge);
};
console.log(hoge);
まぁ両方fooだから同じとも言えるけど
var foo = function foo() { alert(foo) } var bar = foo; foo = undefined; bar(); // IE以外で動作 これならarguments.calleeで良い気がするけど、 他にメリットあるんだろうか。
function expressionのnameはbody内で有効な識別子に過ぎないから当たり前。 再起その他、自己参照のある関数用。
>>944-947 遅くなりましたが返信ありがとうございます
HTML5対応ブラウザはWebSocket、未対応ブラウザはsetIntervalで動くように試してみたいと思います
さっそく勉強に入ります
これから作るぞーという今の気持ちが一番楽しくていいですね
arguments.calleeは使ったらダメ
で、最終的にはアレを使えばいいから 作らなくてよくなるんだよなw
アレってなんだよ websocketはサーバー側が対応してないとどうにもならんしポーリングはラグるしcommetは接続数たらんくなるしなので同期はやるだけの価値がないというのが俺の結論
サーバーは対応してるの使えばいいだけ
>>955 やるだけの価値がない理由が
技術的制限の話しかでてないぞ。
価値というのはそれを使うユーザーが
必要かどうかだろ。
>>953 これを見て思い出したけども、
そういや何でES5でarguments.calleeって使えなくなるの?
もともと自分自身への参照がargumentsの中にあるのは違和感があったけど。
本来callerとかcalleeとか、スタックフレームから参照するはずのものを、 関数オブジェクト経由で参照するとか、設計が変だったからな、あれ。
>>961 arguments.caller: call site依存 (要はスタックフレームへの参照)
arguments.callee: 自分のことだからセルフリファレンスがちゃんと定義されれば必要ない。
callerが危険だから廃止なのは分かる。 calleeはargumentsにぶら下げるのが不恰好だから廃止って感じなのか。
argumentsは動的に決まるのに、calleeは参照場所で静的に決まってるからね。 あまりいい整理の仕方じゃなかったね。
関数名は__FUNC__で取得できるようにすれば良い。
WMIをつかうとき、取得結果をEnumeratorに食わせなければいけない 理由をおしえてください。
WMIのメソッドがコレクションを返すから
コレクションは直接見れないの?
JSはWindowsで使われるコレクションの事なんか知らないから無理
コレクションはHTML。
document.write(s.link(u)); このリンクを新規ウインドウで表示するには どうすればいいですか?
s.link(u)が何なのかが分からないから答えようが無い
>>973 sが文字列と思う根拠は?
sが文字列ならs.linkはundefinedでは?
ブラウザ以外の実行環境(js-shellとかnode.jsとか)でも使えるの?
977 :
974 :2012/02/26(日) 23:44:17.21
>>975 なるほど。勉強になったよ。
>>976 js-shellはブラウザじゃないのか?
Node.jsとか実装が明確なら公式ドキュメントを読むことをお勧めする。
SpiderMonkeyやらNodeも実装してるよ まぁここらはFirefoxのエンジンであったり Google Chromeのエンジンを利用した物だから当然とも言える
なんでこれが言語自体に入ってるのかよくわからんなw
それは元々ブラウザで使うものとして作られたからでしょ JSの場合言語仕様が先にあって実装された物じゃなく 実装ありきで標準仕様化されたものだし ネスケ時代のJavaScript1.0で実装されてたものだから まねっこ大好きなMSもJScriptに入れたんだと思う
ブラウザに組み込まれることを想定してなくても、 既存のライブラリ使うことが前提なら当然実装するよね。node.jsとか。 コンパチビリティテストも通らないから、実装のテストも大変になるし。 e.g. mozilla/js/tests/js1_5/Regress/regress-276103.js v8なんかは起動時に読み込むstring.jsで実装してます。
>>981 >まねっこ大好きなMSも
まねっこしなかったら「ゴカンセイガー」とか言うんだろ?ww
仕様に基づく実装と仕様策定以前のてきとー実装では別だろ
かといってoperaみたいに協調性ゼロなのも困る
IE は UA に Mozilla と入れたくらいだもんな。 身も蓋もない。
987 :
デフォルトの名無しさん :2012/02/28(火) 18:03:04.37
javascriptを使った仮想キーボードで、テキストエリアではなく外部のテキストなどに文字を打てるものを作れるでしょうか?
おおお!西から雨雲がああ
>>988 フランス気象庁はアフィ広告バリバリでひどいな
990
次スレはなくていいね
だからいらねーって
お前が見なきゃいいだろ
>>996 > ※JavaScriptが板違いと言いたい人へ
> 運営サイドから次のような見解が出ています。
> |459 飛べない削除屋 ★ sage :04/05/30 15:38 ID:???
> |>>458
> |ローカルルールにはひどく単純化されて書かれていますが、
> |Javascript という言語そのものが板違いなのではありません。
> |用途によって板違いかどうかを判断してください。
>>996 >用途によって板違いかどうかを判断してください。
このスレはどういう用途なんだよ…
中身を見て判断できないバカな削除屋が一人いた、というのが事実だな
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。