js数据类型和基本语法

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
    38
    function 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
    5
    console.log(1+1); 
    console.log("2"+"4");
    console.log(2+"4");
    console.log(+new Date());
    console.log(+"4");

2
24
24
1463281707988
4

以下代码的输出结果是? (难度*

1
2
3
4
var a = 1;
a+++a;

typeof a+2;

3
“number2”

遍历数组,把数组里的打印数组每一项的平方 (难度**)

1
2
3
4
5
var arr = [3,4,5];
for(var i=0;i<arr.length;i++){
console.log(arr[i]*arr[i]);
}
// 输出 9, 16, 25

0_1463282804325_upload-a19297a4-86f6-4cb6-b00a-cf39ceeb18f4

遍历 JSON, 打印里面的值 (难度**)

1
2
3
4
5
6
7
8
9
var obj = {
name: 'hunger',
sex: 'male',
age: 28
}
for(i in obj){
console.log(i+":"+obj[i]);
}
// 输出 name: hunger, sex: male, age:28

0_1463283169431_upload-0e840a87-2c92-4fb3-9a02-aae30bebe128

下面代码的输出是? 为什么 (难度*

1
2
3
4
console.log(a);
var a = 1;
console.log(a);
console.log(b);
  • undefined:这是由于javascript的工作方式导致的变量提升,先解析代码,获取所有被声明的变量,然后再一行一行地运行。在执行console。log(a)时,a的声明已经被提升到代码的头部,但并未执行a=1的赋值,所以返回undefined。
  • 1:此时赋值语句a=1已经执行,所以输出1;
  • Uncaught ReferenceError: b is not defined:b没有声明,是一个未定义的名称。
文章目录
  1. 1. JavaScript 定义了几种数据类型? 哪些是简单类型?哪些是复杂类型?
  2. 2. NaN、undefined、null分别代表什么?
  3. 3. typeof和instanceof的作用和区别?
  • 代码
    1. 1. 以下代码的输出结果是? (难度*)
    2. 2. 遍历数组,把数组里的打印数组每一项的平方 (难度**)
    3. 3. 遍历 JSON, 打印里面的值 (难度**)
    4. 4. 下面代码的输出是? 为什么 (难度*)
  • ,