var message; alert(message == undefined); //true
var message = undefined; alert(message == undefined); //true
var car = null; alert(typeof car); // "object"
if (car != null){ // 对car 对象执行某些操作 }
alert(null == undefined); //true
이 유형에는 true와 false의 두 가지 리터럴 값만 있습니다. 이 두 값은 숫자 값과 동일하지 않습니다. 따라서 true가 반드시 1이 되는 것은 아니며, false가 반드시 0이 되는 것은 아닙니다. 다음은
부울 유형의 값을 변수에 할당하는 예입니다.
var found = true; var lost = false;
부울 유형의 리터럴 값은 true이고 false는 대소문자를 구분합니다. 즉, True 및 False(및 기타 대소문자 혼합 형식)는 부울 값이 아니라 식별자일 뿐입니다. Boolean 유형의 리터럴 값은 2개뿐이지만 ECMAScript의 모든 유형의 값은 이 두 Boolean 값과 동일한 값을 갖습니다. 값을 해당 부울 값으로 변환하려면 다음 예와 같이 변환 함수 Boolean()을 호출할 수 있습니다.
var message = "Hello world!"; var messageAsBoolean = Boolean(message); BooleanExample01.htm
이 예에서는 문자열 message가 부울 값으로 변환되어 messageAsBoolean 변수에 저장됩니다. Boolean() 함수는 모든 데이터 유형의 값에 대해 호출될 수 있으며 항상 부울 값을 반환합니다. 반환된 값이 true인지 false인지는 변환할 값의 데이터 유형과 실제 값에 따라 다릅니다. 다음 표에는 다양한 데이터 유형과 해당 변환 규칙이 나와 있습니다.
데이터 유형 | true | 값으로 변환 false |
부울 | true | false |
문자열 | 비어 있지 않은 문자열 | ""(빈 문자열) |
숫자 | 0이 아닌 모든 숫자 값(무한대 포함) | 0 및 NaN |
정의되지 않은 개체 | 모든 개체 | null |
정의되지 않음 |
| undefined |
NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以0 都会导致错误,从而停止代码执行。但在ECMAScript 中,任何数值除以0 会返回NaN①,因此不会影响其他代码的执行。NaN 本身有两个非同寻常的特点。首先,任何涉及NaN 的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。其次,NaN
与任何值都不相等,包括NaN 本身。例如,下面的代码会返回false:
针对NaN 的这两个特点,ECMAScript 定义了isNaN()函数。这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串"10"或Boolean 值。而任何不能被转换为数值的值都会导致这个函数返回true。请看下面的例子:
alert(isNaN(NaN)); //true alert(isNaN(10)); //false(10 是一个数值) alert(isNaN("10")); //false(可以被转换成数值10) alert(isNaN("blue")); //true(不能转换成数值) alert(isNaN(true)); //false(可以被转换成数值1)
有3 个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()。第一个函数,即转型函数Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。这3 个函数对于同样的输入会有返回不同的结果
以上就是JavaScript中数据类型详解的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!