js中typeof,类型转换
javascript是一种半面向过程,半面向对象的写法。
typeof是一个运算符,返回的数据类型有六种,number、string、boolean、undefined、object、function。
typeof怎么用?
tyepof 有两种表达方式,typeof(表达式)和typeof 变量名,第一种是对表达式做运算,第二种是对变量做运算。
例子
var num = 123;
console.log.(typeof(num));//console.log(typeof num);一样的效果
//返回的数据类型就是num的数据类型,这里是返回number
var num ={};
console.log.(typeof(num));
//返回object,泛泛的引用值,包括数组,null(原始值)返回都是object
类型转换
1.显示类型转换
Number(mix); 转换成数字
parseInt(string,radix); radix的取值范围2-36 转换成整形
parseFloat(string);
toString(mix); undefined、null不能用tostring
String(mix)
Boolean();
例子
var demo = "10";
var num = parseInt(demo, 16);
console.log(typeof(num) + ":" + num);
//以目标进制(16进制)为基底,转换为10进制
//parseInt从数字位开始看,遇到非数字位就会返回。
var demo = "10";
var num = demo.toString(8);
console.log(typeof(num) + ":" + num);
//以10进制为基底,转换为目标进制(8)进制
2.隐式类型转换
isNaN();
判断一个数据是否是NaN,如果给定值为NaN ,则为true; 否则为,false。
//在内部调用number方法
console.log(isNaN("abc"));//true
console.log(isNaN("123c"));//false
console.log(isNaN(null));//flase. number中null=0
console.log(isNaN(undefined));//true
++/-- 、+/-(一元正负)
//运算符内部会隐式调用Number()
var a = "abc";
console.log(a + ":" + typeof(a));
//NaN :number
+
var a = "a" + 1;
console.log(a + ":" + typeof(a));
//+运算符内部会隐式调用String() 如果要转为字符串类型的,一个比较简单的方法,可以空字符串 "" + '要转换的数据',就自动转为字符串类型。
- * / %
//运算符内部会隐式调用Number()
var a = "a" * 1;
console.log(a + ":" + typeof(a));
// NaN : number
&& || !
//内部会隐式调用Bollean()
< > <= >= == !=
//内部会隐式调用Bollean()
undefined == null
//true
NaN == NaN
//false
不发生类型转换
=== 、!==
1 !== "1" //true
1 !== 1 //false
注意:typeof一个没有定义的变量,返回undefined。