252 数据类型的分类、判断,undefined与null的区别,null的使用,严格区别变量类型与数据类型

判断

  • 基本(值)类型
    • Number ----- 任意数值 -------- typeof 【typeof: 返回字符串; instanceof、===:返回布尔值。】
    • String ----- 任意字符串 ------ typeof
    • Boolean ---- true/false ----- typeof
    • undefined --- undefined ----- typeof/=== 【因为undefined 、null类型只有一个值,所以可以用 === 判断。】
    • null -------- null ---------- ===
  • 对象(引用)类型
    • Object ----- typeof/instanceof
    • Array ------ instanceof
    • Function ---- typeof



<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>01_数据类型</title>
</head>

<body>
    <!--
1. 分类
  * 基本(值)类型
    * String: 任意字符串
    * Number: 任意的数字
    * boolean: true/false
    * undefined: undefined
    * null: null

  * 对象(引用)类型
    * Object: 任意对象
    * Function: 一种特别的对象(可以执行)
    * Array: 一种特别的对象(数值下标, 内部数据是有序的)

2. 判断
  * typeof: 返回字符串
    * 可以判断: undefined/ 数值 / 字符串 / 布尔值 / function
    * 不能判断: null与object、object与array

  * instanceof:
    * 判断对象的具体类型
  * ===
    * 可以判断: undefined, null
-->

    <script type="text/javascript">
        //1. 基本
        // typeof返回数据类型的字符串表达
        var a;
        // undefined 'undefined' true true
        console.log(a, typeof a, typeof a === 'undefined', a === undefined)
        console.log(undefined === 'undefined'); // false
        a = 4
        console.log(typeof a === 'number'); // true
        a = 'atguigu'
        console.log(typeof a === 'string'); // true
        a = true
        console.log(typeof a === 'boolean'); // true
        a = null
        console.log(typeof a, a === null); // 'object' true

        console.log('-----------------'); // 

        //2. 对象
        var b1 = {
            b2: [1, 'abc', console.log],
            b3: function() {
                console.log('b3')
                return function() {
                    return 'xfzhang'
                }
            }
        }

        console.log(b1 instanceof Object, b1 instanceof Array); //  true  false
        console.log(b1.b2 instanceof Array, b1.b2 instanceof Object); // true true
        console.log(b1.b3 instanceof Function, b1.b3 instanceof Object); // true true

        console.log(typeof b1.b2, '-------'); // 'object' 【不是 array】
        console.log(typeof b1.b3 === 'function'); // true
        console.log(typeof b1.b2[2] === 'function'); // true
        b1.b2[2](4); // 4
        console.log(b1.b3()()); // xfzhang

        /*var obj = {
          name: 'Tom',
          age: 12
        }
        function test () {
          var a = 3
        }
        var arr = [3, 'abc']
        arr[1]*/
    </script>
</body>

</html>

undefined与null的区别,null的使用,严格区别变量类型与数据类型

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>01_相关问题</title>
</head>

<body>
    <!--
1. undefined与null的区别?
  * undefined代表定义未赋值
  * nulll定义并赋值了, 只是值为null

2. 什么时候给变量赋值为null呢?
  * 初始赋值, 表明将要赋值为对象
  * 结束前, 让对象成为垃圾对象(被垃圾回收器回收)
  
3. 严格区别变量类型与数据类型?
  * 数据的类型
    * 基本类型
    * 对象类型
  * 变量的类型(变量内存值的类型)
    * 基本类型: 保存就是基本类型的数据
    * 引用类型: 保存的是地址值
-->

    <script type="text/javascript">
        // 实例: 实例对象
        // 类型: 类型对象
        function Person(name, age) { // 构造函数  类型
            this.name = name
            this.age = age
        }
        var p = new Person('tom', 12) // 根据类型创建的实例对象

        // Person('jack', 12)

        // 1. undefined与null的区别?
        var a;
        console.log(a); // undefined
        a = null;
        console.log(a); // null

        //起始
        var b = null; // 初始赋值为null, 表明将要赋值为对象
        //确定对象就赋值
        b = ['atguigu', 12];
        //最后
        b = null; // 让b指向的对象成为垃圾对象(被垃圾回收器回收)
        // b = 2

        var c = function() {

        };

        console.log(typeof c); // 'function'
    </script>
</body>

</html>
原文地址:https://www.cnblogs.com/jianjie/p/12235457.html