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

    私的良スレ書庫

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

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

    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
    54 : Name_Not - 2018/06/08(金) 15:15:47.72 ID:???.net (+31,+29,-10)
    >>31
    いや、意味は勿論分かってるがちょっと関連することとして思い出したので
    補足的に書いただけだよ
    55 : Name_Not - 2018/06/08(金) 15:18:25.96 ID:???.net (+17,+23,-36)
    >>53
    それも含めてES2015仕様のはずだよ
    あまり重要でない機能だから実装が遅かっただけでは?
    57 : Name_Not - 2018/06/08(金) 15:34:32.92 ID:???.net (+32,+29,-72)
    というかだなfunctionの名前のように
    関数名がその関数オブジェクトの.nameになるってのは思いつくけど、
    関数を入れた変数名が、関数名になるなんて仕様普通思いつかないよ

    匿名関数はデバッグが面倒になるので
    どうにかして名前をつけられないか?という
    方針で考えてやっと思いつけるってもんだ

    仕様になるのが遅れるのも当然
    58 : Name_Not - 2018/06/08(金) 20:41:47.10 ID:???.net (-27,-30,-94)
    仕様は遅れては居ないが実装が遅れてるのかもな
    仕様の該当箇所はここか
    http://www.ecma-international.org/ecma-262/6.0/#sec-assignment-operators-runtime-semantics-evaluation
    e. If IsAnonymousFunctionDefinition ~~
    59 : Name_Not - 2018/06/08(金) 21:48:42.42 ID:???.net (-13,-10,-20)
    firefoxってアホみたいに(褒め言葉)早く正確に仕様通りに実装するUAじゃなかったっけ
    60 : Name_Not - 2018/06/09(土) 07:40:37.68 ID:???.net (-29,-30,-105)
    contenteditableな要素にクリップボードをペーストする前に
    リッチテキストをプレーンなテキストに変換しようと思い、
    onPasteイベントの中でclipboardDataにsetDataしたのですが、反映しません
    ペースト時にclipboardDataに書き込むことは出来ないのでしょうか?
    61 : Name_Not - 2018/06/09(土) 10:05:45.85 ID:???.net (+14,-29,-144)
    http://teratail.com/questions/88915
    これを思い出した。

    関数宣言→「変数の実体化」で変数定義が巻き上げられる
    変数宣言(var)→「変数の実体化」で巻き上げられる
    let,const→「変数の実体化」で巻き上げられるが、TDZでは参照不可
    アロー関数→即時呼び出しor変数宣言に含めることしかできない
    関数式→即時呼び出しor変数宣言に含めることしかできない

    「変数の実体化」はES3当時の表現だが、分かりやすいのでつい使ってしまう。
    ES2017ではこの文言はどう変わってるんだったか。
    62 : Name_Not - 2018/06/09(土) 19:40:55.00 ID:???.net (-23,-29,+0)
    >>59
    いや、JS2.0とかやってた名残で当初は早いようにも見えたけど
    実際は独自実装の非互換性問題とかもあったし、ここ2年くらいはChromeの方が実装早いよ

    >>61
    難しく考えずとも、変数とはスコープオブジェクトのプロパティのようなものだ
    そのスコープにぶら下がる変数はスコープに入る時に全て作られる
    そういうことをしなければ。スコープ外でlet aと定義していてスコープ内で同じくlet aと定義している場合、
    スコープ内のlet aに達するまでにaを参照した場合スコープ外のaを参照する挙動になってしまう

    あるいはそういう挙動でも良かったのかもしれないが、JSではその挙動を是としていないため、
    スコープ内で作られる変数はそのスコープに入った段階で作られることになる
    仕様での用語としては「CreateBinding」で、スコープ(Environment Record)に対して値を紐付けるための名前を作る作業がある
    そしてその変数宣言文に実行が達したら「InitializeBinding」で、値が初期化される
    それまでに変数を利用しようとした場合は例外となる

    要するに変数の状態としては「created」かどうかと、「initialized」かどうかの2つを考えればいいだけ
    関数宣言に関してはブロックが評価される時に、通常の宣言であればcreateされるだけのところを追加でinitializeされるというだけ
    64 : 61 - 2018/06/09(土) 21:56:44.42 ID:rjw/LaIP.net (+22,+29,-38)
    >>62
    変数の挙動は理解しているし、詳細な説明が欲しかったわけではない
    「仕様上の文言がどうなっているか」が気になっただけ
    66 : Name_Not - 2018/06/10(日) 00:54:36.18 ID:???.net (-19,-16,-100)
    >>64
    だからそれも書いてるじゃん
    変数周りの仕様としては「created」と「initialized」しか無いって
    関数宣言は「Hoistable」に含まれるわけだけど、それは「created」されて「initialized」されるということでしかない
    「実体化」などという表現や概念は存在しない
    68 : Name_Not - 2018/06/10(日) 02:57:42.92 ID:???.net (-26,-29,-72)
    React Angular Polymer Vueなんかのフレームワークと
    jQueryって同じフレームワークでもなんか別物のような気がするんですが
    これらは出来ることは同じなのでしょうか?
    69 : Name_Not - 2018/06/10(日) 11:32:11.73 ID:???.net (+28,+30,-29)
    >>67
    一時情報源だけ知りたいのなら自分で仕様を読めばいいじゃない
    http://tc39.github.io/ecma262/
    俺もあんたのためにきちんと仕様を読みながら噛み砕いて説明したんだからさ
    それをそんな言い方されちゃもうどうしようもないね
    70 : Name_Not - 2018/06/10(日) 11:39:33.94 ID:???.net (+27,+30,-105)
    >>67
    と言うかそこでいう実体化っていうのは、「コンテキストの実体化」だからね
    静的なコードという型からその時に使う生きた状態を生成する
    つまりインスタンス化するというニュアンスだから
    「実行コンテキスト」の項にあるでしょ?
    その「変数の実体化」っていうのは今話してる変数の状態や「有効化」の話とは軸がずれている
    静的な定義らから生きた変数インスタンスを作るというニュアンスの話
    そしてやっぱりちょっと妙な表現でもあるから今の仕様では使われてないよ
    71 : Name_Not - 2018/06/10(日) 12:19:29.70 ID:???.net (+29,+29,-101)
    >>68
    jQueryはライブラリであってフレームワークではありませんよ
    それを使っているプログラマが、それを呼び出すコードを書くのがライブラリ
    呼び出されるコードを書くのがフレームワークだと誰かが言っていました
    72 : Name_Not - 2018/06/10(日) 14:34:15.01 ID:???.net (+36,+30,-84)
    >>69
    > 俺もあんたのためにきちんと仕様を読みながら噛み砕いて説明したんだからさ
    尋ねてもいない事をあなたが勝手に誤解してお節介しただけだろう
    「ES2017ではこの文言はどう変わってるんだったか」とちょっとした疑問を口にしただけで、なぜそこまで絡んでくるのか
    しかも、なぜか「あなたの言葉」で返ってくる始末
    73 : 61 - 2018/06/10(日) 14:57:34.96 ID:Q6IKpI1g.net (-4,+30,+0)
    >>72も自分なので、念のため

    >>70
    > その「変数の実体化」っていうのは今話してる変数の状態や「有効化」の話とは軸がずれている

    俺からすれば、俺が書いた「独り言(>>61)」にあなたが勝手に絡んできただけなんだがな
    で、俺の趣旨は「宣言が巻き上げされるのではなく、宣言した結果、実体化される変数初期化処理が巻き上がる」
    変数宣言も関数宣言も巻き上げなんて発生していない
    関数スコープにある変数は、実行コンテキストに入る段階で「変数が実体化」されるだけだ

    「変数の実体化」がES3の用語である事は61で書いた通り
    で、俺は「ES2017ではこの文言はどう変わってるんだったか」と書いた
    詳しくは読んでいないが、おそらく関係するにはこの辺りで、俺が欲しいのは「ES2017の文言」
    http://www.ecma-international.org/ecma-262/8.0/#sec-executable-code-and-execution-contexts
    あなたはなぜか「あなたの言葉」で説明してきた
    そして、一時情報源を求めたら、なぜか ES2019http://tc39.github.io/ecma262/ を持ち出してきた

    仕様書は必要になれば読むが、今の時点でそこまで切羽詰まって読む必要性はない
    ただの独り言で誰かに答えてもらう事を期待していたわけでもない
    答えてくれるのは有り難いが、俺への返信は全てピントがずれているんだよ
    74 : Name_Not - 2018/06/10(日) 15:28:19.00 ID:SGg1sNhW.net (+29,+29,-48)
    まだやっとるのか巻き上げの話w
    そんな話時間の無駄のような気がするわ
    物理の真理でもあるまいし
    時間の無駄

    プログラミングなんて使えりゃ良いんだよ
    JSの仕様策定にかんよしてるのでないなら
    もっと別のこと勉強しろ
    75 : Name_Not - 2018/06/10(日) 15:53:33.14 ID:???.net (+27,+29,-67)
    仕様を読まなければ、無駄にクロスブラウザする事もあるから時間の無駄ではないけど、否定から前向きな結論は出ないだろうね
    独り言に絡まれたのは同情するわ
    76 : Name_Not - 2018/06/10(日) 16:05:06.46 ID:???.net (+31,+29,-11)
    というか、絡まれて火の粉を払っている方はともかく、絡んでいる方が望む終着点が読めん
    77 : Name_Not - 2018/06/10(日) 16:06:05.78 ID:???.net (-17,+30,-129)
    用語は根拠をもって統一すべきとは確かに思う

    そしてもし詳しいなら実務に影響あるところを書いてくれるとうれしいんだが
    宣言と初期化の違いが、実際のコーディングにどう影響するのか

    アローを含む変数格納の関数と巻き上げの話にしても
    その変数を介さずに中身を直接呼ぶ方法がないんだし
    「巻き上げなんて無かった」と考えてコード書いていけばそれで良い話にも思える
    78 : Name_Not - 2018/06/10(日) 16:13:57.91 ID:???.net (+43,+30,-60)
    >>76
    絡んでいる方は「一つの論題」に皆が参画している感覚なんじゃない?
    >>70の下記一文は「一人一人にスレッドがある」と考えていない節があって、そこで61と齟齬が発生している印象

    > その「変数の実体化」っていうのは今話してる変数の状態や「有効化」の話とは軸がずれている
    79 : Name_Not - 2018/06/10(日) 16:27:21.22 ID:???.net (+33,+29,-2)
    >>78
    なるほど、確かにそういう人は少なからずいるな…
    81 : Name_Not - 2018/06/10(日) 17:07:16.04 ID:???.net (+33,+29,-56)
    >実践的な部分では変数初期化のタイミングさえ覚えれば良い

    覚える必要あんのか?
    変数は「初期化するコード」より前のタイミングで使うな、なんならブロック先頭で網羅的に初期化しろ、で済む話では?
    82 : Name_Not - 2018/06/10(日) 21:03:36.41 ID:???.net (+33,+30,-200)
    >>73
    俺からすれば最初>>62は君に対する返答でもたしかにあったけど、
    君だけへの返答ではなくそれまでの流れを含めた視聴者に対するまとめを書いただけで
    別に君に変数の仕組みを解説したつもりはない

    そこに君が>>64で突っ込んできたから、それ「も」書いてると言った
    君は「自分の言葉」と思ったかもしれないが、仕様書のURLは、「あえて」記載しなかった
    ただ俺はきちんと必要ならすぐ調べられるように仕様上の用語は含ませた
    そこは確かに君を強く意識して行ったことだけど
    先にも言ったとおり全体としては君の質問へのど直球の回答ではないので
    君の期待通りの返信では無いのは悪しからず

    そして>>78の言う通り、俺が>>62などで書いた文章は以前の話を含めて書いているため
    その後のそれらに対するレスは、>>61だけではない流れ上で考えさせて貰っている
    君がやけに>>61に拘ってたことには失礼ながら今気づいたが、俺はそんなちっぽけなところなんて見続けていない
    83 : Name_Not - 2018/06/10(日) 21:14:46.91 ID:???.net (+32,+29,-184)
    >>73
    あとこれは完全に別件として問いたいことだが、
    なぜES2017に拘る?
    俺はES2017というのは最新仕様の言い換えだろうなと思ったから
    より適切な最新のドラフトを案内した

    今回の件でES2017に拘る理由がわからない
    ES3,5や、letやconstが入ってその辺りに変更が入った2015を見てみるというのはまだ分かる
    でもES2017なんて中途半端なところを拘って見たがる理由って一体全体なんだ?
    今を知りたいのなら最新のドラフトの方がいいぞ、多少読みやすくもされてるし
    84 : Name_Not - 2018/06/10(日) 22:36:17.46 ID:???.net (+27,+29,-32)
    一次情報云々の話ならそもそも実体化とかいう訳語が怪しいんだが
    誰かがそう決めたの?
    85 : Name_Not - 2018/06/11(月) 08:47:51.79 ID:???.net (+34,+29,-31)
    >>81
    それはポリシーの問題
    それでいい人もいれば、良くない人もいる
    const房と根本的に同じ問題
    86 : Name_Not - 2018/06/11(月) 09:52:34.11 ID:???.net (+26,+29,-61)
    >>85
    ちょっとおかしくね
    >>80を理解したところで初期化jsコードより先に使っちゃダメなのは確かで
    初期化jsコードより後に使うなら>>80は無意味では
    問題おきてデバッグする時にもまず役に立たない知識
    87 : Name_Not - 2018/06/11(月) 10:06:20.55 ID:???.net (+32,+29,-65)
    知っていると実益があるかどうか
    var,let,constはそれぞれ性質が違いしかも一方だけでコードを書くことができる
    選択の余地ひいては実益があり、実益をどう判断するかのポリシー問題

    変数の巻き上げやTDZや宣言・初期化とか用語・説明の話は実益あるのか
    88 : Name_Not - 2018/06/11(月) 11:12:20.90 ID:???.net (+27,+29,-4)
    俺様が満足していればどうでも良いんだよ
    89 : Name_Not - 2018/06/11(月) 12:13:44.14 ID:VhNszVLU.net (+15,+30,+0)
    90 : Name_Not - 2018/06/11(月) 12:40:18.54 ID:???.net (+28,+30,-65)
    実益があるのかって、単純に何事も内部構造をできるだけ分かって使う方がより良いと思うけど。
    クラッチやエンジンの仕組みを何も知らないで感覚だけで覚えるのと、理屈で理解してるのとでは違いがあると思う
    91 : Name_Not - 2018/06/11(月) 13:18:48.10 ID:???.net (+27,+29,-26)
    巻き上げ周りの知識があったら書き方がどう変わるのかってやつだな
    自動車の例でいえば、仕組みを知ってれば効率良い運転に繋がる可能性もあろう
    92 : Name_Not - 2018/06/11(月) 15:55:56.82 ID:???.net (+29,+26,-16)
    ジェネレーター関数って使い道ありますか・・?
    93 : Name_Not - 2018/06/11(月) 15:57:10.40 ID:???.net (+25,+27,-15)
    フレームワーク作者とかは使うんじゃない?
    96 : Name_Not - 2018/06/11(月) 22:32:05.39 ID:???.net (+32,+29,-68)
    そうでもないと思う
    ジェネレータの良いところは、継続状態と返り値が同時に抽象化されてることだから
    for awaitならそれを抽象化されたまま自然と扱えるが、
    whileを使った場合その抽象化システムを丁寧に自分で組み立てるか、
    その場その場で適応的に書くか、もしくは妥協しないといけない
    98 : Name_Not - 2018/06/12(火) 00:18:43.22 ID:???.net (+33,+29,-33)
    あ、ちなみに、ページ内の「ドラッグできます」というのを上の四角の領域にドロップすると要素が移動するというコードです。


    それから34行のcurrentTargetとtargetと違いもわからないです。
    targetに書き換えるとドラッグしても何も起こらなくなるのはなぜだろう
    99 : Name_Not - 2018/06/12(火) 01:33:58.85 ID:???.net (+22,+29,-35)
    んなURL持ってくんなよ
    しかも度々書籍ステマ・書籍アフィが出てるスレで「コンピュータ、パソコン書籍の出版社」が
    アクセス統計でも得たいのか
    100 : Name_Not - 2018/06/12(火) 06:26:12.22 ID:???.net (+27,+29,-35)
    本買うと特典でサンプルDLできるとかのあれか

    本買ってないやつがDLするわけにはいかないし
    本買ったやつならURLなんて出さなくてもわかるだろうし
    何より本書いたやつか出版社に聞け
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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