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

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

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

301 = :

>>299
>>300
なるほど!
ようやく理解できました
本当にありがとうございました!

302 = :

>>296
だまされたって君>>282
!function(){って書いたけど!(function(){なんて書いてないじゃない

303 = :

初心者で遊ぶなよ…

304 = :

>>302
一人だけ何も理解していない悪寒

305 = :

初心者のくせに随分と態度がでけえなおい

306 = :

>>286
こいつも見当はずれ

307 = :

>>290 ってマジレスだったのか…

308 = :

遊んでたのかと思ったらマジレスだったのか・・

309 = :

自演スレ

310 = :

>>309
>>284 >286 >>290 >>302 >>305の誰かですか?
顔真っ赤ですよ

311 = :

え?ちょっと待ってください
誰が合ってるのか分からなくなりました


>>302の言ってることが意味わかりません。


私がだまされたって言ったのは

>>290

var a = !function(){ return true; };
alert(a);

って書きましたけど、
>>300の神様が()がついてなきゃ即時関数ではないと教えてくれたので、
()がついてないコードを提示してきた>>290にだまされたのではないかなと思ったのです。

とにかく>>300の人が正しいと思っていいんですよね?

312 :

ごめんなさい
>>311は全部私です

313 = :

(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。

314 = :

>>310
こういうのが一番きもいな

>>311
iiyo

315 = 312 :

>>313
実際何度もググリました。
最初の時点では即時関数という言葉すら知らなかったので
!やfunction,javascript等の語句を組み合わせて検索するしかありませんでした。
グーグルさんは!とか記号で検索しても正しい検索結果を返してくれないので、即時関数という言葉にたどり着くまでにまず時間がかかりました。
即時関数という言葉にたどり着いてからは、その情報が載ってるページでは私の知りたいことが書かれてなかったので
ここで聞いただけです。

>>314
ですよね
本当にありがとうございました!

そろそろ荒れそうなので消えますね
皆さんありがとうございました!

316 :

>>311
誰が正しいとかを鵜呑みにするんじゃなくて
原理・原則的なことを覚えようよ

先頭をfunctionから書き始めたら関数宣言になるから
無名関数として後ろに()つけて、その場で実行できないのはわかるでしょ?
これはJSの書式のルール

で、先頭がfunctionではければいいわけだから
先頭に論理演算子をつけたり、カッコで括ったりすればよくて
そうすれば、後ろに()を付けられるから、その場で実行できる

論理演算子をつけた例において、無名関数自体がboolを返す
みたいな話が出てから混乱しているみたいだけど
上の話とは基本的には関係ないことだから切り分けて考えよう

317 = :

>>290は正しいよ

319 = 312 :

>>316
ありがとうございます

先頭がfunctionだけだと「文」としてみなされるけど
+-などの演算子をつけると式として認識されるってググッたら書いてました。

>>318
この通りに理解してました
自信が持てました
神様ありがとうございます!

320 = :

>>319
> 先頭がfunctionだけだと「文」としてみなされるけど
違います。function キーワードではじまるものは「関数宣言」であって「文」ではありません。
ECMAScript に「関数文」はありません。(Firefox の独自拡張に似たようなものはありますが)

> +-などの演算子をつけると式として認識されるってググッたら書いてました。
加法演算子(+)や減法演算子(-)を使用すれば関数式になるロジックは正しいですが、
戻り値を Number 型に変換する必要がないのに使用しているのなら無駄だと思います。

念のため、補足しておきますが、少なくとも ECMAScript 5 までに無名関数や即時関数という用語はありません。
あれは俗称であって ECMAScript では関数宣言か関数式の違いがあるのみです。
(名前の有無も関数宣言、関数式 それぞれにありますが、別件なので割愛)
ぐぐるのもいいですが、ECMA仕様を読むほうが確実だと思いますよ。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.2.5
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/13_Function_Definition.html

321 = :

>戻り値を Number 型に変換する必要がないのに使用しているのなら無駄だと思います。
いや式に変換するために使うなら良いだろ

322 = :

>>321
例えば、下記コードを書いたとして Number 型に変換する処理が無駄になります。

+function () { console.log('hoge'); }(); // 関数式は NaN を返す

加法演算子は複雑な内部処理を経て関数式を Number 型へ変換しますが、返り値 NaN を再利用しないのならあえて加法演算子を利用する意味がありません。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.6.1
この状況ならば関数式として処理するだけで良いはずです。

(function () { console.log('hoge'); }()); // 関数式は undefined を返す

グループ化演算子は内部の生成規則を式として評価する処理のみを行います。
加法演算子と比較すると無駄な処理がありません。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.1.6

323 = :

洩れも括弧で囲んでおくのが一番よく意図を表していると思うので好み。

324 = :

>>320
下記訂正します。失礼しました。

× 名前の有無も関数宣言、関数式 それぞれにありますが、別件なので割愛
○ 関数式には名前の有無がありますが、別件なので割愛

325 = :

なら!なら問題ありませんよね

326 = :

>>325
論理否定演算子には触れられていないようですが、どうして問題ないと思ったんです?

327 = :

実際に試して速度に問題無いことを確認したからですが?

328 = :

>>322
関数式が返すのは関数オブジェクトね。

呼出しコード込みで書いてあるから混乱させることはないだろうけど
ECMAに拘ってるみたいだからツッコんどく。よそでも同じこと書くだろうし。

329 = :

>>325
論理否定演算子も型変換が余計だよ

330 = :

>>327
なら>325の文章がおかしい

331 = :

>>328
ご指摘ありがとうございます。
「関数呼び出し」に訂正します。

332 = :

2chのスレッド一覧を取得したいと思っています。
XMLHttpRequestでsubject.txtを読み込むように指定したのですが、
スレッドタイトルの日本語部分で文字化けしてしまいます。
調べてみたところ、Shift-JIS形式のテキストファイルだけど、
UTFで読み込んでしまうから文字化けしてしまうそうです。
文字化けせずに取得する方法を教えていただけないでしょうか?
よろしくお願いいたします。

333 = 316 :

>>332
こっちもSJISにしてみれば?
もしくは途中にプロキシ的なプログラムかまして
エンコード変換するとか

334 = :

IE7でのみ、「終了していない文字列型の定数です。」というエラーが出ます。
調べてみましたがソースにおかしな所はなく…。
誰かヒントだけでもわかりませんか。IEが示す行はJS呼び出しの引数に
日本語文字列を渡していて文字化けなどはありません。文字コードはUTF-8です。

335 = 316 :

どっかで文字化けとかしてそうな
プログラム自体はおかしくなくても、引数を受け取ってゴニョゴニョするところとか
再現する最小サンプルを作ってみて下しあ

338 = :

>>334
IE8 では "hoge のように文字列リテラルのクオートが閉じられていないと「終了していない文字列型の定数です。」のエラーになりますね。
上記のパターンでなければ文字化けを疑って、外部jsファイルの Content-Type ヘッダで適切な文字コードを指定してみてはどうでしょう。

339 = :

閉じてないクォート、文字化けなどはやっぱりありません。
文字コードもサーバーからソースからDBから全部UTF-8で統一されていて、混ざる余地がありません。
引き続きもうちょっと調べてみます。

342 = :

スレ違い

343 = :

>>339
ブラウザの「ソースを見る」で表示させてみたかな。

345 = :

意味がわかりません

346 = :

window["init"]();
でおk

349 = :

そういうことか
勉強になったわw

350 = :

>>346
頭には入ってるつもりなんだけどなかなか思いつかないわ


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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