js数据类型 、数据类型判断

一、js的数据类型

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)
Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
**1.**JavaScript拥有动态类型,这意味着相同的变量可以作用不同的类型

var x ; //此时的X是undefined
var x = 5 //此时的x是数字类型
var x = 'qianqian' //此时的x是一个字符串

字符串是用来存储字符值的,字符串中引号中可以是任意内容

**2.**JavaScript只有一种数据类型,它可以是整数也可以是小数,极大的数和极小的数都可以通过科学计数法表示

var x = 89.00;  //用小数表示
var y = 89; //不用小数表示
var q = 123e5  //表示12300000
var p = 123e-5  //表示0.00123

**3.**JavaScript的布尔类型只有两个值true或false,通常会用在条件测试中

var x = true;
var y = false;

**4.**JavaScript的undefined和null
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。

cars = null;
person = null;

**5.**JavaScript数组

var arr = new Array("saab","volvo","bmw")

**6.**JavaScript对象,对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔

var person={
	name:"qianqian",
	age:"17",
	id:"7788" 

对象的两种获取方式:

name = person.name
name = person["name"]

**7.**声明变量类型

var carname=new String;
var x=      new Number;
var y=      new Boolean;
var cars=   new Array;
var person= new Object;

二、数据类型判断

判断js数据类型,也就是我们说的类型检测,分别是typeof运算符、instanceof操作符、Object.prototype.toString方法、constructor属性、duck type。
1、typeof运算符
typeof算是最常见的了,使用它会返回一个字符串,适合函数对象和基本类型(js中的基本类型:number、string、boolean、null、undefined、object[对象])的判断。
2、instanceof操作符(基于原型链)
obj instanceof Object,左边操作数obj为对象(如果不小心写成基本类型 比如数字啥的,就会返回false),右边操作数Object为函数对象或者是函数构造器,否则抛出TypeError。
实质就是:instanceof操作符判断左操作数对象的原型链上是否有右边这个构造函数的prototype属性,也就是说指定对象是否是某个构造函数的实例,最后返回布尔值,这个对整个原型链上的对象都是有效的,由于instanceof对整个原型链上的对象都有效,因此同一个实例对象,可能会对多个构造函数都返回true!
3、Object.prototype.toString方法

Object.protype.toString([]) === "[object Array]";
Object.protype.toString.apply(function(){}) === "[object Function]"
Object.protype.toString.apply(null) === "[object Null]"
Object.protype.toString.apply(undefined) === "[object undefined]"

4、constructor属性
所有实例对象都有constructor属性,constructor属性指向prototype对象所在的构造函数,就是说指向创建这个实例的构造函数。
看这个constructor属性
5、duck type(鸭子类型)
比如判断一个对象是否是数组,可以看这个对象是否拥有length()等方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值