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

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

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

    851 = :

    やれやれ

    852 = :

    やれやれに逃げたw
    技術的論争で技術以外のところに逃げ込む人って・・

    853 = :

    はいはい

    854 = :

    m9(^Д^)プギャー

    855 = :

    >>849
    polyfillも知らないとは恥ずかしい奴

    856 = :

    未宣言変数処理なんぞがあり得ると思ってる奴は
    巻き上げを知らないんだろうな

    857 = :

    >>856
    それ関係ない

    858 = :

    >>855
    polyfillは
    if (!Map) {
    みたいなので事足りるけど、これは Map が存在した場合に、0やnullでない事が
    分かってるから否定で判定出来るだけで、厳密に判定する場合はやっぱりtypeofを使う方がいい

    859 = :

    未定義が存在すること自体おかしい、という根拠のない主観はどうでもいい

    860 = :

    >>859
    この文脈で根拠のない主観って日本語が出てくるのが謎である
    変数定義もしないで使ったらエラー出るからtypeofを応急措置的に使うのはバグの元だからやめるべき
    しっかり変数宣言を行なえばいいだけ
    var a;
    console.log(a === void(0));

    861 = :

    typeof XMLHttpRequest とか、既存オブジェクトのチェックで普通に使うんだがな
    経験が浅いんだろうな

    862 = :

    経験というか…

    863 = :

    ライブラリに依存していてクロスブラウザ用コードを書いたことがないんだろう

    864 = :

    >>861
    それvoid(0)でもいいわけだが

    865 = :

    クロスブラウザ対応するにはtypeofを使わなければいけないとか思ってるほうが経験が浅いと思うがね

    866 = :

    >>864
    具体的にはどう書く?

    867 = :

    結局typeof厨はこれ以上戦えなくなってきたから話をずらそうとしてるのが見えてきた

    868 = :

    そろそろ論破する奴が出てきそう

    869 = :

    XMLHttpRequest === void(0) と書くのが目に浮かぶようだ
    どうせ試してないんだろうな

    870 = :

    答えられないから話をずらしてきたのか

    871 = :

    undefinedの判定にtypeofもvoid(0)も使えるけど
    >>861>>869は何の話をしてるんだ?

    872 = :

    >>842のように用途に応じて使い分ければ良いだけ
    typeof房とか排除する方針を持っている奴は信用ならん

    873 = :

    確かにXMLHttpRequestの有無はtypeofが妥当かな
    未宣言チェックはtypeof
    undefinedチェックは===undefinedでやるのがベストってことだな
    はい論破

    874 = :

    >>871
    おまえこそ何の話をしているんだ?
    >>849,858がどういう意味で使っているのか理解してないのか?
    undefined値の判定の話はしてない
    ReferenceError を判定するのに typeof 演算子しか使えないという話だろ

    875 = :

    >>873
    あれ、まともなこと言ってる
    偽物だな

    876 = :

    ふつうにwindowのプロパティ見ればいいだけやん

    877 = :

    >>876
    window依存がある上、[[Call]] 持ってなかったら call できない

    878 = :

    >>860は微妙に話しがずれてんだよな…
    「typeofを応急措置的に」って…だから自分が書いたコードのチェックの話しをしてんじゃねーんだよ!
    アホだなー

    879 = :

    typeof a === 'undefined' がGoogle Closure Compilerで
    ミニファイ出来ないってのは初めて知ったな。

    普通にundefinedと比較したほうがメリット多いんじゃね?

    882 = :

    >>879
    メリット多いというが、具体的には?

    883 = :

    >>882
    ミニファイ出来る。
    タイプ数が短い
    lint系ツールとの相性が良い
    可読性が高い。
    未定義の場合にエラーになってくれる。

    今まで出てるのはこんなところだね。

    885 = :

    >>883
    > 未定義の場合にエラーになってくれる。
    さらっと、まだ言ってんだな

    普通にコーディングしてて未定義のエラーになった→これは普通→コードを修正する
    未定義かundefinedのチェックをする→未定義の場合にエラーなってくれる???

    そんなに未定義の場合にエラーにしたいんだったら、
    if (!foobar) { または if (foobar) {
    で十分、ちゃんとエラーになるし短かい

    わざわざ、typeof a === 'undefined' をする意味が分かってないんだな

    886 = :

    >>884
    大文字小文字を区別しないで検索すればいい話でしょ
    javascriptというかデータベースの話

    887 = :

    >>886
    えっ?
    という事はAjax上でデータベースに都度問い合わせると言うことですか?

    自分はサーバサイドでまずデータベースへ問い合わせし、出てきた結果をそのままJSON化しファイルに格納
    それをAjaxにて処理毎にそのファイルに問い合わせオートコンプリートと考えてたんですが
    その場合大文字のアルファベットしか取得できません

    勿論サーバサイド側でJSONファイルを作成時に大文字を小文字化したものも格納すれば良いのかもしれませんが

    クライアントサイド側で出来ると思ってたんですがサーバサイド側で処理すべきなんですかね

    888 = :

    >えっ?
    >という事はAjax上でデータベースに都度問い合わせると言うことですか?

    後出しかよ
    じゃあ入力内容を大文字にすればいいだろ

    889 = :

    >>883
    > lint系ツールとの相性が良い
    typeofだとなぜ相性が悪いのか不明
    もう少し、具体的に

    > 可読性が高い。
    読者の問題
    どちらもたいして変わらない

    891 = :

    newでインスタンス生成するのは古いやり方で
    これからは廃れていくのでしょうか?

    892 = :

    リテラルで生成する方法はあるけど、コンストラクタからインスタンスを生成するのに
    new以外の方法があるわけがない

    C++はnewをプライベートにする事は出来るけど、JavaScriptでは出来ないからnewは呼ばせて
    内部でどうにかするのがいいだろうね(シングルトンとか)

    JavaScriptパターンにその辺の事は書いてある

    893 = :

    コンストラクタを使わなくてもObject.createでオブジェクト生成できるし、
    JavaScriptの本でもそっちを新しい方法として紹介しています
    新しい方法が出てきたからにはもう古い方法はなくなっていくのでは?

    894 = :

    あー、Object.create()があったか (まぁ内部でnewを呼んでるけど)

    もうこの辺は考え方の違いになるけど、Object.create()は他の言語のクラスや継承の概念とは
    違うJavaScript特有のオブジェクト作成方法(のラッパー)だから、積極的に使わなくていいと思ってる

    ES6になればclassも使えるようになるし、それまではclassをエミュレートした
    何らかの(または自作の)クラスシステムを使ってればいいと思う

    つうか、newが古い新しいにマジレスしてたら、また変な事になりそうなんでこの辺でやめとく…

    895 = :

    内部でnewを呼んでいるとは?
    変な負け惜しみにしか聞こえませんが気のせいでしょうか?
    Object.createは、
    JSのnewが変態的で分かりにくいという反省から
    JSらしいオブジェクト生成に回帰した正統進化だと思いますが?

    896 = :

    http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/create
    これのPolyfill見ればいいだろ
    第2引数の設定が省かれてるけど、動作的には全く一緒

    897 = :

    >>893
    インスタンスの初期化処理をどうするかって話になるんだよね
    Object.createしたあと必ずinitメソッドを呼ぶみたいな決まり事を作るくらいなら、
    コンストラクタでいいじゃんって

    結局みんなクラスベースが好きで、プロトタイプなんて隠ぺいしてほしくて、
    altJSがわんさか溢れ、ES6にはclass syntaxが入っちゃう

    898 = :

    >>896
    polyfillはnewしかないバージョンのためのものなんだから
    newで代替させるのは当たり前だろ
    そこから内部的にnewしてるという結論にはならねーよ
    まさかの珍ロジックでびびったわ

    899 = :

    プロトタイプベースにおいてはプロトタイプチェーンの伸長だけが
    いわば原現象として存在している
    newはプロトタイプチェーンの伸長をクラスベース風に記述可能にしたシンタックスシュガーでしかない
    従って内部的にnewする、という言い方は成り立たない
    はい論破

    900 = :

    >>898>>899
    やってること一緒でしょ
    実際にどう実装されてるかソース確認してみるよ
    JavaScriptのAPIなんてほとんどJavaScriptで実装されてるわけだし


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

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


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