判断数据类型(基本数据类型、引用数据类型):
const type = (target) => {
const template = {
"[object Array]" : "array",
"[object Object]" : "object",
"[object Number]" : "number - object",
"[object Boolean]" : "boolean - object",
"[object String]" : "string - object"
}
if (target === null){
return null;
} else if (typeof (target) == "object"){//引用值
const str = Object.prototype.toString.call(target);
return template[str];
} else {//原始值
return typeof (target);
}
}
强制转换数据类型:
ECMAScript 中可用的 3 种强制类型转换如下:
- Boolean(value):把给定的值转换成Boolean型。
- Number(value):把给定的值转换成数字(可以是整数或浮点数)。
- String(value):把给定的值转换成字符串。
下面是采用策略模式封装的一个强制类型转换方法:
const convertDataType = (type, value) => {
let obj = {
int: Number,
string: String,
boolean: Boolean
}
return obj[type](value);
}
判断一个变量 不是数值 且 不可以被强转为数值:
!Number(val)
!Number(123) // false
!Number('123') // false
!Number('asd') // true
// 解析:
Number('asd') // NaN