IT

JavaScript 확장 및 숫자 변환

lottoking 2020. 9. 15. 08:00
반응형

JavaScript 확장 및 숫자 변환


JavaScript에서 다음을 어떻게 어떻게 할 수 있습니까?

  1. "1", "2", "3"을 "123"에 연결

  2. "123"을 123으로 변환

  3. 123 + 100 = 223 더하기

  4. 223을 "223"으로 변환


parseInt()에 및 익숙해지기를 원합니다 .toString()

그리고 여러분의 툴킷에서 유용한 변수를보고 어떤 유형인지 알아내는 것입니다 .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>

단계 (1) "1", "2", "3"을 "123"으로 연결

 "1" + "2" + "3"

또는

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

가입 항목 사이에 표시된 구분 기호를 넣어, 여기에 배열의 항목을 병합합니다. 이 경우 "구분자"는 빈 곳 ( "")입니다.


단계 (2) "123"을 123으로 변환

 parseInt("123")

ECMAScript 5 이전에는 base 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()

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);

이러한 질문은 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 표현식에 문제가 생길 가능성이 적습니다.


다음과 같이 할 수 있습니다.

// 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"

문자열을 숫자로 변환하려면 0을 뺍니다. 숫자를 문자열로 변환하려면 ""(빈 문자열)를 추가합니다.

5 + 1은 6을 줄 것입니다

(5 + "") + 1은 "51"을 제공합니다.

( "5"-0) + 1은 6을 제공합니다.


parseInt는 scanf와 같은 기능이 잘못되었습니다.

parseInt ( "12 monkeys", 10)는 값이 '12'인 숫자입니다.
+ "12 원숭이"는 값이 'NaN'인 숫자입니다.
Number ( "12 monkeys")는 값이 'NaN'인 숫자입니다.


다음은 JavaScript가 어떻게 당신을 문제에 빠뜨릴 수 있는지에 대한 매우 짜증나는 예입니다.

을 사용 parseInt()하여 숫자로 변환 한 다음 결과에 다른 숫자를 추가하면 두 문자열이 연결됩니다.

그러나 아래 예제와 같이 괄호 안에 합계 표현식넣어 문제를 해결할 수 있습니다.

결과 : 연령 합계 : 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>


가장 간단한 것은 정수를 문자열로 만들고 싶을 때입니다.

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

이제 string 유형의 변수 b에서 정수를 얻을 수 있습니다.

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

위의 확인을 원하는 경우 숫자입니다. b에 정수가 포함되어 있는지 확실하지 않은 경우 다음을 사용할 수 있습니다.

if(isNaN(c*1)) {
  //NOt a number
}
else //number

단항 더하기 연산자사용하여 먼저 숫자로 변환하고 더하기 만하면됩니다. 아래 참조 :-

var a = "4";
var b = "7";
var sum = +a + +b; 

참고 URL : https://stackoverflow.com/questions/971039/javascript-string-and-number-conversion

반응형