2010-02-12 3 views
3

자바 스크립트에서 문자열의 변수를 명시 적으로 캐스트해야하는 시나리오가 있습니까?어떤 상황에서 JavaScript의 문자열에 변수를 명시 적으로 캐스트해야합니까?

다음 예제에서는 필요하지 않습니다.

var n=1; 
var s = "Hello" + n; 
var s = "Hello"+String(n); //not necessary 

숫자 값을 사용했습니다. 이것은 수치에 대해서만 적용 할 필요는 없지만 위의 내용을 참고하십시오.

답변

5

예, 당신이 원하는 경우에 "11"대신 2

var n = 1;  
var s = n + n; 

가 될 것인가 s === 2

2

잘 경우 옆에 두 숫자의 측면을 표시하도록 싶어 ...

var a=5, b = 10; 

alert(a+b); // yields 15 
alert(String(a) + String(b)); //yields '510' 

하지만이 같은 것을하고 싶다면 어떻게해야할지 모르겠다.

+0

이 작업은 다음과 같이보다 간결하게 할 수 있습니다 :'alert (a + ""+ b)' – cloudfeet

1

나는 그것이 필요하다고 말할 것이다. 이 상황에서 sary :

var n = 20; 
var m = 10; 
var s = String(n) + String(m); // "2010" String 
1

작업하는 개체의 유형에 따라 다릅니다. 기본 객체에는 이미 문자열로 변환하는 유용한 toString 메서드가 있습니다. 그러나 사용자 정의 객체는 그렇지 않습니다. 그들은 Object.prototype.toString에서 메서드를 상속합니다.

function Human(name) { 
    this.name = name.toString(); 
    this.toString = function() { 
     return this.name; 
    }; 
    return this; 
} 
var alice = new Human("Alice"); 
alert("Hi, I’m " + alice + "."); 
1
보통

당신이에 문자열 방법을 사용하고자 할 때 변수가 문자열로 변환 : 당신은 문자열로 변환 할 때 유용 문자열을 반환해야합니다 사용자 정의 개체가있을 때마다

그래서하는 toString 방법을 정의 변하기 쉬운. 가장 유용한 경우는 함수 내에서 문자열 메서드를 사용해야하고 사용자가 함수에 전달하는 변수의 유형을 모르는 경우라고 생각합니다. 예를 들어, 당신은 변수의 문자 수를 계산하려면 : 사용자가 길이 속성이 정의되지 인수로 숫자를 삽입하기 때문에, 당신은 문자열과 함께 작업 할 수있는이 기능으로

function length(s) 
{ 
    return s.length; 
} 

숫자 객체 때문에 해당 속성이 없으므로 변수를 캐스팅해야합니다.

function length(s) 
{ 
    s=s+""; 
    return s.length; 
} 

그리고 이번에는이 속성을 사용해야합니다.

관련 문제