92

JavaScriptで次のことを行うにはどうすればよいですか?

  1. 「1」、「2」、「3」を「123」に連結します

  2. 「123」を123に変換

  3. 123 + 100=223を追加

  4. 223を「223」に変換する

4

10 に答える 10

121

とに精通しparseInt()たいtoString()

また、ツールキットで役立つのは、変数を調べて、それがどのタイプであるかを確認することです。<a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/typeof" rel = "noreferrer"> typeof

<script type="text/javascript">
    /**
     * print out the value and the type of the variable passed in
     */

    function printWithType(val) {
        document.write('<pre>');
        document.write(val);
        document.write(' ');
        document.writeln(typeof val);
        document.write('</pre>');
    }

    var a = "1", b = "2", c = "3", result;

    // Step (1) Concatenate "1", "2", "3" into "123"
    // - concatenation operator is just "+", as long
    //   as all the items are strings, this works
    result = a + b + c;
    printWithType(result); //123 string

    // - If they were not strings you could do
    result = a.toString() + b.toString() + c.toString();
    printWithType(result); // 123 string

    // Step (2) Convert "123" into 123
    result = parseInt(result,10);
    printWithType(result); // 123 number

    // Step (3) Add 123 + 100 = 223
    result = result + 100;
    printWithType(result); // 223 number

    // Step (4) Convert 223 into "223"
    result = result.toString(); //
    printWithType(result); // 223 string

    // If you concatenate a number with a 
    // blank string, you get a string    
    result = result + "";
    printWithType(result); //223 string
</script>
于 2009-06-09T16:22:39.260 に答える
54

手順(1)「1」、「2」、「3」を「123」に連結します

 "1" + "2" + "3"

また

 ["1", "2", "3"].join("")

joinメソッドは、配列の項目を文字列に連結し、指定された区切り文字を項目の間に配置します。この場合、「区切り文字」は空の文字列("")です。


手順(2)「123」を123に変換する

 parseInt("123")

ECMAScript 5より前は、基数10の基数を渡す必要がありました。parseInt("123", 10)


ステップ(3)123 + 100=223を追加します

 123 + 100


ステップ(4)223を「223」に変換します

 (223).toString() 


すべてをまとめる

 (parseInt("1" + "2" + "3") + 100).toString()

また

 (parseInt(["1", "2", "3"].join("")) + 100).toString()
于 2009-06-09T16:11:48.413 に答える
27
r = ("1"+"2"+"3")           // step1 | build string ==> "123"
r = +r                      // step2 | to number    ==> 123
r = r+100                   // step3 | +100         ==> 223
r = ""+r                    // step4 | to string    ==> "223"

//in one line
r = ""+(+("1"+"2"+"3")+100);
于 2011-09-28T09:49:45.597 に答える
15

これらの質問は、JavaScriptのタイピングシステムが原因で常に発生します。人々は、数字の文字列を取得しているときに、数字を取得していると考えています。

JavaScriptが文字列と数値を処理する方法を利用していることがわかるかもしれません。個人的には、JavaScriptが文字列の連結に+以外の記号を使用していればよかったのにと思います。

手順(1)「1」、「2」、「3」を「123」に連結します

result = "1" + "2" + "3";

手順(2)「123」を123に変換する

result = +"123";

ステップ(3)123 + 100=223を追加します

result = 123 + 100;

手順(4)223を「223」に変換する

result = "" + 223;

これらが機能する理由を知っていれば、JavaScript式で問題が発生する可能性は低くなります。

于 2009-06-09T16:25:46.000 に答える
11

あなたはこのようにそれを行うことができます:

// step 1 
var one = "1" + "2" + "3"; // string value "123"

// step 2
var two = parseInt(one); // integer value 123

// step 3
var three = 123 + 100; // integer value 223

// step 4
var four = three.toString(); // string value "223"
于 2009-06-09T16:11:37.230 に答える
9

文字列を数値に変換するには、0を減算します。数値を文字列に変換するには、 ""(空の文字列)を追加します。

5+1はあなたに6を与えます

(5 + "")+1はあなたに"51"を与えます

("5"-0)+1はあなたに6を与えます

于 2009-09-04T05:56:02.110 に答える
6

parseIntはscanfのように誤動作しています:

parseInt( "12サル"、10)は、値が'12'の数値です。
+「12匹のサル」は値が「NaN」の数値です
Number( "12サル")は、値が'NaN'の数値です。

于 2009-10-23T18:11:48.277 に答える
1

以下は、JavaScriptがどのように問題を引き起こす可能性があるかについての非常に苛立たしい例です。

parseInt()を使用して数値に変換してから、結果に別の数値を追加 しようとすると、2つの文字列が連結されます。

ただし、次の例に示すように、sum式を括弧で囲むことで問題を解決できます。

結果:年齢の合計は98です。彼らの年齢の合計はそうではありません:5048

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
function Person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}

var myFather = new Person("John", "Doe", "50", "blue");
var myMother = new Person("Sally", "Rally", 48, "green");

document.getElementById("demo").innerHTML = "Their age sum is: "+
 (parseInt(myFather.age)+myMother.age)+"; Their age sum is NOT: " +
 parseInt(myFather.age)+myMother.age; 
</script>

</body>
</html>

于 2016-10-03T15:54:15.387 に答える
0

最も簡単なのは、整数を文字列にしたい場合です。

var a,b, c;
a = 1;
b = a.toString(); // This will give you string

これで、文字列型の変数bから、整数を取得できます。

c = b *1; //This will give you integer value of number :-)

上記を確認したい場合は番号です。bに整数が含まれているかどうかわからない場合は、次を使用できます。

if(isNaN(c*1)) {
  //NOt a number
}
else //number
于 2014-04-21T11:37:06.560 に答える
0

これを行うには、単項プラス演算子を使用して、最初にそれらを数値に変換し、単純に加算します。下記参照:-

var a = "4";
var b = "7";
var sum = +a + +b; 
于 2019-03-11T07:59:52.563 に答える