JavaScript에서 다음을 어떻게 할 수 있습니까?
"1", "2", "3"을 "123"에 연결
"123"을 123으로 변환
123 + 100 = 223 더하기
223을 "223"으로 변환
JavaScript에서 다음을 어떻게 할 수 있습니까?
"1", "2", "3"을 "123"에 연결
"123"을 123으로 변환
123 + 100 = 223 더하기
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" + "2" + "3"
또는
["1", "2", "3"].join("")
은 가입 항목 사이에 지정된 구분 기호를 넣어, 문자열로 방법을 병합을 배열의 항목을. 이 경우 "구분자"는 빈 문자열 ( ""
)입니다.
parseInt("123")
ECMAScript 5 이전에는 base 10에 대한 기수를 전달해야했습니다.parseInt("123", 10)
123 + 100
(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
은 8 진수 (밑수 8)로 표시됩니다.
0
하고 포함 8
또는 9
0 예의 복귀로 이어지는, 실패, parseInt('034') = 28
그리고 parseInt('09') = 0
.
다음은 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