質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1251閲覧

createDocumentFragment生成して変数代入する際に疑問

Kimsehwa

総合スコア312

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/03/05 21:25

以下のコードを分析中、疑問点があり質問させていただきます。

function getSelectionHtml() { var sel, range, node; if (window.getSelection) { sel = window.getSelection(); if (sel.getRangeAt && sel.rangeCount) { range = window.getSelection().getRangeAt(0); var html = '<span style="font-weight:bold;">' + range + '</span>' range.deleteContents(); var el = document.createElement("div"); el.innerHTML = html; var frag = document.createDocumentFragment(), node, lastNode; while ( (node = el.firstChild) ) { lastNode = frag.appendChild(node); } range.insertNode(frag); } } else if (document.selection && document.selection.createRange) { range = document.selection.createRange(); range.collapse(false); range.pasteHTML(html); } }

詳細のコードは下記を参考:
https://jsfiddle.net/negabaro/yb0vu7tg/

var frag = document.createDocumentFragment(), node, lastNode;

fragという変数に値を導入する際にnodeとlastNodeをコンマ区切りで入れておくこの書き方がよくわかりませんでした。
このような書き方の参考できるキーワードやリンクあれば教えていただけますか?

node,lastNodeは現時点で宣言されてないのに
変数代入に含める原理がよくわかりません。

var frag = document.createDocumentFragment();

にすると想定した機能しなくなるため、以下のコードで使われる気がします。

while ( (node = el.firstChild) ) { lastNode = frag.appendChild(node); } range.insertNode(frag);

何か参考できる情報をご教示いただければ助かります

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

その行では、fragとnodeとlastNodeを宣言しつつ、fragにだけ初期値を与えています。

いくつか例を挙げると、

javascript

1var a = 0; 2var b = 1; 3var c = 2;

は、

javascript

1var a = 0, b = 1, c = 2;

のようにも書けます。

javascript

1var a = 0; 2var b; 3var c;

は、

javascript

1var a = 0, b, c;

のようにも書けます。


したがって、

javascript

1var frag = document.createDocumentFragment(), node, lastNode;

は、

javascript

1var frag; 2var node; 3var lastNode; 4frag = document.createDocumentFragment();

または

javascript

1var frag = document.createDocumentFragment(); 2var node; 3var lastNode;

または

javascript

1var frag, node, lastNode; 2frag = document.createDocumentFragment();

と同じです。

投稿2018/03/05 22:32

編集2018/03/05 23:35
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2018/03/06 08:31

ご丁寧な回答ありがとうございました。ただの変数定義のことですね、勉強になりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問