typeof 可返回的类型(6种)

number string boolean object undefined function

var num = 123;
console.log (typeof num);       //控制台显示数据类型Number
1
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;
1
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))
1
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
1
2
3

parseFloat 规律

转换为浮点型 从数字开始看 123.9 看到除了第一个点以外的非数字位

string

var demo = "123.9";
var num = string('demo');
console.log(typeof(num))
//转换为字符串  123.9 ---> "123.9"
1
2
3
4

boolean

var demo = "1";
var num = boolean('demo');
console.log(typeof(num))
//转换为布尔值,除了上面的其他6个类型都是ture,空串等都是false
1
2
3
4

tostring

null 和undefined都不可以用tostring

var demo = "10"
var num = demo.tostring(8); 
//把10转换为8进制;
1
2
3

重点

parseint以目标进制转换为10进制 tostring以十进制为基底转换为目标进制

# 隐式类型转换

isNaN ()----> Number

consle.log(isNaN("abc"));
1

步骤

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
1
2
3
4
5
6
7
8
9
10