js数据类型汇总

JS数据类型(8种)

  1. Number(数字类型,Number 和 number 不一样)

数字类型,表示数据的整数和浮点数。某些语言中也称为“双精度值”。
var intNum = 55;十进制
var num = 012;八进制
var octalNum = 0x23;十六进制

  • infinity
  • NaN
let res = parseFloat("left:200px");
if(res === 200){
	alert(200);
}else if(res === NaN){
	alert(NaN)
}else if(typeof res === "number"){
	alert("number")
}else{
	alert("Invalid Number")
}
//结果:字符串number => 'number'
  1. String(字符串)

字符串可以有单引号、双引号表示。字符串是不可变的,一旦创建,值就不能改变
要改变某个变量保存的字符串,首先要销毁原来的字符串,然后于用另一个包含的字符串填充该变量。

  1. Boolean(布尔值)

使用最多的一个类型,有两个字面值,分别是true、false。true不一定等于1,false不一定等于0。
boolean类型的字面值是区分大小写的。True和False是标识符

  1. Null(空)

只有一个值。null是表示一个空对象指针,这也是typeof操作符检测 null 值时会返回 object 的原因。

  1. undefined(未定义)

只有一个值。在使用var 声明变量但未对其加初始化时,这个变量就是undefined。

  1. Object(对象)

ECMAjavascript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。创建object类型的实例并为其添加属性(或)方法,就可以自定义创建对象。

  • data
  • Array
  1. symbol(可以创建一个独一无二的值(但并不是字符串))

Symbol 类型的对象永远不相等,即便创建的时候传入相同的值。因此,可以用解决属性名冲突的问题(适用于多少编码),做为标记。
这是 es6 新增的数据类型。

  • static Symbol
  • Symbol.prototype
  1. biglnt(是指安全存储、操作大整数)

Javascript 中的任意精度整数,可以安全存储和操作大整数。即始超出 Number 能够表示的安全整数范围。是 chrome 67中的新功能。

在这里插入图片描述

判断数据类型

typeof 检测数据类型的逻辑运算符 (基本数据类型)

console.log(
        typeof 123, //"number"
        typeof 'abc', //"string"
        typeof true, //"boolean"
        typeof [1, 2], //"object"
        typeof {}, //"object"
        typeof function () {}, //"function"
        typeof undefined, //"undefined"
        typeof null, //"object"
        typeof new Date(), //"object"
        typeof /^[a-z]$/, //"object"
        typeof new Error() //"object"
    );

instanceof 检测是否为类的实例

    console.log(
        123 instanceof Number, //false
        'abc' instanceof String, //false
        false instanceof Boolean, //false
        [1, 2, 3] instanceof Array, //true
        {} instanceof Object, //true
        function () { } instanceof Function, //true
        undefined instanceof Object, //false
        null instanceof Object, //false
        new Date() instanceof Date, //true
        /^[a-zA-Z]$/ instanceof RegExp, //true
        new Error() instanceof Error //true
    )

constructor 检测构造函数

var num  = 123;
var str  = 'abcdef';
var bool = true;
var arr  = [1, 2, 3, 4];
var json = {name:'wenzi', age:25};
var func = function(){ console.log('this is function'); }
var und  = undefined;
var nul  = null;
var date = new Date();
var reg  = /^[a-zA-Z]{5,20}$/;
var error= new Error();

function Person(){
  
}
var tom = new Person();

// undefined和null没有constructor属性
console.log(
    tom.constructor==Person,
    num.constructor==Number,
    str.constructor==String,
    bool.constructor==Boolean,
    arr.constructor==Array,
    json.constructor==Object,
    func.constructor==Function,
    date.constructor==Date,
    reg.constructor==RegExp,
    error.constructor==Error
);
//所有结果均为true

Object.prototype.toString.call 检测数据类型

var toString = Object.prototype.toString;

toString.call(123); //"[object Number]"
toString.call('abcdef'); //"[object String]"
toString.call(true); //"[object Boolean]"
toString.call([1, 2, 3, 4]); //"[object Array]"
toString.call({name:'wenzi', age:25}); //"[object Object]"
toString.call(function(){ console.log('this is function'); }); //"[object Function]"
toString.call(undefined); //"[object Undefined]"
toString.call(null); //"[object Null]"
toString.call(new Date()); //"[object Date]"
toString.call(/^[a-zA-Z]{5,20}$/); //"[object RegExp]"
toString.call(new Error()); //"[object Error]"

Array.isArray( ) 检验值是否为数组

在这里插入图片描述

  • toString ( )

    作用:其他类型转成 string 的方法

    支持:number、boolean、string、object

    不支持:null 、undefined
    在这里插入图片描述

  • toLocaleString ( )

    把数组转成本地字符串
    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值