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

    私的良スレ書庫

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

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

    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
    401 : Name_Not - 2019/03/18(月) 18:12:19.37 ID:???.net (-1,-29,-25)
    ぶっちゃけIEよりfirefoxの方が上手くJS動かないこと多くない?
    IE10以下は論外として
    402 : Name_Not - 2019/03/18(月) 19:06:34.58 ID:???.net (-1,-29,-9)
    signと三角関数のsinを勘違いしている幼稚園児が約一名いるなw
    403 : Name_Not - 2019/03/18(月) 19:18:56.62 ID:???.net (-1,-29,-51)
    Math.signumじゃいかんかったんかね
    他にsignumをsignって書く言語あったっけ?
    404 : Name_Not - 2019/03/18(月) 20:00:11.87 ID:???.net (+61,+28,-4)
    >>396
    これはどうして動くの
    405 : Name_Not - 2019/03/18(月) 20:16:12.55 ID:???.net (+57,+29,-18)
    3つしか演算子ないんだから
    流石に自分でいろんな場合考えてみようぜ
    406 : Name_Not - 2019/03/18(月) 20:17:46.82 ID:???.net (+11,-30,-198)
    >>404
    論理演算子 ||(or)は
    expr1 || expr2 としたとき
    expr1がfalseとみなせる値の時、expr2を返す

    falseとみなされるのは
    0、-0、false、null、undefined、NaN、空文字

    aが正のとき、カッコがfalseつまり0なので
    0 || 1 となり、0はfalseとみなされ1が返る

    aが負のとき、カッコがtrueつまり1なので
    -1 || 1 となり、-1はfalseとみなされないので-1が返る
    407 : Name_Not - 2019/03/18(月) 20:25:56.89 ID:???.net (-2,-30,-16)
    NaNとかもあるから
    a>0?1:a<0?-1:a

    +a>0?1:+a<0?-1:+a
    の方が良いだろうな
    408 : Name_Not - 2019/03/18(月) 20:37:27.77 ID:???.net (+22,-29,-2)
    (a>0)-(a<0)
    が一番わかり易いでしょ
    409 : Name_Not - 2019/03/18(月) 20:44:14.80 ID:???.net (+43,+16,-11)
    >>408
    すばらしい
    410 : Name_Not - 2019/03/18(月) 20:54:23.12 ID:???.net (+2,-29,-16)
    結局signのpolyfillやないかい
    411 : Name_Not - 2019/03/18(月) 21:05:02.19 ID:???.net (+52,+29,-2)
    それがどうかしたのか?
    412 : Name_Not - 2019/03/18(月) 21:08:59.06 ID:???.net (-1,-29,-1)
    なんとか10文字に小さくできた
    -(a<0>0)|1
    413 : Name_Not - 2019/03/18(月) 21:10:26.37 ID:???.net (-1,-29,-2)
    と思ったら8文字でもいけたわ
    -(a<0)|1
    414 : Name_Not - 2019/03/18(月) 21:49:44.05 ID:???.net (+0,-29,+0)
    7文字
    a>>31|1
    415 : Name_Not - 2019/03/18(月) 22:09:43.39 ID:???.net (+50,+22,-5)
    さぁ!6文字誰かいないかい?
    7文字で終わりなのかい!?
    416 : Name_Not - 2019/03/18(月) 22:20:04.18 ID:???.net (+6,-29,-18)
    >>410
    >>393以外はa=0の時の挙動がsignと違うからポリフィルにはならないような
    417 : Name_Not - 2019/03/18(月) 22:55:03.55 ID:???.net (+8,-23,-15)
    a=-100000000000000000000000000;
    がだめじゃん
    まぁガバガバだけどそこそこ動けばいいレベルだと7文字限界っぽいな
    418 : Name_Not - 2019/03/18(月) 23:26:54.17 ID:???.net (-6,-29,+0)
    6文字
    a/~a|1
    419 : Name_Not - 2019/03/18(月) 23:28:06.07 ID:???.net (+31,-30,-31)
    >>417
    対応したぞ~
    a?/^-/.test(a)?-1:1:0
    0のときの挙動もsignと同じだw
    420 : Name_Not - 2019/03/18(月) 23:36:18.95 ID:???.net (+58,+25,-2)
    >>419
    これは安全w
    遅そうだけど
    421 : Name_Not - 2019/03/18(月) 23:47:54.91 ID:???.net (+11,-15,-16)
    残念ながらNaNに対応できていない
    422 : Name_Not - 2019/03/18(月) 23:52:24.69 ID:???.net (-1,-29,-7)
    Math.sign含むMath関数はBigIntなどNumber以外の数値を受け付けないという致命的な欠点がある
    423 : Name_Not - 2019/03/18(月) 23:58:51.06 ID:???.net (-1,-29,-4)
    BigMathできるのかと思ったけどstandard libraryまで待つことになりそうだな
    424 : Name_Not - 2019/03/19(火) 00:12:45.40 ID:???.net (+0,-30,-23)
    >>421
    対応したぞ~
    Number.isFinite(a)?a?/^-/.test(a)?-1:1:0:NaN
    425 : Name_Not - 2019/03/19(火) 01:06:23.68 ID:???.net (-1,-29,-1)
    それだとInfinityがNaNになる
    426 : Name_Not - 2019/03/20(水) 10:54:08.67 ID:???.net (+76,+29,-42)
    スマホ(android)でもjavaScriptの勉強がしたいのですが、使いやすい出力アプリ?はありますか?
    ブラウザで出力できるのならそれでも良いのですが、なかなか難しいようで…
    427 : Name_Not - 2019/03/20(水) 10:59:09.00 ID:9YLktb+I.net (+46,+29,-26)
    >>426
    使いやすくはないけど
    http://codepen.io
    http://jsfiddle.net/

    スマホで無理に書くより、大人しく仕様を読むとかにとどめておいたほうが良いとは思う
    428 : Name_Not - 2019/03/20(水) 11:20:55.93 ID:???.net (+11,-22,+0)
    >>427
    codepenを使わせていただきます。
    ありがとうございました。
    429 : Name_Not - 2019/03/20(水) 11:55:51.31 ID:???.net (+52,+29,-3)
    なぜあえてそんな苦行を…
    430 : Name_Not - 2019/03/20(水) 12:09:30.47 ID:???.net (+57,+29,-48)
    ホリエモンの影響だろうな
    スマホでなんでもやっていくスタイルには賛成だが
    少なくともjavascriptのコーディングをスマホのみでやるのは数年早い
    フォークしてコピペや改変くらいならまだしも
    431 : Name_Not - 2019/03/20(水) 12:46:23.84 ID:???.net (+57,+29,-17)
    俺はガキの頃ガラケーのフルブラウザから始めたぞ
    大丈夫、できるよ
    432 : Name_Not - 2019/03/20(水) 13:13:03.49 ID:9YLktb+I.net (+22,+29,-4)
    紙とペンの方がマシなレベル
    434 : Name_Not - 2019/03/23(土) 22:22:40.79 ID:???.net (+50,+22,-11)
    スマホでもIDEの補完並みのIMEがあればできるかもな あるのか?
    435 : Name_Not - 2019/03/24(日) 01:09:04.99 ID:???.net (+57,+29,-24)
    いらんでしょ
    昔はメモ帳で書く人も多かったんだし
    制約が多い中頑張ることは変な癖がつくけどそれはプラスにもなる
    436 : Name_Not - 2019/03/24(日) 11:35:11.49 ID:???.net (+57,-30,-119)
    すみません初心者の質問ですが
    あるelementAが存在するかしないか分からない時に、
    var element=elementA;
    elemet.style.display="none";
    というふうに書くとelementが要素でないのでstyleがundefinedになるので2行目の時点でエラーになってしまいますよね。
    こういう時に「要素があれば指定の処理をする、なければ何もしない、エラーは出さない」ようにするには
    var element=elementA;
    if(element)elemet.style.display="none";
    というふうに書くしかないのでしょうか?もう少し簡潔に書く方法とかあったりしないのでしょうか
    437 : Name_Not - 2019/03/24(日) 11:36:31.84 ID:???.net (+4,-29,-64)
    >>436
    すみません
    x というふうに書くとelementが要素でないのでstyleがundefinedになるので2行目の時点でエラーになってしまいますよね。
    o というふうに書くとelementAが存在しない場合はelementが要素でなくなるのでstyleがundefinedになるので2行目の時点でエラーになってしまいますよね。
    です
    438 : Name_Not - 2019/03/24(日) 14:39:16.19 ID:???.net (+64,+29,-2)
    >>436
    十分簡潔だと思うけど……
    439 : Name_Not - 2019/03/24(日) 14:40:07.19 ID:???.net (+7,-30,-12)
    あーひょっとして
    ver element = elementA?elementA:new Element()
    みたいなことをしたいのかな
    NullObject的な
    440 : Name_Not - 2019/03/24(日) 14:57:33.89 ID:x5MsQlEw.net (+18,+28,-4)
    ダミー要素を入れておくって手法も
    441 : Name_Not - 2019/03/24(日) 15:12:37.29 ID:???.net (+34,-30,-41)
    function ignore (f) {
    try { return f(); } catch(e) {} ;
    }

    ignore(() => {
    var element =elementA;
    element.styke.display = "none";
    });
    442 : Name_Not - 2019/03/24(日) 16:03:41.23 ID:???.net (+64,+29,-19)
    jQuery厨さんの出番のような気がするけど今日はいないのかな?
    444 : Name_Not - 2019/03/24(日) 21:41:37.21 ID:???.net (+11,-30,-270)
    >>442
    呼んだ?w

    >>436
    jQueryの設計は
    1. セレクタで検索する
    2. 「0個以上のマッチした要素」であるjQueryオブジェクトが作られる
    3. そのjQueryオブジェクトに対してメソッドを呼び出すと、
    「0個以上のマッチした要素」全体に対して処理が適用される。

    つまり存在してもしなくても同じように処理をかけて
    要素がなければないでエラーにならないという設計だよ。
    CSSと同じだね。(CSSも要素がなくてもエラーにならない)

    >>436の例だと以下のように簡潔に書ける。
    $(elementA).css({display: 'none');

    ただ普通はこのようには書かない。
    一般的には $(elementA) ではなく、$('.foo') みたいなセレクタを書くし
    CSSを直接いじるのではなく $(・・・).addClass('bar'); みたいにクラス名をつけ外しして
    CSS側で .bar { display: none } みたいに書く


    なお >>441 はありえないクソコード
    445 : Name_Not - 2019/03/25(月) 00:26:44.23 ID:???.net (+80,+29,-48)
    これだけのためにわざわざ何KBもあるコードを導入しないといけない案の方が遥かにクソだけどな
    446 : Name_Not - 2019/03/25(月) 00:31:28.97 ID:cn8CNW4E.net (+42,+29,-91)
    んーまぁ>>441は一番ないかな
    もっとべた書きでいいと思う

    >>445
    このレベルの質問する人なら、もうjqueryを利用したライブラリはバンバン使ってると思う
    jQueryの導入については気にしなくていいと思う

    なんだったら、テンプレを作ってみては?jQueryの有無とか
    447 : Name_Not - 2019/03/25(月) 04:24:51.14 ID:???.net (-1,-29,-36)
    Kotlin の、?: エルビス演算子みたいな奴だろ
    448 : Name_Not - 2019/03/25(月) 08:06:16.57 ID:???.net (+15,-30,-166)
    433ですありがとうございます
    >>438
    beautifyをかけた時に2行に分かれてしまうのがイヤだったり(そんな重要な部分じゃないのでソース上で場所とったり変に目立ったりして欲しくない)
    同じ変数名を1度以上書きたくなかったり(そこが変数じゃなかったり変数名が長かった場合かさばるから)
    して、まさにjQueryみたいに反応してほしいんですよね。むしろ直接
    elementA.style.display="none";
    と書いて、elementAが存在しなかったりエレメントじゃなかったりすれば何もせず素通りしてほしいぐらいなんです。
    (elementA?).style.display="none"; とか
    if(elementA).style.display="none";
    みたいな書き方が(空想ですが)あればいいんですが。
    >>439
    そうですね、そんなふうに1行にまとめる書き方でelementAを2度書かなくてすむ書き方があれば知りたいです…
    449 : Name_Not - 2019/03/25(月) 09:10:57.61 ID:???.net (-3,-26,-4)
    ?.
    tc39で提案されてると思う
    450 : Name_Not - 2019/03/25(月) 09:18:32.06 ID:???.net (+5,-30,-148)
    >>448
    どちらかといえば、変数 element が100%要素ノードになるようにコードを組むか、要素ノードでない場合にTypeErrorを返す方が厳密動作で俺は好きだけどな
    (バリデーションするなら、Object.getPrototypeOfとか、nodeTypeとか、tagNameとか、いろいろあるが)

    君のやりたいことを実現するには、setProperty(element, 'style.display', 'none') をユーザ定義すれば良い
    だが、呼び出すごとに2の乗数分の組み合わせが出来るから、そこを考慮してアルゴリズムを考える手間が必要
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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