のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,688,664人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.108 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
701 : Name_Not - 2013/09/17(火) 02:10:53.50 ID:??? (+52,+29,-2)
だからちゃんと教えていこうね
702 : Name_Not - 2013/09/17(火) 07:28:05.35 ID:??? (-2,-30,-80)
container ={
x:0
}

function plus(c){
c.x=c.x+5;
alert(c.x);
}

<h1 onClick="plus(container)" >たす</h1>

引数を関数内で操作したいならこうじゃね
703 : Name_Not - 2013/09/17(火) 08:11:05.06 ID:??? (+3,-30,-80)
<ol contenteditable>
<li>hoge</li>
<li>fuga</li>
</ol>
のようなHTMLで、編集中のアクティブなli要素を取得する方法はないでしょうか。
event.targetやdocument.activeElementにはol要素が入っちゃいますし
cssのli:focusなんかも反応しません。
liの方にcontenteditable付ける以外の方法ありましたら教えて下さい(←だとliをまたいだ複数行選択できない)
704 : Name_Not - 2013/09/17(火) 09:04:24.29 ID:??? (+81,+20,-31)
予約語をメソッド名に使ってはいけないのでしょうか?
705 : Name_Not - 2013/09/17(火) 09:11:26.19 ID:??? (+3,-29,-101)
http://alphasis.info/2012/11/javascript-reference-reserved_words/

JavaScriptの予約語は、変数名、関数名、メソッド名、オブジェクトの識別子に使えない。

とありました
でもinというメソッド名を使っていて問題なく動作していて
JSHintでも何も言われません
sublimeのJSformatをかけたらinが予約語と勘違いされてフォーマットされたので
アレ?と思いましたが。
706 : Name_Not - 2013/09/17(火) 09:22:27.32 ID:??? (+73,+29,-71)
だから、あなたがたまたま使っている処理系で問題が無かったとしても、将来出てくる
処理系で、または他人が使っている処理系で動かない場合に、処理系が悪いのではなく
標準を無視した作者が悪いということになるわけで。それでよければ別にいいんじゃないの。
707 : Name_Not - 2013/09/17(火) 09:26:54.04 ID:??? (+57,+29,-2)
使わないに越したことはないですね
ありがとうございました
708 : Name_Not - 2013/09/17(火) 09:40:46.69 ID:??? (+57,+29,-9)
もし自分で言語を作ることがあったら
謎の予約後をひとつは入れておきたい
709 : Name_Not - 2013/09/17(火) 10:00:19.79 ID:??? (+31,-29,-11)
710 : Name_Not - 2013/09/17(火) 10:02:14.18 ID:??? (-2,-30,-52)
703ですが
window.getSelection().getRangeAt(0).commonAncestorContainer.parentNode
でアクセスできたので取り下げます
711 : Name_Not - 2013/09/17(火) 10:29:41.81 ID:??? (+26,-17,-6)
>>706,707
ES5から仕様で使ってもいいことになった
どんどん使って問題ない
712 : Name_Not - 2013/09/17(火) 10:46:33.76 ID:??? (+62,+29,-8)
>>709
Google様ありがとうございます!!
これで来年には表面上だけでもスッキリ縁が切れそうだ。
713 : Name_Not - 2013/09/17(火) 11:19:07.38 ID:??? (-1,-29,-8)
次期ES、と思ったらES5ですか
じゃあJSformatは一種のバグかな
714 : Name_Not - 2013/09/17(火) 11:34:51.23 ID:??? (+38,-30,-54)
>>711
なんでも使っていいって事ではなくて
「ES5では、オブジェクトプロパティ識別子として予約済みキーワードを使える」って話じゃないの?
Allow reserved words as property names under es5
http://github.com/jshint/jshint/pull/801
715 : Name_Not - 2013/09/17(火) 11:41:56.61 ID:??? (+62,+30,+0)
716 : Name_Not - 2013/09/17(火) 11:44:57.63 ID:??? (-1,-29,-4)
いつの間にかtype="text/javascript"を書かなくてもよくなってたのか・・・
717 : Name_Not - 2013/09/17(火) 11:46:20.09 ID:??? (+39,+21,-1)
何を今更w
718 : Name_Not - 2013/09/17(火) 12:14:02.66 ID:??? (-1,-29,-6)
廃止されたtext/javascriptが初期値なのは納得いかない
719 : Name_Not - 2013/09/17(火) 12:22:42.88 ID:??? (+75,+23,-3)
廃止なんてされてないけど
720 : Name_Not - 2013/09/17(火) 12:27:55.14 ID:??? (+7,+29,-22)
オブジェクトのキーに漢字やキリル文字を使うのは、よろしくないですか?
721 : Name_Not - 2013/09/17(火) 12:28:33.89 ID:??? (-1,-29,-5)
廃止は
language="JavaScript"だな
今思うとこっちの方がいいんじゃないのかと思う
722 : Name_Not - 2013/09/17(火) 12:29:58.71 ID:??? (+87,+28,-20)
>>720
ソースを見る人によっては文字化けするということを除けば問題ない
あと文字コードに注意
723 : Name_Not - 2013/09/17(火) 12:31:08.64 ID:??? (+88,+30,+0)
724 : Name_Not - 2013/09/17(火) 12:32:48.58 ID:??? (+65,+26,-1)
>>723
廃止はされてないじゃん
725 : Name_Not - 2013/09/17(火) 12:33:28.58 ID:??? (+63,+29,+1)
>>722
なるほど、ありがとう
726 : Name_Not - 2013/09/17(火) 12:48:01.10 ID:??? (+6,-29,-18)
>>724
javascript (obsolete) と登録されてる
リンク先のRFC4329で定義されている通り、初めから廃止されたMIMEタイプとして追加されたんだけどね
727 : Name_Not - 2013/09/17(火) 13:29:11.51 ID:??? (-1,-29,-23)
statementとdecrationとexpressionの違いは何ですか
728 : Name_Not - 2013/09/17(火) 14:37:18.74 ID:??? (+57,+29,-41)
statement 「文」:命令の最小単位
expression 「式」:評価され値を返す

