一、数据类型分类

【1】值类型(基本类型): 字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined

【2】引用数据类型:对象( )、数组(Array)、函数(Function

二、类型详解

【1】字符串(String)

字符串是存储字符的变量。字符串可以是引号中的任意文本

var myName = \"Demi\";
var answer = \"She is called \'Demi\'\"; // 字符串中使用引号,如果外层使用的双引号,那么里层使用单引号,反之亦然

【2】数组(Number)

Number类型包含整数和浮点数两种值

var num1 = 66.00;  // 浮点数
var num2 = 66;     // 整数

【3】布尔(Boolean)

表示真伪的两个特殊值,即 true(真)和 false(假),通常会用在if()条件语句中

var x = true; 
var y = false;

【4】空(Null)

null类型被看做空对象指针,即此处的值为空。可以通过将变量的值设置为 null 来清空变量。

var myName = \"Demi\";
myName = null; // 清空myName变量

【5】未定义【Undefined】

表示“未定义”或不存在,使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。

var myName
console.log(myName) // undefined

【6】对象( )

对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。

var test = {
   firstValue: \'Hello\',
   lastValue: \'World!\'
},

// 获取对象中的值的两种方式
var value1 = test.firstVlaue
var value2 = test[\'lastValue\']

【7】数组(Array)

数组的每一项可以用来保存任何类型的数据,也就是说,可以用数组的第一个位置来保存字符串,第二个位置保存数值,第三个位置保存对象....另外,数组的大小是可以动态调整的。

var cars=[\"Saab\",\"Volvo\",\"BMW\"];

// 获取数组中的值
var value1 = cars[1] // 获取ars数组中下标c为1的值,下标从0开始计算

【8】函数(Function)

每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。

function sum(num1,num2){
  return num1 + num2;
};

var sun = function (){
  return sum1 + sum2;
};

// 函数调用 
  sun()

三、undefined和null的区别

【1】定义

  • undefined:是所有没有赋值变量的默认值,自动赋值。
  • null:主动释放一个变量引用的对象,表示一个变量不再指向任何对象地址。

【2】共同点

  • nullundefined的值值相等都可以表示“没有”,含义非常相似。
  • if语句中,它们都会被自动转为false,相等运算符(==)甚至直接报告两者相等。

【3】不同点

  • 类型不同,null的类型是 ,undefined的类型是undefined,全等运算符(===)值为false
  • undefined 表示变量声明过但并未赋过值,它是所有未赋值变量默认值。
  • null 表示一个变量将来可能指向一个对象,一般用于主动释放指向对象的引用。

【4】出现undefined场景

  • 变量声明了未赋值
  • 定义函数时有传参数,但是调用函数时没有提供参数,那么该参数等于undefined
  • 调用对象没有赋值的属性
  • 函数没有返回值时,默认返回undefined

【5】出现null场景

  • 手动设置变量的值或者对象的某一个属性值为null
  • js获取dom元素失败时,返回结果为null
  • .protype.proto的值为null
  • 正则捕获阶段,没有捕获到值返回null

四、typeof运算符判断数据类型

typeof 可以用来检测给定变量的数据类型,返回值是一个字符串,可能返回的值: number、string、boolean、 、 undefined、function

typeof 66             // number
typeof \'Demi\'         // string
typeof false          // boolean
typeof null           //   原因在于null类型被当做一个空对象引用。
typeof undefined      // undefined
typeof {}             //   
typeof []             //   在 内部,数组本质上是一种特殊的对象
function sum(){}
typeof sum            // function

 

收藏 打印