js数据类型

JavaScript中数据类型分为两大类,基本数据类型和复杂数据类型(引用数据类型)

基本数据类型有5种,Es6新增Symbol(暂时还没学Es6,手动滑稽)

Number
String
null
undefined
Boolean

Number:
由于内存的限制,存在最大数和最小数,可以通过Number.MAX_VALUE和Number.MIN_VALUE来查看。浏览器不同,返回的结果可能不同。当我们定义的数或者得到的变量超出最大数和最小数的限制,会返回 Infinity 或者 -Infinity。可以通过isFinite()函数来查看变量是否介于最大数或者最小数之间。

console.log(Number.MAX_VALUE);	//1.7976931348623157e+308
console.log(Number.MIN_VALUE);	//5e-324
			
console.log(Math.pow(10,400));//Infinity
			
var ini = Math.pow(10,400); 
console.log(isFinite(ini));//false

强制类型转换:有三个函数可以把非数值转换为数值类型:Number()、parseInt()和parseFloat().
Number()函数可以用于任何数据类型,其中需要注意的是:

console.log(Number(null));//0
console.log(Number(undefined));//NaN(not a Number)

另外两个函数专门把字符串变成数值。
parseInt()函数将字符串转化为整数,可以传入两个参数,第一个参数是要转换的值,第二个参数是按几进制转换,不传入则默认是十进制。

var str = '10';
console.log('结果为'+parseInt(str,2));	// 结果为2  (按二进制转换)

String:
toString ()方法,可以将值转换为字符串 。几乎所有的值都有toString()方法,null和undefined没有该方法。
调用toString()方法时,不需要传入参数,但是可以传入一个参数表示输出数值的进制数,默认为十进制。这在某些情况下是很有用的。

var num = 10;
console.log(num.toString(2));	//1010,该返回值是字符串类型
var a;
console.log(a.toString()); //报错,null调用toString()也会报错

前面提到 null 和 undefined 没有toString()方法,但是有些情况我们并不知道要转换的值是不是 null 或 undefined ,这时候我们可以使用 String() 函数。
调用 String() 函数的值遵循的规则就是如果该值有 toString() 方法,就调用它并返回相应的结果。如果值为 null ,则返回 ‘null’,如果值为 undefined,则返回 ‘undefined’.

var a ;
var num = 10;
console.log(String(num));//'10' 
console.log(String(a));//undefined
console.log(String(null));//null

String()方法会不会就像我下面写的呢(滑稽)

function str(obj){
				switch(obj){
					case null:
					obj='null'
					break;
					case undefined:
					obj='undefined'
					break;
					default:
					obj = obj.toString();
				}
				return obj;
			}

复杂数据类型:
基本数据类型的赋值操作是吧变量的值赋予另一个变量。所以一个变量的值赋予给另一个变量,其中一个变量改变,并不会以影响另一个变量。

var a =10;
var b = a;
 b = 20;
 console.log(a);//10

但是复杂数据类型并不是这样,复杂数据类型之所以又叫引用数据类型, 是因为引用数据类型的变量保存的是内存地址的引用。赋值操作就是将内存地址的引用赋予给另一个变量。所以改变其中一个变量,另一个变量会随之改变。

var obj = {};
obj.name = 'cxk';
var obj2 = obj;
obj2.name = 'dva';
console.log(obj.name);//dva
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值