「値」だけなのも「式」
「式」だけなのも「文」
つまり「値」⊂「式」⊂「文」
729 : Name_Not - 2013/09/17(火) 14:58:33.34 ID:??? (-2,-30,-66)
なるほどー
esprimaのようなパーサでsyntax treeを作った時
programより下の一番粒度の高いオブジェクトはstatementということですね
730 : Name_Not - 2013/09/17(火) 15:09:55.22 ID:??? (-1,-29,-31)
text/javascriptは最初から標準じゃないだけで廃止されたんじゃないよ
731 : Name_Not - 2013/09/17(火) 15:27:12.77 ID:??? (-1,-29,-25)
firefox23でJavaScriptの有効/無効の切り替えってどうやってる?
QuickJava というアドオンが便利そうだけど、他にいい方法あるかな
732 : Name_Not - 2013/09/17(火) 16:09:02.65 ID:??? (+52,+29,-2)
無効にする必要なんてないだろ
733 : Name_Not - 2013/09/17(火) 16:16:25.49 ID:??? (-1,-29,-10)
unobtrusive javascriptの確認で必要なんです
QuickJavaで簡単に切り替え出来たんで、これで十分みたい
734 : Name_Not - 2013/09/17(火) 16:35:47.85 ID:??? (+53,+21,-39)
prefbarおぬぬめ

と書こうと思ったら解決してた
735 : Name_Not - 2013/09/17(火) 17:49:08.72 ID:??? (+5,-29,-42)
>>734
そんなのもあるんだ、ありがとう
PrefBarのほうが拡張機能の種類が多いですね
QuickJavaはもっと簡単な機能をアドオンバーに表示されたボタンでサクッと切り替える感じ
736 : Name_Not - 2013/09/17(火) 21:58:15.50 ID:??? (+64,+29,-11)
催促するようで申し訳ないのですが、
>>93の件で>>120以降回答をいただけていないのですが、
見てもらえますでしょうか。
737 : Name_Not - 2013/09/17(火) 22:30:52.87 ID:??? (+3,-30,-143)
javascriptにクロージャっがあるみたいなんですが、AS3とかC#と同じ感じで使って問題ないですか?
クロージャもラムダも似たようなもんかなって思ってます

