JavaScript的类型转换---隐式类型转换

js中的变量是没有数据类型 但是变量的值有数据类型

数据类型

基本数据类型:number、string、boolean、null、undefined
引用数据类型:array、function、object 等等
typeof检测是数据类型有:number、string、boolean、undefined、object、function

隐式类型转换(自动转换)

1.string + numbre 字符串和数字 = 字符串(只有加法才可以)

var a = 100,
	b= '100';

console.log(a + b);  	// '100100'
console.log(a - b);  	// 0
console.log(a * b);  	// 10000
console.log(a / b);  	// 1
console.log(a % b);  	// 0
  1. string + boolean 字符串和布尔 = 字符串
var a = '100',
	b = true,
	c = false;

console.log(a + b);  	// '100true'
console.log(a + c);  	// '100false'
  1. string + unll , string + undefined 空和未定义与字符串都 = 字符串
var a = '100',
	b = null,
	c;

console.log(a + b);  	// '100null'
console.log(a + c);  	// '100undefined'

总结:任何一个种数据类型,在于string做“+”运算时,都会将其转换为string,再做拼接
4. number + boolean 数字+布尔 = 数字

var a = 100,
	b= true;
	c = false;

console.log(a + b);  	// 101
console.log(a - b);  	// 99
console.log(a * b);  	// 100
console.log(a / b);  	// 100
console.log(a % b);  	// 0
console.log(a + c);  	// 100
console.log(a - c);  	// 100
console.log(a * c);  	// 0
console.log(a / c);  	// Infinity
console.log(a % c);  	// NaN

5.number + (unll || undefined)

var a = 100,
	b = null,
	c;

console.log(a + b);  	// 100
console.log(a + c);  	// NaN
  1. boolean + unll 、 boolean + undefined = NaN
var a = true,
	b= null,
	c;

console.log(a + b);  	// 1
console.log(a + c);  	// NaN
console.log(null == null);  // true
console.log(undefined == null);  // true
console.log(undefined == undefined);  // true

看奇葩的NaN

console.log(NaN == 0);  //false
console.log(NaN == 1);	//false
console.log(NaN == true);	//false
console.log(NaN == false);	//false
console.log(NaN == null);	//false
console.log(NaN == undefined);	//false
console.log(NaN == NaN);	//false
发布了43 篇原创文章 · 获赞 3 · 访问量 1141

猜你喜欢

转载自blog.csdn.net/qq_45007419/article/details/103642534