js数据类型总结

javascript的变量是松散类型的,可以用来保存任何类型的数据。js拥有动态类型,相同的变量可以用作不同的类型。javascript变量均为对象,当声明一个变量时,就创建了一个新的对象

类型检测

instanceof

用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上,即instanceof 只能用来判断两个对象是否属于实例关系,也就是说,instanceof后面的参数是引用型对象=需要判断的是值类型就应该用typeof。返回布尔值。如以下当判断是否为string类型时会返回false,但用typeof获取值类型时又会返回string。

        var test = [];
        console.log(test instanceof Array);//true
        var test = {name:'aa'}
        console.log(test instanceof Object);//true
        var test = 'a';
        console.log(test instanceof String);//false

typeof

typeof 操作符返回一个字符串,表示未经计算的操作数的类型,但是对于一些创建的对象,它们都会返回'object'。

返回值为:string\number\undefined\boolean\object\function\null

        var test = [];
        console.log(typeof test);//object
        var test = {name:'aa'}
        console.log(typeof test);//object
        var test = 'a';
        console.log(typeof test);//string
        var test = 123;
        console.log(typeof test);//number

还有一些其他的类型判断函数,具体记录。 

值类型:

按照原始值的方式存储,也叫原始数据类型。

string字符串

String()、toString()(toString()无法转换null和undefined)

var arr = new Array()//对象引用型
var arr = new Array('a','b')
var arr = []
var arr = ['a','b']

number数字

Number()、parseInt()、parseFloat()

如果number的数值超出了范围,会被转换成Infinity(无穷)

NaN是一个特殊的值,表示本来要返回数值的操作数未返回数值的情况。任何设计NaN的操作都会返回NaN(NaN与任何值都不相等,包括NaN本身)

+ => Number()

        var a = 'a';
        var b = 'b';
        var test = '01';
        console.log(typeof(a));//string
        console.log(typeof(test));//string
        test = + a;
        console.log(typeof(test));//number
        console.log(test);//NaN
        a = + b;
        console.log(typeof(a));//number
        console.log(a);//NaN

boolean布尔

!! => Bollean()

任何数据类型都可以转换成boolean,使用Boolean()函数可以强制转换。

        var a = !!1;
        console.log(a);//true
        console.log(typeof(a));//boolean

null空

空指针对象,表示存储了值,但是空指针,当一个变量是为了保存一个对象,但没办法立即初始化的时候,应该为之分配一个null值。

undefined未定义

当一个变量声明但未初始化时,即没有存储值,就会被赋予undefined值。没定义也被认为是undefined。

symbol

表示独一无二的值

引用数据类型:

object对象

5种基本的数据类型以外都是对象。如数组、函数等。

对象属性有两种寻址方式:

obj.name
obj['name']

array数组

//第一种
var A=[12,78,78,78,89]
//第二种
var B=new Array();
B[0]=12
B[1]=34
B[2]=56
//第三种
var C=new Array(3);
C[0]=12
C[1]=34
C[2]=56
//第四种
var D=new Array(45,78,89,45);

判断函数:isArray instanceof

var test = [];
test[0] = '1';
test[1] = 'a';
if(Array.isArray(test)){
    console.log("success");//success
}

关于遍历:

 for in

用于遍历数组键值,可以遍历对象的属性和自定义属性。

        var obj = {
            name : "test",
            age : 18,
        }
        for(var test in obj){
            console.log(test);//name,age
        }
        var arr = ['a','b','c'];
        arr.test = 'test';
        for(var key in arr){
            console.log(key);//0,1,2,test
        }

for of

遍历数组的值,不能遍历对象。不能遍历自定义属性。

        var arr = ['a','b','c'];
        arr.test = 'test';
        for(var key of arr){
            console.log(key);//a,b,c
        }

foreach

        var arr = ['a','b','c'];
        arr.test = 'test';
        arr.forEach(e => {
            console.log(e);//a,b,c
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值