>  기사  >  웹 프론트엔드  >  js 유형 변환 및 참조 유형(Boolean_Number_String)_javascript 기술에 대한 자세한 설명

js 유형 변환 및 참조 유형(Boolean_Number_String)_javascript 기술에 대한 자세한 설명

WBOY
WBOY원래의
2016-05-16 16:56:321146검색

1. 유형 변환

1. 문자열로 변환
ECMAScript의 부울 값, 숫자, 문자열의 기본 값에 대한 흥미로운 점은 이들이 의사 객체라는 것입니다. 방법.
예:

코드 복사 코드는 다음과 같습니다.

var sColor = "blue";
alert(sColor.length);//outputs "4"

간단히 말하면 세 가지 기본 기본 값인 부울 값, 숫자 및 문자열에는 toString() 메서드가 있습니다. . ECMAScript에 의해 정의된 모든 객체에는 의사 객체이든 실제 객체이든 toString() 메서드가 있습니다.

부울 toString() 메서드는 "true" 또는 "false"만 출력하며 결과는 변수 값에 따라 결정됩니다.

코드 복사 코드는 다음과 같습니다.

var bFound = false;
alert(bFound.toString());//outputs "false"

Number 유형 toString() 메소드는 기본 모드와 기본 모드의 두 가지 모드가 있습니다. 기본 모드를 사용하면 toString() 메소드는 해당 문자열만 사용하여 숫자 값을 출력합니다. 정수, 부동 소수점 숫자 또는 과학적 표기법입니다).
코드 복사 코드는 다음과 같습니다.

var iNum1 = 10;
var fNum2 = 10.0 ;
alert(iNum1.toString()); //"10"을 출력
alert(fNum2.toString()) //"10"을 출력

숫자 유형 toString() 메소드의 기본 모드는 숫자를 다른 진수(bases)로 출력할 수 있습니다.
코드 복사 코드는 다음과 같습니다.

var iNum = 10;
alert (iNum.toString(2)); //"1010"을 출력
alert(iNum.toString(8)); //"12"를 출력
alert(iNum.toString(16)); "A"

2. 숫자로 변환
ECMAScript는 숫자가 아닌 기본 값을 숫자로 변환하는 두 가지 메서드, 즉 parseInt() 및 parseFloat()를 제공합니다. .
참고: 이러한 메서드는 문자열 유형(숫자 제외)에서 호출될 때만 다른 유형에 대해 NaN이 올바르게 반환됩니다.

예:

코드 복사 코드는 다음과 같습니다.

var iNum1 = parseInt("1234blue ");//1234를 반환합니다
var iNum2 =parseInt("oxA"); //10을 반환합니다
var iNum3 =parseInt("22.5")//22를 반환합니다
var iNum4 =parseInt(" blue"); //returns NaN

parseInt() 메서드에는 2진수, 8진수, 16진수 또는 기타 기본 문자열을 10진수 정수로 변환할 수 있는 기본 모드도 있습니다. 두 번째 매개변수는 구문 분석할 베이스를 지정합니다.
코드 복사 코드는 다음과 같습니다.

var iNum1 =parseInt("AF", 16); // 175를 반환합니다
var iNum2 = parsInt("10",2); // 2를 반환합니다
var iNum3 =parseInt("10",8) // 8을 반환합니다
var iNum4 =parseInt( "10",10); //returns 10

참고: 10진수 앞에 0이 포함되어 있으면 밑수 10을 사용하는 것이 가장 좋습니다. 그렇지 않으면 얻은 값은 8진수가 됩니다.
코드 복사 코드는 다음과 같습니다.

var iNum1 =parseInt("010") ; // 8을 반환합니다
var iNum2 =parseInt("010",8); //8을 반환합니다
var iNum3 = parsInt("010",10); //10을 반환합니다

parseFloat () 메서드는 parseInt() 메서드와 유사합니다. 0 위치부터 시작하여 유효하지 않은 첫 번째 문자가 발견될 때까지 각 문자를 살펴본 다음 문자 앞의 문자열을 숫자로 변환합니다. 이 방법의 경우 첫 번째 소수점은 유효한 문자입니다. 소수점 2자리를 사용하는 경우 소수점 두 번째 자리는 유효하지 않은 것으로 간주됩니다. 이 방법을 사용할 때의 또 다른 차이점은 문자열이 소수 형식의 부동 소수점 숫자를 나타내야 한다는 것입니다.
코드 복사 코드는 다음과 같습니다.

