typeof查看数据类型,以及类型转换

javascript 是一种即面向过程,又面向对象的语言 

typeof    能返回这6种数据类型   number string boolean object undefined function

null  -> object 

 

显示类型转换

 

转换为数字

var num = Number("a");

undefined 转换成数字,显示NaN(非数)

看起来不是数字的就不能转换成数字

 

转换为整型

var num = parseInt(demo);

 

var demo = "10";

var num = parseInt(demo, 16); 以目标机底为进制,转换成10进制

radix 2-36(进制)0

parseIint 的第二个功能,从前往后,遇到非数字进行砍断,并提取数字

例如:如下会输出123

var demo = "123abc";
var num = parseInt(demo);

 

parseFloat:看到除了第一个小数点,的数字进行返回

例如:会输出100.123

var demo = "100.123";
var num = parseFloat(demo);

 

String不管写什么东西都会转换成字符串

var num = String(demo);

 

Boolean除了6个特殊值,其他的都会转换成true

undefined null 0 -0 NaN  " "(注意最后一个是空字符串,不是空格字符串)

var num = Boolean(demo);

 

tostring转换为字符串的用法:

注意:有两个东西不能用tostring null与underfind

var demo = 123;
var num = demo.toString();

 

tostring另外一个用法:

以10进制为机底转换成目标进制的过程

var num = demo.toString(16);

 

例子:先将2进制10000通过使用parseint转换为10进制

再通过toString,将10进制转为16进制

var num = 10000;
var test = parseInt(num,2);
console.log(test.toString(16));

 

隐式类型转换

isNaN  通过Number类型转换后进行比对

console.log(isNaN("abc"));

做了以下两个步骤

先将“abc”字符串拿出来,转换为Number

再将转换的Number 与NaN进行比对

所以以上返回结果为true

 

++/-- 加加和减减

是通过先转换为Number,再进行加减

 

+/- 正负,也是通过调用Number显示类型转换

+ 加号 ,则是通过调用 string显示类型转换

 

-*/% 都是通过调用Number显示类型转换

 

&& || ! 都是通过boolearn显示类型转换

 

< > <= >= 

如果两边都是字符串,则是对比ASC码

如果一边是数字,一边是字符串,则会把字符串,调用Number显示类型转换后,再比大小

 

==  !=  

undefined不等于任何数

null 不等于任何数

所以 undefined == null  为true

注意:NaN 什么都不等于,甚至不等于自身  NaN == NaN 为false

 

有时候在开发时,不需要类型转换,就需要用到如下这两个了

===  绝对等于

==!绝对不等于

 

console.log(typeof(typeof(undefined)));

首先是里面的 typeof 将undefined转换为字符串undefined

然后再给外面的typeof

所以会返回string

 

null是唯一一个特殊值,是对象object

 

 

 

你可能感兴趣的:(typeof查看数据类型,以及类型转换)