js 数据类型的检测、转换

typeof 操作符返回一个字符串,表示未经计算的操作数的类型
(检测变量的数据类型)

<script>
    //String
    console.log(typeof "1");
    console.log(typeof (typeof 1));
    console.log(typeof String(1));//String将任意值转换为字符串

    // 数值  number
    console.log(typeof NaN);
    console.log(typeof Math.PI);

    //布尔值
    console.log(typeof !!(1));//逻辑非
    console.log(typeof Boolean(1));

    //Symbols
    console.log(typeof Symbol());

    //undefined
    console.log(typeof undefined);

    //对象
    console.log(typeof [1,20,3]);
    console.log(typeof new Date());
    console.log(typeof null);

    //函数
    console.log(typeof function () {});


    //用null清空对象
    var arr = {a:1,b:2};
    var arr = null;
    console.log(arr)
    console.log(typeof arr);//依旧为对象

    //用undefined清空对象
    var down = {name:"water",price:32};
    var down = undefined;
    console.log(down);
    console.log(typeof down);


    //null和undefined的区别
    //值相等,类型不等
    console.log(typeof null);
    console.log(typeof undefined);
    console.log(null == undefined);
    // == 相等:检查两个操作符是否相等,并且返回一个布尔值
    //(会在比较之前尝试将它们强制转换为相同的类型并且比较)
    console.log(null === undefined);
    // === 全等:检查两个操作符是否相等,并且返回一个布尔值
    //(全等运算符认为不同类型的操作数是不同的)

</script>

类型转换:
Number()转换为数字,String()转换为字符串,Boolean()转换为布尔值

在js中有6种不同的数据类型:String,number,boolean,object,function,symbol
3种对象类型:Object,Date,Array
2种不包含任何值的数据类型:null,undefined

constructor属性返回所有js变量的构造函数

<script>
	//constructor返回构造函数
    console.log([1,2,3,4].constructor);
    console.log(new Date().constructor);
</script>

js变量可以转换为新变量获取其他数据类型:
通过使用js函数
通过js自身自动转换

自动转换类型:当js尝试一个错误的数据类型是,会自动转换为正确的数据类型。

<script>
    //判断是否为数组
    var arr = [12,2,14,52,76];
    function array(arrays) {
        console.log(arrays.constructor.toString().indexOf("Array")>-1);
    };
    array(arr);

    //转换为字符串 String()/toString()
    console.log(typeof String(123));
    console.log(typeof (123).toString());
    console.log(typeof String(true));
    console.log(typeof String(new Date()));

    //转换为数字
    console.log(typeof Number(3));
    console.log(typeof Number(true));
    var date = new Date();
    console.log(typeof Number(date));

    //自动转换为其他类型
    var x = false;
    console.log(typeof Number(x));
    console.log(typeof String(x));
    console.log(typeof Boolean(x));
</script>

typeof 用以获取一个变量或者表达式的类型
instanceof 操作符来判断对象的具体类型

<script>
    //instanceof
    var arr = [1,2,3,4];
    if (arr instanceof Array){
        console.log("是数组");
    } else{
        console.log("不是数组");
    };
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值