var fNum1 =parseFloat("1234blue"); //1234.0을 반환합니다.
var fNum2 =parseFloat("0xA"); //NaN을 반환합니다.
var fNum3 =parseFloat("22.5"); //22.5를 반환
var fNum4 =parseFloat("22.34.5");//22.34를 반환
var fNum5 =parseFloat("0908");//NaN을 반환
var fNum6 =parseFloat("blue ");//returns NaN

3. 강제 유형 변환
ECMAScript에서 사용할 수 있는 강제 유형 변환의 세 가지 유형은 다음과 같습니다.

(1).Boolean(value)
주어진 값을 Boolean 타입으로 변환합니다.
Boolean() 함수는 변환할 값이 문자열, 0이 아닌 숫자 또는 문자가 하나 이상 포함된 객체인 경우 true를 반환합니다. 값이 빈 문자열, 숫자 0, 정의되지 않음 또는 null인 경우 false를 반환합니다.
예:

코드 복사 코드는 다음과 같습니다.

var b1 = Boolean("" ); // false;
var b2 = Boolean("hi");//true
var b3 = Boolean(100);//true
var b4 = Boolean(null) ;//false
var b5 = Boolean(0);//false
var b6 = Boolean(new Object());//true

(2).Number( 값)
주어진 값을 숫자(정수 또는 부동 소수점 숫자일 수 있음)로 변환합니다.
parseInt() 및 parseFloat() 메서드는 첫 번째 유효하지 않은 문자 앞의 문자열만 변환하므로 "4.5.6"이 "4.5"로 변환된다는 점을 기억하세요. Number()를 사용하여 캐스팅하면 "4.5.6"은 전체 문자열 값을 숫자로 변환할 수 없기 때문에 NaN을 반환합니다. 문자열을 완전히 변환할 수 있는 경우 Number()는 parseInt() 메서드를 호출할지, 아니면 parFloat() 메서드를 호출할지 결정합니다.
예:
코드 복사 코드는 다음과 같습니다.

숫자(false );// 0
숫자(true);//1
숫자(정의되지 않음);//NaN
숫자(null);//0
숫자("5.5");// 5.5
숫자("56");//56
숫자("5.6.7");//NaN
숫자(new Object());//NaN
숫자(100) ;//100

(3).String(value)
주어진 값을 문자열로 변환합니다.
toString() 메서드 호출과의 유일한 차이점은 null 또는 정의되지 않은 값을 캐스팅하면 오류가 발생하지 않고 문자열이 생성된다는 점입니다.
코드 복사 코드는 다음과 같습니다.

var s1 = String(null);//"null"
var oNull = null;
var s2 = oNull. ();//오류 발생

2. 참조 유형
참조 유형을 일반적으로 클래스라고 합니다. 참조 값이 발견되면 개체가 처리됩니다. ECMAScript는 다른 프로그래밍 언어의 클래스와 논리적으로 동일한 "객체 정의"를 정의합니다.

1.Object 클래스
ECMAScript의 모든 클래스는 이 클래스에서 상속되며 Object 클래스의 모든 속성과 메서드는 다른 클래스에 나타납니다(재정의됨).

객체 클래스 속성:

(1).Constructor----객체를 생성하는 함수에 대한 참조(포인터)입니다. Object 클래스의 경우 이 포인터는 원래 object() 함수를 가리킵니다.

(2).Prototype----객체의 객체 프로토타입에 대한 참조입니다. 모든 클래스에 대해 기본적으로 Object 개체의 인스턴스를 반환합니다.

객체 클래스 방법:

(1).HasOwnProperty(property)----객체에 특정 속성이 있는지 확인합니다. 속성은 문자열로 지정되어야 합니다(예: o.hasOwnProperty("name")).

(2).IsPrototypeOf(object)----객체가 다른 객체의 프로토타입인지 확인합니다.

(3).PropertyIsEnumerable(property)----for..in 문을 사용하여 주어진 속성을 열거할 수 있는지 확인합니다.

(4).ToString()----객체의 원래 문자열 표현을 반환합니다. ECMAScript 구현마다 값이 다릅니다.

(5).ValueOf()----객체에 가장 적합한 원래 값을 반환합니다. 많은 클래스의 경우 이 메서드에서 반환되는 값은 toString()의 반환 값과 동일합니다.

