2016-10-29 13 views
2

私はw3schools.comをオフに働いていると私は一般的に、コードを読んで、コードのどの行の意味を理解しようとはどのような、私はこのコードに少し混乱していますことを行います。JavaScriptの割り当て説明

function myFunction() { 
var message, x; 
message = document.getElementById("message"); 
message.innerHTML = ""; 
x = document.getElementById("demo").value; 
try { 
    if(x == "") throw "empty"; 
    if(isNaN(x)) throw "not a number"; 
    x = Number(x); 
    if(x < 5) throw "too low"; 
    if(x > 10) throw "too high"; 
} 
catch(err) { 
    message.innerHTML = "Input is " + err; 
} 
} 

セクション:

var message, x; 
message = document.getElementById("message"); 
message.innerHTML = ""; 
x = document.getElementById("demo").value; 

最初の行は変数messageとxの両方を宣言していますか? 2行目は意味がありますが、3行目では未定義と宣言していますか?そして、4行目は正確に何をしていますか?

+1

@AndrewLi「メッセージ」を空の文字列に初期化していません。 2行目では、IDが "message"のHTML要素が 'message'変数に割り当てられています。 3行目では、前述の要素のHTML値*が空の文字列に設定されています。 –

+2

_ "とにかく、それはまだ立っています - ' message'は空の文字列に再割り当てされます "_ - いいえ、そうではありません。 'message'が参照するHTML要素の' innerHTML'プロパティは、空の文字列に設定され、それによってすべてのコンテンツの要素がクリアされます。 – CBroe

+1

@CBroe Ugh。わたしは目が見えない。はい、「innerHTML」プロパティは空の文字列に割り当てられます。 – Li357

答えて

0

最初の行は、メッセージ変数とx変数の両方を宣言しています。私はあなたが定義されていないと宣言することは何を意味するのか分かりませんが、3行目はメッセージ要素の内容(内部HTML)を空の文字列に設定します。最後の行は、xにデモ要素のvalue属性を設定します。 valueプロパティには、デフォルト値、またはユーザーがテキストフィールドに入力した値(またはスクリプトによって設定された値)が含まれます。

1

1行目:あなたは、単一のvarステートメントの後に、カンマで区切られた複数の変数、(値を割り当てるおよび必要に応じて)宣言することができます。

3行目:オブジェクト 'message'の 'property' innerHTMLを空の文字列に設定しています。

注:2行目に返されたオブジェクト 'message'は、特定のタイプのオブジェクトであるため、すでにタイプがstringのinnerHTML(id = "message"の要素が存在する場合) HTMLElement)がありますが、一般的にオブジェクトの未定義のプロパティには任意の値を割り当て、そのプロパティを作成します。例えば:

var obj = {} 
alert (typeof obj.newproperty) // undefined 
obj.newproperty = "hello" 
alert (typeof obj.newproperty) // string 

ライン4:idは= "デモ"

x = document.getElementById("demo").value 

は、の値を、変数Xをセットして

document.getElementById("demo") 

要素への参照でありますその要素のプロパティ 'value'(存在する場合はそれが存在する場合、または存在しない場合は未定義)

注:id = "demo" eの要素はありませんその行はnullオブジェクトのプロパティ(値)を参照しようとするとエラーをスローします。

-1
function myFunction() { 
    var message, x; // declarations separated by a comma - end declarations with ; 
    message = document.getElementById("message"); // assignment of an Element (which is an Object) to var message 
    message.innerHTML = ""; // assignment to the Element's innerHTML property which writes inside the HTML Element itself - won't work on inputs (use .value) 
    x = document.getElementById("demo").value; // assign the demo input value to var x 
    try { // try things and send to catch if throw occurs 
    if(x == "") throw "empty"; // == is a truthy test use === for more accuracy 
    if(isNaN(x)) throw "not a number"; // not numeric-ish - isNaN() works on strings too 
    x = Number(x); // cast var x to a number - could also be done like x = +x; 
    if(x < 5) throw "too low"; 
    if(x > 10) throw "too high"; 
    } 
    catch(err) { // err argument receives throw if there is an error 
    message.innerHTML = "Input is " + err; // assign 
    } 
}