typeof 可返回的类型(6种)
number string boolean object undefined function
var num = 123;
console.log (typeof num); //控制台显示数据类型Number
2
typeof 的几个特例
null返回object
undefined返回undefined
typeof(abc) undefined
function(){}返回function
# 显示类型转换
(Number parseInt parseFloat string boolean tostring)
Number
var num = Number('123');
console.log (typeof(num) + " : " + num)
//字符串123转换成数字:123;
2
3
Number规律
number 千方百计的会转换为数字类型
ture 转换为1 false转换为0
undefined 为Nan
parseInt
var demo = "123.9";
var num = parseInt('demo',16); /* 16进制 */
console.log(typeof(num))
2
3
parseInt 规律
parseInt一定要转换为整型
true false 0 null 都是Nan
从数字位往后看一直看到非数字位截至
123.3 123abc 返回都是123
parseFloat
var demo = "123.9abcd";
var num = parseFloat('demo');
console.log(typeof(num)) //123.9
2
3
parseFloat 规律
转换为浮点型 从数字开始看 123.9 看到除了第一个点以外的非数字位
string
var demo = "123.9";
var num = string('demo');
console.log(typeof(num))
//转换为字符串 123.9 ---> "123.9"
2
3
4
boolean
var demo = "1";
var num = boolean('demo');
console.log(typeof(num))
//转换为布尔值,除了上面的其他6个类型都是ture,空串等都是false
2
3
4
tostring
null 和undefined都不可以用tostring
var demo = "10"
var num = demo.tostring(8);
//把10转换为8进制;
2
3
重点
parseint以目标进制转换为10进制 tostring以十进制为基底转换为目标进制
# 隐式类型转换
isNaN ()----> Number
consle.log(isNaN("abc"));
步骤
1.先会把里面的值取出来转换为number的值然后与NaN比较
2.Number('abc') NaN <---> NaN
3.输出true 否则false
4.null是false undefined是true
++/-- +/- --->number
步骤
+号调用的是string 当+号两侧有一个是字符串的话 他就会调用string把两个全部转换成字符串相拼接
-/ % number
总结
typeof(typeof(undefined)); 返回 String
里面的typeof返回的是字符串undefined,所以外面的typeof返回的是string
typeof返回的六种类型的值都是string字符串
typeof(a); 把未定义的变量返回当且仅当只有一种情况不报错 就是放到typeof里面 返回undefined
# 逗号操作符
会把逗号后面的值返回
var f = (
function f() {
return "1";
},
function g() {
return 2;
}
)();
console.log(typeof f);
//f 为 2 返回 number
2
3
4
5
6
7
8
9
10