2. Boolean 클래스
ECMAScript에서는 Boolean 객체를 거의 사용하지 않으며, 사용해도 이해하기 쉽지 않습니다.
예:

코드 복사 코드는 다음과 같습니다.

var oFalseObject = new Boolean(false );
var bResult = oFalseObject && true;//outputs true;

이유: 부울 표현식에서는 모든 객체가 자동으로 true로 변환됩니다.

3.Number 클래스
Number.MAX_VALUE 및 기타 특수 값은 Number 클래스의 정적 속성입니다. 숫자 객체의 원래 Number 값을 얻으려면 valueOf() 메소드를 사용하면 됩니다.
var iNumber = oNumberObject.valueOf()
Object 클래스에서 상속된 표준 메소드 외에 Number 클래스도 있습니다. 숫자 값을 처리하는 몇 가지 다른 특수 방법이 있습니다.

toFixed() 메서드:
는 지정된 소수 자릿수를 사용하여 숫자를 문자열로 표현한 값을 반환합니다. 이 메서드는 소수점 이하 0~20자리의 숫자를 나타낼 수 있습니다. 이 범위를 벗어나는 값은 오류가 발생합니다.
예:

코드 복사 코드는 다음과 같습니다.

var oNumberObject = new Number(99 );
aler(oNumberObject.toFixed(2));//outputs "99.00"

toExponential() 메서드:
과학 표기법으로 표현된 숫자를 반환합니다. 문자열 형태. 이 메서드는 출력할 소수 자릿수를 지정하는 매개 변수도 사용합니다. 예:
코드 복사 코드는 다음과 같습니다.

var oNumberObj = new Number( 99);
alert(oNumberObj.toExponential(1));//outputs "9.9e 1"

toPrecision() 메서드:
다음에 따라 미리 결정된 숫자 형식을 반환합니다. 가장 의미 있는 형태 또는 지수 형태. 여기에는 숫자를 나타내는 데 사용되는 총 자릿수(지수 제외)인 하나의 인수가 있습니다.
코드 복사 코드는 다음과 같습니다.

var oNumberObj = new Number(99);
Alert(oNumberObj.toPrecision(1));//outputs "1e 2" ==100

toPrecision() 메소드가 숫자에 가깝게 반올림하는 것을 볼 수 있습니다. 가능한 한 현실에 가치의 수.
예:
코드 복사 코드는 다음과 같습니다.

var oNumberObj = new Number(99 );
alert(oNumberObj.toPrecision(2));// "99" 출력
alert(oNumberObj.toPrecision(3));// "99.0" 출력

toFixed(), toExponential() 및 toPrecision() 메서드는 모두 반올림 작업을 수행하여 올바른 소수 자릿수로 숫자를 올바르게 표현합니다.

