JavaScript的数据类型

JavaScript的数据类型

JavaScript是弱类型脚本语言,声明变量时无需指定变量的数据类型。JavaScript变量的数据类型是解释时动态决定的。有以下两种数据类型

1.基本数据类型

基本数据类型又分为以下六种:

  1. Undefined
    Undefined类型只有一个值,即特殊的undefined,在使用var声明变量但未对其加以初始化时(未赋值),这个变量的值就是undefined.

  2. Null
    Null 类型是第二个只有一个值的数据类型,这个特殊的值是null。
    null 值表示一个变量以后可能会指向某个对象,但目前什么都没有指向
    eg: var car = null;
    alert(typeof car);//“object”
    从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回“object”的原因。
    alert(null == undefined);//true

  3. Boolean
    布尔类型,仅有两个值:true和false,也代表1和0,实际运算中true == 1,false == 0
    快速转换为Boolean类型:在前面加两个!!

  4. Number
    数值类型,NaN(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数字的情况。
    isNaN()函数,这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数字”。并返回一个Boolean值。
    快速转换Number类型:在前面加一个 +

  5. String
    字符串类型
    在强类型语言中 一般字符 和 字符串是两种不同的类型

     // 字符 指的是单个字符  'a'   char
    
     // 字符串  指的是多个字符 "abc"  string
    
     // JS中 不管是 单个还是多个字符 都叫string
    
     // 字符串可以是单引号 也可以是双引号 推荐使用单引号(方便HTML拼接)
    

    快速转换为String类型:用连接符 + ’ '(连接空的字符串)

  6. Symbol
    ES6 引入了一种新的原始数据类型。Symbol 值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。
    eg : let s = Symbol();
    typeof s; // “symbol”

基本数据类型可用 typeof 检测

2.引用数据类型

*** 引用类型的比较,比较的是地址,只要地址不一样就不相等

*** 引用零类型赋值的是地址,两个数据一样

*** 引用类型作为参数传递时,依旧传递的是地址

严格来说引用类型只有一种Object。
Object(Array,Date,RegExp,Function)

  1. Object
    对象
  2. Array
    数组(Array),就是一种很常用的保存批量数据的数据结构,所谓数据结构,就是把数据与数据间的关系按照特定的结构来保存。
    3.Function
    函数(function)是一个大型程序中的某部分代码(子程序),由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。
    一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。
    在面向对象编程语言中,类别或对象的子程序也被称作方法(method)
  1. instanceof 检测引用类型,但不靠谱
    console.log(arr instanceof Array); //true
    console.log(obj instanceof Object); //true
    console.log(arr instanceof Object); //false
  2. construtor(构造器)–编译器不给予提示,检测该对象是否是某个构造函数创建的
    console.log(arr.constructor === Array); //true
    console.log(arr.constructor === Object); //false
    console.log(obj.constructor === Object); //true
    console.log(obj.constructor === Array); //false
  3. 自定义函数—用于检测对象的数据类型(引用类型和基本数据类型都可)
    function getType(obj) { return Object.prototype.toString.call(obj).slice(8, -1) }
    var num = 123;
    var b = true;
    var d;
    console.log(getType(num)); //Number
    console.log(getType(b)); //Boolean
    console.log(getType(d)); //Undefined
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值