JavaScript初学 学习笔记2:JavaScript隐式类型转化详解

前言

上一篇初步介绍了显显式类型转化
这一篇的隐式类型转化是承接上一篇的
JavaScript初学 学习笔记1:JavaScript变量,数据类型以及显式类型转换
隐式类型转化背后,内部调用的都是显式转化的方法

隐式类型转化

isNaN()

这个看看就懂了,其中内部进行了Number()的调用

console.log(isNaN(undefined));
console.log(isNaN(NaN));
console.log(isNaN("a"));
		
console.log(isNaN(null));
console.log(isNaN(false));
onsole.log(isNaN(true));
console.log(isNaN(123));
console.log(isNaN("123"));

JavaScript初学 学习笔记2:JavaScript隐式类型转化详解_第1张图片

“++”"- -""+""-"

加加,减减,一元正负运算
内部调用也是Number()

var a = "123";
a ++;
console.log(typeof(a) + " : " + a);

var b = "abc";
b --;
console.log(typeof(b) + " : " + b);

var c = null;
c ++;
console.log(typeof(c) + " : " + c);

var d = "a";
d = +d;
console.log(typeof(d) + " : " + d);

var e = "123";
e = -e;
console.log(typeof(e) + " : " + e);

JavaScript初学 学习笔记2:JavaScript隐式类型转化详解_第2张图片

“+”加号

加号有一点比较特殊,当加号两边有一侧是字符串的话,那么表达式得到的就是字符串,也就是隐式调用了String()

var a = "a" + 1;
console.log(typeof(a) + " : " + a); 

var b = 1 + "";
console.log(typeof(b) + " : " + b);

var c = null + "abc";
console.log(typeof(c) + " : " + c);

JavaScript初学 学习笔记2:JavaScript隐式类型转化详解_第3张图片

“-” “*” “/” “%”

减号,乘号,除号,mod,他们隐式调用的也是Number()

var a = "a" * 1;
console.log(typeof(a) + " : " + a); 

var b = 1 - "";
console.log(typeof(b) + " : " + b);

var c = "2" / null;
console.log(typeof(c) + " : " + c);

var d = "1" - 1;
console.log(typeof(d) + " : " + d);

JavaScript初学 学习笔记2:JavaScript隐式类型转化详解_第4张图片

&& || ! if()

与, 或, 非 ,if() 条件判断,均是调用给了Boolean()
这里就不做演示了

“>” “<” “>=” “<=”

比较大小的判断,若比较符两边有一个是数字,就会进行Number转化,同时返回boolean类型的值

var a = "a" > 1;
console.log(typeof(a) + " : " + a); 

var b = 1 < "";
console.log(typeof(b) + " : " + b);

var c = "2" > null;
console.log(typeof(c) + " : " + c);

var d = "1" > 1;
console.log(typeof(d) + " : " + d);

JavaScript初学 学习笔记2:JavaScript隐式类型转化详解_第5张图片

“==” “!=”

var a = "1" == 1;
console.log(typeof(a) + " : " + a); 

var b = 0 == "";
console.log(typeof(b) + " : " + b);

var c = 0 != null;
console.log(typeof(c) + " : " + c);

var d = 0 == false;
console.log(typeof(d) + " : " + d);

JavaScript初学 学习笔记2:JavaScript隐式类型转化详解_第6张图片
补充最特殊的:
null == undefined 结果为true
NaN == NaN 结果为false

最后,再来给你们看看一个东西吧
JavaScript初学 学习笔记2:JavaScript隐式类型转化详解_第7张图片
这个是为什么,就请自己思考了

Ps:若有错误或者不足,欢迎向我指出

你可能感兴趣的:(#,Javascript)