- typeof方法
功能 |
检测变量类型 |
语法 |
typeof 变量或typeof(变量) |
返回值 |
string类型的值,可能是如下:
string, number, boolean, object, undefined(js的基本数据类型), function
|
var
name =
'Mercury'
, age =
18
, gender =
'female'
, address;
console.
log
(
typeof
name);
//string
console.
log
(
typeof
(age));
//number
console.
log
(
typeof
(address));
//undefined 声明未赋值
- null
2.1 null值表示一个空指针对象
2.2 如果定义的变量准备在将来用于保存对象,最好是将该变量初始化为null而不是其他值。
说明:undefined值是派生自null值的,所以undefined == null 的返回结果是true。
- Number
3.1 表示整数和浮点数(小数)
3.2 NaN — Not a Number, 是一个特殊的数值 — 非数字。
var
name =
'Mercury'
, age =
18
, gender =
'female'
, address;
console.
log
(age -
3
);
//15
console.
log
(age -
'mm'
);
//NaN
说明:1. 任何涉及NaN的操作(例如NaN/10)都会返回NaN
2. NaN与任何值都不相等,包括NaN本身。
3.3 语法: -isNaN(n) — 检测n是否是“非数值”,返回值为boolean
var
name =
'Mercury'
, age =
18
, gender =
'female'
, address, id=‘16';
console.
log
(
isNaN
(age));
//false
console.
log
(
isNaN
(gender));
//true
console.
log
(
isNaN
(id));
//false
— isNaN()对接收的数值,先尝试转换为数值,再检测是否为非数值
3.4 数值转换
三种函数可以把非数值转换为数值: Number(), parseFloat(), parseInt()
3.4.1 Number()
var
name =
'Mercury'
, age =
18
, gender =
'female'
, address, id=‘16';
console.
log
(
typeof
id);
//string
id = Number(id);
console.
log
(
typeof
id);
//number
name = Number(name);
//字符串无法转换,返回结果NaN
console.
log
(name);
//NaN
3.4.2 parseInt() 只能提取以数字开头的值
var
topValue =
parseInt
(
'28px'
);
//只要数值28,去除px
console.
log
(topValue);
//28
console.
log
(
parseInt
(
'0xf'
),
16
);
//转换成16进制,输出15
说明:1. parseInt():转换空字符串返回NaN
2. 当提供第二个参数时:转换时使用的基数即多少进制
3.4.3 parseFloat() 从第一个字符开始解析每一个字符,直到遇见一个无效的浮点数字符为止。
console.
log
(
parseInt
(
'12.34px'
));
//12
console.
log
(
parseInt
(
'12.34px'
))
//12.34
console.
log
(
parseInt
(
'12.34.56px'
))
//12.34
说明:除了第一个小数点有效外,parseFloat()与parseInt()的区别在于它始终都会忽略前导的零。
- String
用于表示由零个或多个16位Unicode字符组成的字符序列,即字符串。可以由双引号或单引号表示。
4.1 toString() 方法
语法:str.toString()
功能:将str转化为字符串
返回值:str的一个副本
参数:str是要转换的内容,类型可以是number,boolean,object和string。
String() 函数
var
ids =
8734
;
var
idstr = ids.
toString
();
console.
log
(
typeof
idstr);
//string
console.
log
(String(ids));
//8734
说明:在不知道要转换的值是不是null或undefined的情况下,还可以使用String()函数,它能够将任何类型的值转换为字符串。
- Boolean
var
isStudent =
true
;
var
isChild =
false
;
console.
log
(
typeof
isStudent);
//boolean
console.
log
(isChild.
toString
());
//false
5.1 Boolean()函数
5.1.1 将数字转换成布尔型,只有当数值为0时 == false,其他任意数值 == true
var
x =
0
;
var
y =
12
;
console.
log
(Boolean(x));
//false
console.
log
(Boolean(y));
//true
5.1.2 字符串类型 除了’’之外,转换为布尔型都为true
var
strings =
'wlk'
;
console.
log
(Boolean(strings));
//true
console.
log
(Boolean(
''
));
//false
console.
log
(Boolean(
' '
));
//true
5.1.3 null和undefined转为布尔型为false
var
y;
console.
log
(Boolean(y));
//false
var
t =
null
;
console.
log
(Boolean(t));
//false