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

    私的良スレ書庫

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

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

    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
    101 : Name_Not - 2019/07/09(火) 14:20:24.60 ID:???.net (-2,+0,-40)
    コードは長くなるけど変数使わないからメモリ消費しないんだぜ!



    そのコードを入れておくメモリが消費される
    102 : Name_Not - 2019/07/09(火) 14:21:23.30 ID:???.net (+28,+29,-21)
    >>100
    この質問の本質は、そういうコードを書きたくないということでしょう?
    103 : Name_Not - 2019/07/09(火) 14:33:23.67 ID:???.net (+29,+26,-52)
    結局何をしたいのか分からん
    C言語だって char *a = "abc"; と書いたとき、ポインタ a の分だけメモリ喰うわけだしな

    したいことと、典型的なコードでなってしまうことの差が
    具体的に分からないと何ともいえない

    http://jsbin.com/yemedon/edit?html,js,console
    こういうのとは違うみたいだし
    104 : Name_Not - 2019/07/09(火) 14:42:37.02 ID:???.net (+32,+29,-43)
    無理矢理いえば test() の返値は必ず入る
    アセンブラのときにレジスタに必ず入るかどうかは知らない

    0 との比較の場合はアセンブラ的には即値0が必要とならないケースが多い、はず
    RISCでどうなるか等は知らない
    サボリのためCASLの仕様書は読んでない
    105 : Name_Not - 2019/07/09(火) 15:13:50.86 ID:???.net (+27,+29,-56)
    変数は必ずしもメモリを消費しない
    インライン化とエリミネーションで半分程度削減される
    だからデバッガを有効にしてるとメモリを食う
    106 : Name_Not - 2019/07/09(火) 15:39:24.86 ID:???.net (-27,-30,-37)
    > 私は、いちいち if (element) element.value="piyo"; というふうな中身の確認をせずに、代入をできるようにしたい

    そもそも、これって vanilla JS で実現できるの?
    107 : Name_Not - 2019/07/09(火) 15:46:49.40 ID:???.net (-21,-29,-43)
    入力があって、出力対象となるべき要素がなければ
    parentNode に appendChild() するのが自然な考え方にもおもえる
    無視して良いという仕様なのだろうか(そうだとしたら while で終わりか?)

    メモリどうこうより仕様が気になるな
    それとも「じつはライブラリ房でした」というオチなのか
    108 : Name_Not - 2019/07/09(火) 15:59:43.81 ID:???.net (-27,-30,-76)
    Rubyには通称ぼっち演算子っていってね、

    a=nil
    a&.foo
    # =>nil

    みたいに、値がnilでもエラーにならない方法があるんだよ。
    どうせこれのこと言ってるんっでしょ?

    でもね、コード上メモリを使ってないように見えても、
    アセンブラレベルで見れば「if nil だったら nil を返す」って
    コードになってて、コードの分のメモリ使ってますからw
    109 : Name_Not - 2019/07/09(火) 16:10:08.48 ID:???.net (+25,+29,-38)
    >>107
    いつものRuby厨がしたり顔をしにやってきたが、
    言いたいことを先に言われ、良い所を
    jQuery厨に持っていかれたという流れw
    110 : Name_Not - 2019/07/09(火) 16:42:52.24 ID:???.net (-27,-30,-80)
    イケてる言語のNull条件演算子:
    C#
    ?.
    Swift
    ?.
    Kotlin
    ?.
    イケテナイ言語のNull条件演算子:
    ブビィ
    &.

    ムダな認知負荷の大きいクソ言語。
    111 : Name_Not - 2019/07/09(火) 17:18:14.96 ID:???.net (-22,-29,-93)
    http://jsbin.com/hidafon/edit?html,css,js,output
    ふむ…
    あろうが無かろうが問題なく書ける場合もある、か

    むしろ出力先等が無いのにスルーされると、バグが潜在化しそうな気もするけど、まあいいか
    どういう場面で幸せになれる実装なのか分からん
    strlcat / strlcpy みたいなものかしらん
    112 : Name_Not - 2019/07/09(火) 17:42:19.01 ID:???.net (+42,+29,-166)
    > むしろ出力先等が無いのにスルーされると、バグが潜在化しそうな気もするけど、

    それは設計思想がわかってないから。

    CSSと同じだと考えればいい。
    CSSは要素があろうがなかろうがエラーにならない。

    これは宣言型プログラミングの思想だよ。

    http://ja.wikipedia.org/wiki/%E5%AE%A3%E8%A8%80%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
    > 宣言型プログラミング(英: Declarative programming)は、
    > プログラミングパラダイムの名称だが、主として2種類の意味がある。
    > 第1の意味は、処理方法ではなく対象の性質などを宣言することでプログラミングするパラダイムを意味する

    出力先に対して処理するという設計思想ではない。
    出力先はどういう性質かというのを記述する。
    要素に対して値を入れるのではなく、その要素はこういう値であるという宣言を記述する。
    そうすることでその要素があればそういう値であり、要素がなければないというだけの話になる。
    処理ではなく宣言なのでわかりやすくバグも少なくなる。
    113 : Name_Not - 2019/07/09(火) 18:39:24.27 ID:???.net (-21,-30,-99)
    >>102
    >>100を関数化するだけで、

    foo(element).value = 'bar';

    と書けるし、それでも「関数を書きたくない」というなら、巨大な関数である jQuety()を定義しているコードに魅力を感じるのは本末転倒
    明らかにjQueryの方がメモリ消費量が多いわけだから、「メモリ」の観点ではjQueryにメリットはない
    114 : Name_Not - 2019/07/09(火) 19:00:49.22 ID:???.net (+32,+27,-51)
    >>113
    > 「関数を書きたくない」というなら、巨大な関数である jQuety()を定義しているコードに魅力を感じるのは

    jQueryを使うなら「関数を書かなくていい」じゃん
    「関数を書きたくない」という要望を見事に満たしている。
    115 : Name_Not - 2019/07/09(火) 19:15:13.42 ID:???.net (+27,+29,-5)
    そもそもプログラム書きたくないんですけどどうしたらいいですか?
    116 : Name_Not - 2019/07/09(火) 19:37:36.54 ID:???.net (+37,+29,-21)
    >>114
    「メモリも食わない」の要件を満たしてないじゃん
    117 : Name_Not - 2019/07/09(火) 19:39:54.22 ID:???.net (+21,+23,-16)
    エラーにならないオブジェクトとかそもそもがヤバい
    118 : Name_Not - 2019/07/09(火) 19:40:48.14 ID:???.net (+34,+29,-23)
    >>116
    それは「すべてのものはメモリを食う」という結論で終わったろ?
    119 : Name_Not - 2019/07/09(火) 19:40:53.34 ID:???.net (+31,+29,-12)
    そもそも、>>102は質問者なのか?
    他人が悪のりしてるのか、質問者本人なのか分からん
    120 : Name_Not - 2019/07/09(火) 19:41:41.97 ID:???.net (+0,+4,+0)
    >>118
    メモリ消費量が違う
    122 : Name_Not - 2019/07/09(火) 19:49:31.63 ID:???.net (+5,+12,-2)
    jq談義は誰も得しないのでやめよう
    123 : Name_Not - 2019/07/09(火) 19:56:31.05 ID:???.net (-26,-29,-118)
    そんな面倒くさがりの君にプレゼント
    Object(element).value = 'bar';

    ライブラリ使うよりお手軽だよ!
    メソッド呼び出しは要件にないから知らないよ!

    そもそも、NullPointerExceptionはエラー検知として捉える向きもあるので、一概に悪いとはいえない(上で懸念されてるのはそういうことかと)
    ポリシーの違いを他人を批判する理由にするのは止めよう >>1参照
    124 : Name_Not - 2019/07/09(火) 19:57:38.63 ID:???.net (+26,+29,-76)
    無いときにエラーにしたくなくて、あるときに全ての要素を対象にしたければ
    DOM APIには複数要素取得する手段がいくつもあるんだから
    それでmapなんかで回せばいいだけじゃん
    125 : Name_Not - 2019/07/09(火) 19:59:01.08 ID:???.net (+38,+30,-155)
    >>112
    どうだろう
    CSS はデザインの話で、コンテンツそのものの話とは区別されるんじゃないかと

    > 出力先はどういう性質かというのを記述
    これなんてまさにそれ


     オブジェクトのプロパティに値をセットしたつもりが
     そもそもオブジェクトありませんでしたー
    でエラーが出なくて幸せになる具体的なシーンが思いつかない、というのもある


    「『対象の性質を宣言』しようとしましたが、その対象は存在しませんでした」ってことでしょう?
    126 : Name_Not - 2019/07/09(火) 20:01:55.41 ID:???.net (-28,-30,-36)
    >>124
    1. elements を取得します
    2. elements.length を使って for ループして item(i) 等で個々の element を取得して処理します

    コレではダメ?
    127 : Name_Not - 2019/07/09(火) 20:03:15.65 ID:???.net (+2,+3,-14)
    >>124
    調べたら、APIが結構拡張されててびっくりした
    http://developer.mozilla.org/ja/docs/Web/API/NodeList
    131 : Name_Not - 2019/07/09(火) 20:21:54.36 ID:???.net (-18,-11,-2)
    >>129
    モダンブラウザは皆対応してる
    132 : Name_Not - 2019/07/09(火) 20:46:01.50 ID:???.net (+17,+29,-1)
    >>130-131
    便利な世の中になったね
    133 : Name_Not - 2019/07/09(火) 21:11:26.17 ID:???.net (-27,-23,-51)
    >>120
    > メモリ消費量が違う

    せやね。メモリが640KBしか無いような環境は問題になるだろうね。
    ブラウザが動くのか知らんが
    134 : Name_Not - 2019/07/09(火) 21:15:24.26 ID:???.net (+20,+27,-4)
    要件定義は質問者とやりな
    135 : Name_Not - 2019/07/09(火) 21:36:14.37 ID:???.net (+27,+29,-3)
    単に大したメモリ消費量じゃないと言ってるだけ
    136 : Name_Not - 2019/07/09(火) 21:40:54.42 ID:???.net (+27,+29,-18)
    > ・回答には多様性があります。他人の回答を尊重してください
    137 : Name_Not - 2019/07/09(火) 21:41:59.69 ID:???.net (+33,+29,-8)
    jsにも ?. が実装される草案は先送りになったのかな
    138 : Name_Not - 2019/07/09(火) 21:43:14.03 ID:???.net (+15,+18,+0)
    >>137
    詳しく
    139 : Name_Not - 2019/07/09(火) 21:43:48.15 ID:???.net (+22,+24,-32)
    jQueryが消費するメモリ
    →大した消費量じゃない!

    自前で関数ちょこっと書くのに消費するメモリ→
    とんでもないメモリ消費!
    140 : Name_Not - 2019/07/09(火) 21:45:15.99 ID:???.net (-27,-29,-15)
    >>137
    先送り??
    tc39の制定プロセス知らないの?.
    141 : Name_Not - 2019/07/09(火) 21:46:36.15 ID:???.net (+27,+29,-24)
    その煽る気満々の内容で質問者に回答してやればいいのに、これだからマウント君は
    142 : Name_Not - 2019/07/09(火) 21:53:39.94 ID:???.net (+37,+30,-147)
    >>137
    ES全体的に前みたいに大量の草案をガツガツ進める雰囲気じゃなくて
    細かい仕様をより小規模なミーティングを頻繁にして少しづつ着実に落ち着いて進める感じになってる

    その上でオプショナルチェーンの進歩状況はやや鈍調
    本来なら輸入構文で順調に行くはずだけど、
    ついでにこれもセットで欲しい機能のオプショナルコールについて問題を抱えていたので
    あまり進捗してこなかったのが、直近のミーティングで前に進んだ
    もう一山か二山あるだろうけど、ゴールの明かりがちらりと見えた所
    143 : Name_Not - 2019/07/10(水) 05:04:01.56 ID:???.net (-19,-30,-161)
    firefox x64 + Stylus + Greasemonkey
    とあるよく利用しているサイトが今一つ使いづらいので、
    Stylusの自作スクリプトで必要以上の余計な広告を非表示にし、
    非同期処理させて処理の高速化を図りました。
    改めてそのサイトのソースを見たらsetTimeoutで特定の広告を少し時間差を置いて表示させ、
    更に時間差を置いて記事部分を表示させるなんてことをやっていることが判明。
    即時表示させる手段はないかと、StylusかGreasemonkeyでsetTimeoutの無効化とか、
    そのスクリプト自体の上書きか無効化が出来ないか試行錯誤中。
    どなたか、何かアドバイスなど頂ければ幸いです。
    144 : Name_Not - 2019/07/10(水) 06:23:21.58 ID:???.net (+27,+29,-25)
    元あるものを改変するのではなく記事の内容を取得して表示するリーダーアプリを作ったほうが聡い
    146 : Name_Not - 2019/07/10(水) 07:16:12.75 ID:???.net (+24,+26,-21)
    草案の話はこちら


    実用厳禁★独自拡張、草案段階のJavaScriptについて
    http://mevius.5ch.net/test/read.cgi/hp/1495948526/
    148 : Name_Not - 2019/07/10(水) 07:42:06.00 ID:???.net (+34,+30,-179)
    …もともとがRuby房召喚のためだけの質問っぽいけど…

    >>112
    > 出力先はどういう性質かというのを記述する。

    element がらみの場合は DOM ツリーの適切な場所に適切な要素を記述し
    その要素にその性質を記述するものではないのかしらん
    まとめたければ DocumentFragment 使うとか、元質問に即して言えば事前に createElement すれば良いんでないかい

    ただ、元質問は「対象が存在しないときにスルー」って言ってるんだから「宣言型プログラミング」とやらは今回別に要らないでしょ
    コレクションのアイテム数を数え、アイテム数を越える分は処理しなければ良いだけ
    …ってのを >>111 のリンク先で書いてみたんだが…
    149 : Name_Not - 2019/07/10(水) 08:11:38.75 ID:???.net (+28,+29,-105)
    >>94
    ?. は、NULL 許容(エルビス)演算子だろ。
    横から見ると、エルビスプレスリーに見える

    Ruby では、関数名の最後の文字に、?, ! が使える

    ? は、真偽値を返すメソッド名に使う。
    ! は、レシーバーの内容を変えるメソッド名に使う

    このルールがあるから、可読性が高い!

    その代わりに、エルビスが使えないから、&. を使う
    150 : Name_Not - 2019/07/10(水) 09:26:14.27 ID:???.net (+23,+28,-41)
    俗称エルビス演算子は?.ではなく?:
    これだからクソ言語信者は。
    ?.の一般的な名前は>>110
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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