toLocaleString() 메소드:
은 페이지에 형식으로 표시될 수 있습니다. 예를 들어 5210.50은 5,210.50으로 표시되지만 해당 값을 사용하는 경우에는 parseFloat($("N_YJJE").value.replace( //, /g, "")); 쉼표를 바꾸고 해당 값을 가져옵니다.

참고: 부울 객체와 유사하게 숫자 객체도 중요하지만 잠재적인 문제를 피하기 위해 아껴서 사용해야 합니다. 가능하면 숫자의 원시 표현을 사용하십시오.

4. 문자열 클래스
String 객체의 valueOf() 메서드와 toString() 메서드는 String 유형의 원래 값을 반환합니다:

코드 복사 코드는 다음과 같습니다.

alert(oStringObj.valueOf() == oStringObj.toString());//outputs "true "

문자열 클래스에는 문자열의 문자 수인 속성 길이가 있습니다.
코드 복사 코드는 다음과 같습니다.

var oStringObj = new String("hello world");
alert(oStringObj.length);outputs "11"

참고: 문자열에 더블바이트 문자가 포함되어 있어도 각 문자는 한 문자로만 계산됩니다.

charAt() 메서드:
는 지정된 위치의 문자가 포함된 문자열을 반환합니다.

코드 복사 코드

var oStringObj = new String("hello world");
alert(oStringObj.charAt(1));outputs "e"

charCodeAt() 메서드:
는 지정된 위치의 문자 코드가 포함된 문자열을 반환합니다.
코드 복사 코드는 다음과 같습니다. 다음과 같습니다:

var oStringObj = new String("hello world");
alert(oStringObj.charCodeAt(1));outputs "101"

concat() 메서드:
은 하나 이상의 문자열을 String 개체의 원래 값에 연결하는 데 사용됩니다. 원래 String 객체는 변경되지 않고 그대로 유지됩니다.
코드 복사 코드는 다음과 같습니다.

var oStringObj = new String("hello " );
var sResult = oStringObj.concat("world");//oStringObj "world"; 더 일반적임
alert(sResult);//"hello world"
alert(oStringObj);/ /outputs " hello"

indexOf() 및 lastIndexOf() 메서드는 다른 문자열에서 지정된 하위 문자열의 위치를 ​​반환합니다(또는 하위 문자열을 찾을 수 없는 경우 -1). 이 두 메서드의 차이점은 indexOf()는 문자열의 시작(위치 0)부터 하위 문자열을 검색하기 시작하는 반면, lastIndexOf()는 문자열의 끝부터 하위 문자열을 검색하기 시작한다는 것입니다.

localeCompare()는 문자열을 비교합니다(알파벳순으로 비교하며 나중의 것이 더 큼). 이 메소드에는 비교할 문자열이라는 하나의 매개변수가 있으며 다음 세 가지 값 중 하나를 반환합니다.
1. String 객체가 매개변수의 문자열 앞에 알파벳순으로 정렬된 경우 음수가 반환됩니다(가장 일반적인 값은 다음과 같습니다). -1이지만 실제 반환은 구현에 따라 결정됩니다.)
2. String 객체가 매개변수의 문자열과 같으면 0을 반환합니다.
3. String 객체가 매개변수의 문자열 뒤에 알파벳순으로 정렬된 경우 양수를 반환합니다. (가장 일반적인 것은 1이지만 실제 반환은 구현에 따라 결정됩니다.)

slice() 및 substring() 메서드:
이 두 메서드는 처리할 문자열의 하위 문자열을 반환하며 둘 다 하나 또는 두 개의 매개 변수를 허용합니다. 첫 번째 매개변수는 구하려는 부분 문자열의 시작 위치이고, 두 번째 매개변수는 구하려는 부분 문자열의 끝 이전 위치입니다. (끝 위치의 문자는 반환 값에 포함되지 않습니다.) 두 번째 인수가 생략되면 종료 비트는 기본적으로 문자열 길이로 설정됩니다. 이들 메소드 중 어느 것도 String 객체 자체의 값을 변경하지 않습니다.

코드 복사 코드는 다음과 같습니다.

var oStringObj = new String("hello world ");
alert(oStringObj.slice(3));//"lo world" 출력
alert(oStringObj.slice(3,7));//"low world" 출력

참고: 음수 매개변수의 경우, Slice() 메소드는 문자열 길이를 매개변수에 추가하고 substring() 메소드는 이를 0으로 처리합니다(즉, 무시됩니다).
코드 복사 코드는 다음과 같습니다.

var oStringObj = new String("hello world ");
alert(oStringObj.slice(-3));//출력 "rld"는 역순을 취하는 것과 동일합니다.
alert(oStringObj.substring(-3));//출력 "hello world"
alert (oStringObj.slice(3,-4));//"low w" 출력
alert(oStringObj.substring(3,-4));//"hel" 하위 문자열() 출력은 항상 대체됩니다. 숫자가 작을수록 시작 비트 역할을 하고, 숫자가 클수록 끝 비트 역할을 합니다.

toLowerCase(), toLocalLowerCase(), toUpperCase() 및 toLocaleUpperCase():
처음 두 메서드는 문자열을 모두 소문자로 변환하고, 후자 두 메서드는 문자열을 변환하는 데 사용됩니다. 대문자로 작성하세요. toLocalLowerCase() 및 toLocaleUpperCase() 메서드는 특정 지역을 기반으로 구현됩니다.

기억하세요: String 클래스의 모든 속성과 메서드는 의사 객체이기 때문에 String 기본 값에 적용될 수 있습니다.

5.instanceof 연산자
typeof 연산자를 사용하여 참조 유형에 관계없이 "객체"를 반환하는 데 문제가 있습니다. 인스턴스 오브 메소드를 사용하려면 개발자가 객체가 특정 유형인지 명시적으로 확인해야 합니다. 예:

코드 복사 코드는 다음과 같습니다.

var oStrObj = new String( "hello world" );
alert(oStrObj instanceof String);//"true" 출력
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.