JS数据类型知识点总结

一、JS的数据类型有8种

  • ES5中6种:
    • 基本类型:
      • Number
      • String
      • Boolean
      • undefined
      • Null
    • 引用类型:
      • object(包括:function、array、Date等)
  • ES6中,新增Symbol。
    • 这种类型的对象永不想等,即使创建的时候传入相同的值,可以解决属性名冲突的问题,作为标记。
  • 谷歌67版本出现了一种bigInt。
    • 指安全存储、操作大整数(但很多人不把这个作为一个类型)

 

PS1:undefined与null的区别:

  • undefined代表:
    • 一个未声明的变量
    • 或 已声明但没有赋值的变量
    • 或 一个并不存在的对象属性
  • null
    • 声明并赋值了的变量,只不过值为null(空对象指针)

PS2:什么时候给变量赋值为null呢?

  • 初始赋值,表明将要赋值为对象
  • 结束前,让对象成为垃圾对象(被垃圾回收器回收)

 

二、判断数据类型

  • typeof
//可判断:number、boolean、string、undefined、function 
//不可判断:null、array、object(这三个会返回object) 
var a = 1; 
console.log(typeof a);//"number" 
var b = [1,2,3]; 
console.log(typeof b);//"object" 
var c = null; 
console.log(typeof c);//"object"
  • instanceof
var a = [1,2,3];
console.log(a instanceof Array);//true
//注意:
var b = [1,2,3]
console.log(b instanceof Array);//true
console.log(b instanceof Object);//true
var c = function(){ return 1; }
console.log(c instanceof Function);//true
console.log(c instanceof Object);//true
  • ===
//可判断:undefined、null
console.log(undefined===undefined);//true
console.log(null===null);//true

//结合constructor
//支持:number、string、boolean、object
//不支持:null、undefined
var a = [1,2,3];
console.log(a.constructor === Array);//true

//结合typeof
var b = [1,2,3];
console.log(typeof b === "object");//true
var c = 1;
console.log(typeof c === "number");//true
  • 检验数组还可以用Array.isArray()
var a = [1,2,3];
console.log(Array.isArray(a));//true

 

 

三、不同类型之间的转换

  • 转为字符串
    • toString()、toLocaleString()
//支持:number、string、boolean、object
//不支持:null、undefined
var a = true;
a.toString()//"true"
    • String()
//与toString()的区别,String()可以转换null和undefined
var a = null;
console.log(typeof String(a));//"string"
  • 转为数字
    • Number()
      • 如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。
      • 如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。
var test1= new Boolean(true);
var test2= new Boolean(false);
var test3= new Date();
var test4= new String("999");
var test5= new String("999 888");
console.log(Number(test1));//1
console.log(Number(test2));//0
console.log(Number(test3));//1603633385931
console.log(Number(test4));//999
console.log(Number(test5));//NaN
var test11= true;
var test22= false;
var test44= "999";
var test55= "999 888";
console.log(Number(test11));//1
console.log(Number(test22));//0
console.log(Number(test44));//999
console.log(Number(test55));//NaN

var test66= undefined;
var test77= null;
console.log(Number(test66));//NaN
console.log(Number(test77));//0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值