JStypeof、类型转换

文章目录

typeof

number    string    boolean    object    undefined    function
var num = true;
console.log(typeof(num));
//boolean

var a =[];
console.log(typeof(a));
//object

var b = null;
console.log(typeof(b));
//object

var c = undefined;
console.log(typeof(c));
//undefined

var d = function () {};
console.log(typeof(d));
//function

var e = 123;
console.log(typeof(e));
//number

类型转换:

显示类型转换

Number(mix)    
parseInt(string,radix)    
parseFloat(string)    
toString(radix)    
String(mix)    
Boolean()
  1. Number(mix) 【转化数据为数字】
var num = Number('123');   //通过Number(),将字符串'123',转化为数字123
console.log(typeof(num) + ':' + num);
//number : 123
var num = Number(null);
console.log(typeof(num) + ':' + num)
//number : 0
var num = Number(undefined);
console.log(typeof(num) + ':' + num)
//number : NaN
var num = Number('a');
console.log(typeof(num) + ':' + num)
//number : NaN
  1. parseInt(string,radix) 【将数据转化为整形数据】
var num = parseInt(123.9);
console.log(typeof(num) + ':' + num)
//number : 123
var num = parseInt(undefined);   //null、string、function、true、false
console.log(typeof(num) + ':' + num)
//number : NaN
var num = parseInt('10',16);    //以16进制为基底,将‘10’转化为十进制的数,radix值为2 - 36
console.log(typeof(num) + ':' + num)
//number : 16
  1. parseFloat(string) 【将数据转化为浮点型数据】
var num = parseFloat('123.9asd');      //读到第一个小数点后的第一个非数字位停止
console.log(typeof(num) + ':' + num)
//number : 123.9
  1. toString(radix) 【将数据转化为字符串类型】
var demo = 123;
var num = demo.toString();
console.log(typeof(num) + ':' + num);
//string : 123
var demo = 123;
var num = demo.toString(2);    //将123转化为2进制,括号中为目标进制
console.log(typeof(num) + ':' + num);
//string : 1111011
  1. String(mix) 【将数据转化为字符串类型】
var str = String(123.9);      
console.log(typeof(str) + ':' + str)
//string : 123.9
  1. Boolean() 【将值转化为布尔类型】
var num = Boolean(true);   //123、'asd'、function(){}    
console.log(typeof(num) + ':' + num)
//Boolean : true
var num = Boolean(false);   //null、undefined   
console.log(typeof(num) + ':' + num)
//Boolean : true

隐式类型转换

isNaN()
++/--  +/-
+
- * / %
&& || !
< > <= >=
== !=
  1. isNaN() 【判断括号中数据是否为NaN】
调用isNaN()时,系统会将括号中的数据进行Number(),所得结果和NaN比较,并返回true或false
  1. ++/–
var a = '123';
a ++;
console.log(typeof(a) + ':' + a);
//number : 124
  • 在进行a ++时,系统进行Number(a),然后对数字123进行+1操作。
  1. +
var a = 'asd';
a = a + 1;
console.log(typeof(a) + ':' + a);
//string : asd1
当进行a = a + 1;时,系统调用String(a),然后对字符串asd进行+1操作,结果为asd1
  1. / % * -
var a = 'asd';
a = a * 1;
console.log(typeof(a) + ':' + a);
//number : NaN
当进行a = a * 1;时,系统调用Number(a),结果为NaN
  1. && || !
调用Boolean(),进行隐式类型转化
  1. < > <= >=
当字符串与数字类型比较,将字符串转化为数字,
  1. == !=
var a = 1 == true;
console.log(typeof(a) + ':' + a);
//Boolean : true
  1. === !== 【不发生隐式类型转换的绝对等于,绝对不等于】
长得一样返回true,长得不一样返回false
  • 注意:
console.log(undefined == null);
//true

console.log(NaN == NaN);
//false

console.log(typeof(typeof(a)));
//string
上一篇:二次注入攻击


下一篇:VsCode快捷键汇总(共123个)