JS 数据类型:
ECMAScript 有5个基本的数据类型(也称为基本数据类型): Undefined, NULL, Boolean, Number和String。还有
1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。
typeof操作符:
鉴于ECMAScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof 就是负责提供这方面信息的操作符。对一个值使用typeof操作符可能返回下列某个字符串:
“undefined”:如果这个值没有定义;
“boolean”: 如果这个值是布尔值;
“string“: 如果这个值是字符串;
“Number“ : 如果这个值是数值;
“object“: 如果这个值是对象或NULL;
“function“: 如果这个值是函数
Undefined类型:
Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。
NULL 类型:
NULL类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof 操作符检测null值时会返回”object”的原因。
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为NULL而不是其他值,这样一来,只要直接检查NULL值就可以知道相应的变量是否已经保存了一个对象的引用。
只要意在保存对象的变量还没真正保存对象,就应该明确的让该变量保存null值。
Boolean类型:
Boolean 类型是ECMAScript 中使用最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1, 而false也不一定等于0。
NaN
NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作符未返回数值的情况。
NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如: NaN/10)都会返回NaN, 这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括NaN本身。
IsNaN()函数接收一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值“。 IsNaN()在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串”10”或Boolean值。而任何不能被转换为数值的值都会导致这个函数返回true。
数值转换
Number(), parseInt(), parseFloat()
Number()转换函数可以用于任何数据类型,而parseInt()和parseFloat()则专门用于把字符串转换成数值。
parseInt()函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空格,直至找到一个非空字符。如果第一个字符不是数值字符或负号,parseInt()就会返回NaN; 也就是说,用parseInt()转换空字符串会返回NaN。如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或遇到了一个非数字字符。
要把某个值转换成为字符串,可以使用加号操作符把它与一个字符串("")加在一起。
ECMAScript 有5个基本的数据类型(也称为基本数据类型): Undefined, NULL, Boolean, Number和String。还有
1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。
typeof操作符:
鉴于ECMAScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof 就是负责提供这方面信息的操作符。对一个值使用typeof操作符可能返回下列某个字符串:
“undefined”:如果这个值没有定义;
“boolean”: 如果这个值是布尔值;
“string“: 如果这个值是字符串;
“Number“ : 如果这个值是数值;
“object“: 如果这个值是对象或NULL;
“function“: 如果这个值是函数
Undefined类型:
Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。
NULL 类型:
NULL类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof 操作符检测null值时会返回”object”的原因。
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为NULL而不是其他值,这样一来,只要直接检查NULL值就可以知道相应的变量是否已经保存了一个对象的引用。
只要意在保存对象的变量还没真正保存对象,就应该明确的让该变量保存null值。
Boolean类型:
Boolean 类型是ECMAScript 中使用最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1, 而false也不一定等于0。
NaN
NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作符未返回数值的情况。
NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如: NaN/10)都会返回NaN, 这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括NaN本身。
IsNaN()函数接收一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值“。 IsNaN()在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串”10”或Boolean值。而任何不能被转换为数值的值都会导致这个函数返回true。
数值转换
Number(), parseInt(), parseFloat()
Number()转换函数可以用于任何数据类型,而parseInt()和parseFloat()则专门用于把字符串转换成数值。
parseInt()函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空格,直至找到一个非空字符。如果第一个字符不是数值字符或负号,parseInt()就会返回NaN; 也就是说,用parseInt()转换空字符串会返回NaN。如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或遇到了一个非数字字符。
要把某个值转换成为字符串,可以使用加号操作符把它与一个字符串("")加在一起。