JavaScript 定义了几种数据类型? 哪些是简单类型?哪些是复杂类型?
JavaScript是弱类型语言,一共定义了6种数据类型,
5种简单的数据类型
Null
Undefined
Boolean
Number
String还有一种复杂的数据类型——Object,Object本质是一组无序的名值对组合(属性和值),ECMAScript不支持自定义数据类型,所以任何值最终都是上述六种类型之一
NaN、undefined、null分别代表什么?
- NaN含义是Not a Number,表示非数字,非数字类型会显示NaN,它和任何值都不相等,包括自己
- Undefined类型也只有一个值undefined,表示变量只被声明,没有被初始化(只声明,未被赋值),也就是有这个指针,但是这个指针没有指向任何空间
- Null类型只有一个值:null,表示空指针,也就是不存在的东西
typeof和instanceof的作用和区别?
- typeof会返回数据类型,一般判断基本对象类型,而object则没法再区分了
- instanceof左操作数是一个对象,右操作数是一个构造函数,如果左操作数是右边函数的一个实例就返回true
代码
如下代码判断一个变量是否是数字、字符串、布尔、函数 (难度*)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38function isNumber(el){
if ("number"===(typeof el)) {
return true;
}else{
return false;
};
}
function isString(el){
if ("string"===(typeof el)) {
return true;
}else{
return false;
};
}
function isBoolean(el){
if ("boolean"===(typeof el)) {
return true;
}else{
return false;
};
}
function isFunction(el){
if ("function"===(typeof el)) {
return true;
}else{
return false;
};
}
var a = 2,
b = "jirengu",
c = false;
alert( isNumber(a) ); //true
alert( isString(a) ); //false
alert( isString(b) ); //true
alert( isBoolean(c) ); //true
alert( isFunction(a)); //false
alert( isFunction( isNumber ) ); //true以下代码的输出结果是?(难度**)
1
2
3
4
5console.log(1+1);
console.log("2"+"4");
console.log(2+"4");
console.log(+new Date());
console.log(+"4");
2
24
24
1463281707988
4
以下代码的输出结果是? (难度*)
1 | var a = 1; |
3
“number2”
遍历数组,把数组里的打印数组每一项的平方 (难度**)
1 | var arr = [3,4,5]; |
遍历 JSON, 打印里面的值 (难度**)
1 | var obj = { |
下面代码的输出是? 为什么 (难度*)
1 | console.log(a); |
- undefined:这是由于javascript的工作方式导致的变量提升,先解析代码,获取所有被声明的变量,然后再一行一行地运行。在执行console。log(a)时,a的声明已经被提升到代码的头部,但并未执行a=1的赋值,所以返回undefined。
- 1:此时赋值语句a=1已经执行,所以输出1;
- Uncaught ReferenceError: b is not defined:b没有声明,是一个未定义的名称。