前言
es5
中的数据类型和es6
中的数据类型。
数据类型
- 基本数据类行(值类型)
Number
,String
,Null
,Undefined
,Boolean
,Symbol
(es6
中新增的数据类型) - 引用数据类型
Object
包含(object
,Array
,function
,Date
)
运算符
= 用于赋值
== 用于判断,只会判断值是否相同
=== 用于判断是否全等,即值和数据类型都相同。
数据类型的判断
检测全部数据类型
- 值类型
let a;
let b=1;
let c='1';
let d=false;
console.log(typeof a) //undefined
console.log(typeof b) //number
console.log(typeof c) //string
console.log(typeof d) //boolean
console.log(typeof null) //object
注: null
检测结果为object
。
- 引用数据类型
let arr=[1,2,3,4]
console.log(typeof function(){}) //function
console.log(typeof {}) //object
console.log(typeof arr) //object
注: function
检测结果为function
,除function
外,其他类型均为object
。
instanceof
检测基本数据类型时不能检测Number
String
Boolean
但是通过构造函数new Number(100)
可以检测
instanceof
检测引用数据类型时返回值为Boolean
值
由此可以得出instanceof
适合检测引用数据类型。
console.log(
100 instanceof Number, //false
'dsfsf' instanceof String, //false
false instanceof Boolean, //false
undefined instanceof Object, //false
null instanceof Object, //false
[1,2,3] instanceof Array, //true
{a:1,b:2,c:3} instanceof Object, //true
function(){console.log('aaa');} instanceof Function, //true
new Date() instanceof Date, //true
/^[a-zA-Z]{5,20}$/ instanceof RegExp, //true
new Error() instanceof Error //true
)
var num = new Number(123);
var str = new String('dsfsf');
var boolean = new Boolean(false);
总结
以上为本人的简单理解,请各位大佬多多指教。