typeof
运算符可以获取值得数类型
==
运算符可以判断左右两边值是否相等,不建议使用,因为Javascript中对值相等的判断挺恶心
===
运算符是判断左右两边值和类型是否都相等,强烈建议使用这个,精准!不容易出毛病
Javascript中的数据类型6种:
- number 数字类型
- string 字符串类型
- boolean 布尔类型
- object 对象类型
- function 函数类型
- undefined 未知类型
以下代码请放在js文件中运行,请打开浏览器F12开发者工具查看输出结果。
console.log(typeof(1));//输出number 数字类型
console.log(typeof(1.0));//输出number 也是数字类型 看来Javascript中所有数字是一个类型,不区分整数、浮点数什么的
console.log(1==1.0);//输出true,1和1.0值相等,毫无疑问
console.log(1===1.0);//输出true,1和1.0类型也相等,再次验证了Javascript中所有数字是一个类型
console.log(typeof(NaN));//输出number,NaN在Javascript中表示非正常的运算结果,既然是运算结果,也是数字类型范畴
console.log(isNaN("a"/3));//输出true,一个字符串除以3,结果不正常,
console.log(NaN==NaN);//两个不正常无法描述的数字,他们自己也不相等
console.log(typeof("1"));//输出string ,字符串类型,毫无技术含量
console.log(typeof(true));//输出boolean ,布尔类型真,表示判断为真
console.log(typeof(false));//输出boolean
console.log(typeof(null));//输出object,null表示一个空对象
console.log(typeof(new Object()));//输出object,一个正常对象
console.log(typeof({}));//输出object,一个正常对象,写法特殊了点
console.log(typeof({"a":"1"}));//输出object,一个正常对象,该对象拥有属性a
console.log(typeof({a:"1"}));//输出object,一个正常对象,该对象拥有属性a
// 注意:{"a":"1"}是标准的通过对象字面量定义对象的方法,但是Javascript语法中没有对属性名做强制要求必须添加引号,所以{a:"1"}这个写法也OK。可见Javascript自由度相当大
console.log(typeof(alert));// 输出function,这个是window.alert函数
function xxx(){}//自定义了一个函数
console.log(typeof(xxx));//输出function,毫无技术含量
console.log(typeof(yyy));//输出undefined,不知道yyy哪里来的,未知类型
zzz=1;
console.log(typeof(zzz));//输出number,数字类型,因为赋值过,所以Javascript很聪明的知道了数据类型,厉害