c#だとこんなのイメージしてます
var f = new Action<string>((msg) => { Console.WriteLine(msg) });
f("hellow world");

as3だとこんなのイメージしてます
var f:Function = function(msg:String):void {Alert.show(msg)};
f("hellow world");
738 : Name_Not - 2013/09/17(火) 22:35:57.95 ID:??? (+20,+2,-3)
ん?
739 : Name_Not - 2013/09/17(火) 23:36:08.73 ID:??? (+4,-30,-35)
var f = function(msg) { alert(msg) };
f("hellow world");

javscriptだとこう?
741 : Name_Not - 2013/09/17(火) 23:54:49.17 ID:??? (-1,-29,-20)
>>740
>>689か?
グローバル変数とローカル変数の問題だよ。
742 : Name_Not - 2013/09/18(水) 00:08:39.82 ID:phEPVapY (-29,+22,-52)
最初はグローバル変数だったやつが関数内も同じ文字を使ったゆえにローカル変数になり、値が引き継がれなくなったということですか?
743 : Name_Not - 2013/09/18(水) 01:09:58.68 ID:??? (+3,-30,+0)
>>742
いや、ひとつの変数がグローバル変数からローカル変数に変化するとかじゃないよ。
グローバル変数のxとローカル変数のxは別々に存在する。

x=0; ←グローバルx

function plus(x){ ←ローカルx
  x=x+5;      ←ローカルx
  alert(x);      .←ローカルx
}

<h1 onClick="plus(x)" >たす</h1> ←グローバルx

function plus(x){ は、意味合い的に function plus(var x;){ ということ。
Clickされると plus(0) が実行される。
すると関数は実質的にこのような動作となる。
  var x=0;
  x=x+5;
  alert(x);
この後、関数内ローカル変数のxはドブに捨てられる。
グローバル変数のxは何も操作されていないので、そのままの0です。
744 : Name_Not - 2013/09/18(水) 01:28:15.73 ID:phEPVapY (+27,+29,-22)
誤解しておりました。深夜まで丁寧な説明をしてくださりありがとうございました。
745 : Name_Not - 2013/09/18(水) 02:13:18.22 ID:??? (+7,-30,-101)
>>739
超ありがちな例だとこんな

var f = (function(){
  var a = 0;
  return function(){ alert(++a); };
})();

f(); // 0
f(); // 1
f(); // 2


こういうのは
var f = function(msg){ alert(msg) };

単に変数に関数オブジェクトを放り込んでるだけで
本質的にはクロージャとは関係もない
746 : Name_Not - 2013/09/18(水) 02:22:52.49 ID:??? (+43,+25,+0)
ちょ
747 : Name_Not - 2013/09/18(水) 02:27:38.07 ID:??? (+106,+29,-45)
本来関数fからは外のスコープが見えるはずだけど
最近のエンジンは必要な変数しかコンテキストに付加しないから
実際は見えないから真にクロージャじゃない

それがどうしたと思うかも知れないが
デバッグでステップ実行とかすると困る事がよくある
748 : Name_Not - 2013/09/18(水) 03:10:26.99 ID:??? (+57,+29,-30)
「真のクロージャ」とか自分で勝手に定義してるだけでは?
JSにおけるクロージャはそういうものだろう
749 : Name_Not - 2013/09/18(水) 04:49:47.54 ID:??? (+67,+27,-5)
>>784
ぜんぜん違う
JSとか関係なくこれは実行系次第
750 : Name_Not - 2013/09/18(水) 05:16:08.82 ID:??? (+52,+29,-9)
「真のクロージャ」のソースは?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について