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>