zoukankan      html  css  js  c++  java
  • 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 Round #366 (Div. 2)
    Codeforces Round #367 (Div. 2)
    带权并查集小练
    Codeforces Round #368 (Div. 2)
    Codeforces Round #396 (Div. 2)
    Codeforces Round #376 (Div. 2)
    工作流
    程序员之江湖感想
    工作流设计简介
    程序员常去的103个网站
  • 原文地址:https://www.cnblogs.com/hebing0415/p/11561184.html
Copyright © 2011-2022 走看看