• javascript数据类型(一)--- 分类及判断类型


    一、数据类型分类

      JavaScript的数据类型分为基本类型的对象类型:

    1.1 基本类型(也称为值类型)

      1. String: 任意字符串;

      2.Number: 任意的数字;

      3.boolean: true/false;

      4. undefined: undefined;

      5. null: null;

    1.2 对象(引用)类型

      1.Object: 任意对象;

      2.Function: 一种特殊的对象(可以执行);

      3.Array: 一种特别的对象(数值下标)

    二、判断数据类型

      这里所说的判断类型是指:typeof 和 instanceof 运算符计算的结果使用 ===/==来判断数据的类型

    2.1 typeof

      typeof运算符用于返回数据类型的字符串。返回的字符串是小写的类型名。typeof可以用于判断undefined /  数值 / 字符串 / 布尔值 / 函数.例如

    • typeof 'hello world'  =>  'string'
    • typeof 123  =>  'number'
    • typeof true  =>  'boolean'
    • var a; typeof a  =>  'undefined'
    • var a = function(){} typeof a  => 'function'
    • 注意,使用typeof计算null返回的是‘object’.var a = null ; typeof a  =>  'object'
    • 注意,使用typeof计算数组,返回的是‘object’. var a = [1,2]; typeof a  =>  'object'
    • 注意,typeof 不能区分null 与 Object, Array 与 Object

    2.2 instanceof

      instanceof是判断某个对象是否是某个类型的实例, 所有javascript对象都是Object类型,及所有的对象都使用instanceof判断是否为Object对象时都会返回true(此处需要注意基本数据类型的字面量不是对象,因此判断基本类型的字面量instanceof Object返回值是false ),即:

    • 任意对象 instanceof Object => true
    • undefined instanceof Object  => false (基本类型字面量不是对象)
    • null instance of Object  => false (基本类型字面量不是对象)
    • 注意: ‘hello’ instanceof Object  => false;  ‘hello’是基本类型的字面量
    • 注意:new String('hello') instanceof Object  => true; 此时的字符串是一个对象

      注意以上的用法之后,instanceof 的使用就类似java中的instanceof的使用,用于判断某个对象的具体类型。例如:

    • var a = function(){}  a instanceof Function  =>  true;  a instanceof Object => true;
    • var a = [1, 2, 3]; a instanceof Array  =>  true;  a instanceof Object  => true;

    2.3 ===/==

      === : 表示绝对相等,比较时不会进行类型转换。例如: typeof  ‘hello’  ===  'string'   =>  true ;

      == : 表示相等,比较是若数据类型不相等,会自动转换类型后在进行内容的比较。 例如:

    • ‘123’  == 123  => true
    • '123'  === 123  => false

    三、相关小问题

    3.1 undefined与null的区别?
      * undefined代表定义未赋值
      * nulll定义并赋值了, 只是值为null


    3.2 什么时候给变量赋值为null呢?
      * 初始赋值, 表明将要赋值为对象
      * 结束前, 让对象成为垃圾对象(被垃圾回收器回收)


    3.3 严格区别变量类型与数据类型?
      * 数据的类型
        * 基本类型
        * 对象类型
      * 变量的类型(变量内存值的类型)
        * 基本类型: 保存就是基本类型的数据
        * 引用类型: 保存的是地址值

  • 相关阅读:
    CodeForces 734F Anton and School
    CodeForces 733F Drivers Dissatisfaction
    CodeForces 733C Epidemic in Monstropolis
    ZOJ 3498 Javabeans
    ZOJ 3497 Mistwald
    ZOJ 3495 Lego Bricks
    CodeForces 732F Tourist Reform
    CodeForces 732E Sockets
    CodeForces 731E Funny Game
    CodeForces 731D 80-th Level Archeology
  • 原文地址:https://www.cnblogs.com/hebing0415/p/11561184.html
Copyright © 2020-2023  润新知