Javascript 변수는 느슨한 유형이므로 Javascript가 지원하는 모든 데이터 유형을 저장할 수 있으며 변수 유형은 런타임 시 동적으로 변경될 수 있습니다. 예를 참조하십시오.
var n = 10;
n = "hello CSSer!";
n = {};
위 예에서 n 변수는 먼저 선언하고 해당 값을 10(정수 유형)으로 초기화한 다음 "hello CSSer!"라는 문자열을 n에 할당한 다음 객체를 할당합니다. 마지막으로 n의 유형이 객체 유형입니다. 변수 n의 타입이 동적임을 알 수 있는데, 실제 프로그래밍에서는 변수의 타입을 자주 변경하지 않는 것이 좋습니다. 디버깅에 좋지 않기 때문입니다.
JavaScript 데이터 유형
JavaScript에는 5가지 데이터 유형이 있습니다:
string
number
boolean
object
function
3가지 객체 유형:
Object
날짜
배열
어떤 값도 포함하지 않는 2가지 데이터 유형:
null
undefine
typeof 연산자
typeof 연산자를 사용하여 JavaScript 변수의 데이터 유형을 볼 수 있습니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = typeof "tom" + "<br>" + typeof 3.14 + "<br>" + typeof NaN + "<br>" + typeof false + "<br>" + typeof [1,2,3,4] + "<br>" + typeof {name:'john', age:34} + "<br>" + typeof new Date() + "<br>" + typeof function () {} + "<br>" + typeof myCar + "<br>" + typeof null; </script> </body> </html>
참고:
NaN의 데이터 유형은 숫자입니다
배열(Array)의 데이터 유형은 object
날짜(Date)의 데이터 유형은 object
null 데이터 유형은 object
정의되지 않음 변수 데이터 유형이 정의되지 않았습니다
constructor 속성
constructor 속성은 모든 JavaScript 변수의 생성자를 반환합니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = "john".constructor + "<br>" + (3.14).constructor + "<br>" + false.constructor + "<br>" + [1,2,3,4].constructor + "<br>" + {name:'john', age:34}.constructor + "<br>" + new Date().constructor + "<br>" + function () {}.constructor; </script> </body> </html>
명시적 변환
수동으로 유형 변환을 수행하여 Javascript는 다음과 같은 변환 기능을 제공합니다. )
문자열 유형으로 변환: toString(radix), String(mix)Boolean 유형으로 변환: Boolean(mix)
1. Number(mix) 함수는 모든 유형의 매개변수 혼합을 숫자 유형으로 변환할 수 있습니다
규칙은 다음과 같습니다.
부울 값인 경우 true와 false는 각각 1과 0으로 변환됩니다
숫자 값인 경우 자체적으로 반환됩니다.
null이면 0을 반환합니다.
정의되지 않으면 NaN을 반환합니다.
문자열인 경우 다음 규칙을 따르세요.
1) 문자열에 숫자만 포함된 경우 10진수로 변환합니다(선행 0 무시).
2) 문자열에 유효한 부동 소수점 형식이 포함된 경우 변환합니다. 부동 소수점 값으로 변환 (선행 0은 무시)
3) 빈 문자열이면 0으로 변환
4) 문자열에 위와 다른 형식이 포함되어 있으면 NaN으로 변환
만약 객체인 경우 객체의 valueOf() 메서드를 호출한 다음 이전 규칙에 따라 반환된 값을 변환합니다. 변환 결과가 NaN인 경우 객체의 toString() 메서드를 호출하고 반환된 문자열 값을 이전 규칙에 따라 다시 변환합니다.
Number("3.14") // 3.14를 반환
Number(" ") // 0을 반환
Number("") // 0을 반환
Number("99 88") // NaN
을 반환
2.parseInt(string, radix) 함수는 문자열을 정수형 값으로 변환합니다. 또한 특정 규칙이 있습니다:
첫 번째 비어 있지 않은 문자를 찾을 때까지 문자열 앞의 공백을 무시합니다.
첫 번째 문자가 숫자 기호나 음수 기호가 아닌 경우 NaN을 반환합니다
If 첫 번째 문자가 숫자인 경우 문자열 구문 분석이 완료되거나 숫자가 아닌 기호가 나타날 때까지 구문 분석을 계속합니다.
이전 구문 분석 결과가 0으로 시작하면 0x로 시작하면 8진수로 구문 분석됩니다. , 16진수로 구문 분석
radix 매개변수를 지정하면 radix
3을 기준으로 구문 분석됩니다.parseFloat(string) 함수에서 문자열을 부동 소수점 유형 값
으로 변환합니다. 규칙은 기본적으로 parInt와 동일하지만 몇 가지 차이점이 있습니다. 문자열의 첫 번째 소수점 기호는 유효하며,parseFloat는 모든 선행 0을 무시합니다. 문자열에 정수로 구문 분석할 수 있는 숫자가 포함되어 있으면 정수 값은 다음과 같습니다. 부동 소수점 숫자 대신 반환됩니다.
4.toString(radix) 메서드. 정의되지 않음 및 null을 제외한 모든 유형의 값에는 객체의 문자열 표현을 반환하는 toString() 메서드가 있습니다.
객체 작업
Array Array의 요소를 문자열로 변환합니다. 결과 문자열은 쉼표로 구분되어 연결됩니다.
Boolean 부울 값이 true이면 "true"를 반환합니다. 그렇지 않으면 "false"를 반환합니다.
Date 날짜의 텍스트 표현을 반환합니다.
Error 관련 오류 정보가 포함된 문자열을 반환합니다.
Function 다음 형식으로 문자열을 반환합니다. 여기서 functionname은 호출된 toString 메서드 함수의 이름입니다.
function functionname() { [네이티브 코드] }
Number 숫자의 텍스트 표현을 반환합니다.
String String 개체의 값을 반환합니다.
Default는 "[object objectname]"을 반환합니다. 여기서 objectname은 개체 유형의 이름입니다.
5. 모든 유형의 값을 문자열로 변환하는 함수입니다. 규칙은 다음과 같습니다.
toString() 메서드가 있는 경우 기수를 전달하지 않고 이 메서드를 호출합니다. 매개변수 ) 결과를 반환하고
null이면 "null"을 반환합니다.
정의되지 않으면 "undefine"을 반환합니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> var x = 55; document.getElementById("demo").innerHTML = String(x) + "<br>" + String(13.3) + "<br>" + String(100.99 + 23); </script> </body> </html>
6 부울(혼합) 함수, 모든 유형의 값을 변환합니다. 부울 값으로 변환합니다.
다음 값은 false로 변환됩니다. false, "", 0, NaN, null, 정의되지 않음 및 기타 모든 값은 true로 변환됩니다.
예:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> var i="123abc"; i=parseInt(i);//字符串转整形 alert(i+","+typeof(i));//输出:123,number i="12.3abc"; i=parseFloat(i);//字符串转浮点型 alert(i+","+typeof(i));//输出:12.3,number(可见不管是int还是float都是number类型) i="a123abc"; i=parseInt(i);//字符串转整形 alert(i+","+typeof(i));//输出:NaN,number (由于转换失败,所以提示“不是一个数字,Not a Number”) var num=document.getElementById("num").value; function showMsg(num) { for(var i=0;i<num;i++) { document.write("你好,JavaScript!<br/>"); } } </script> </head> <body> </body> </html>
단항 연산자 +
연산자 +를 사용하여 변수를 숫자로 변환할 수 있습니다:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <button onclick="myFunction()">点击</button> <p id="demo"></p> <script> function myFunction() { var y = "5"; var x = + y; document.getElementById("demo").innerHTML = typeof y + "<br>" + typeof x; } </script> </body> </html>