js数据类型

typeof操作符
var box;
alert(typeof box); //box是Undfined类型 值是undfined,类型返回的字符串是undfined

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box=true;
alert(typeof box); //box是Boolean类型 值是true,类型返回的字符串是boole

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box='sssss';
alert(typeof box); //box是String类型 值是'sssss',类型返回的字符串是string

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box=250;
alert(typeof box); //box是Number类型 值是250,类型返回的字符串是number

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box={}; //空的对象表示这个对象创建了,里面没东西;
var box=null; //空对象表示没有创建,就是一个null

var box = null; //这个表示,你还没有创建对象,但先声明了对象引用而必须初始化的结果
                     //你还没有来得及创建对象,先声明一个对象的变量放在那边,默认初始化
var box = null;
box={1:1};
alert(box);

var box;      //但是要区分null和初始化的情况,如果是创建变量但并没有初始化,那么变量的类型是Undfined,如果创建变量为null,则变量的类型是Object。

var box={}; 
alert(typeof box); //box是Object类型 值是[object Object],类型返回的字符串是object

var box=null;
alert(typeof box);//box是Null类型 值是null,类型返回的字符串是object

var box = {};
if(box != null)//不等于null,说明不是空对象
{
alert('对象已经创建成功')
}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function box()
{

}
alert(typeof box);//box是Function函数 值是function box(){},类型返回的字符串是function

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box = ''; //创建一个空字符串变量,可以用'';
var box = 0; //数值初始化,一般用0
var box = false; //布尔值初始化,一般一开始用false或者true

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

alert(undefined == null); //他们都是空的,所以相等理所当然。
alert(undefined === null); //数据类型也必须相等才可以。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box = '' //空字符串,所以打印出false
alert(typeof Boolean(box)); //显示转换数据类型必须指定Boolean()方法,

var box = 'ssss';
//隐示转换数据类型
if(box)
{
alert('真');
}else
{
alert('假');
}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

alert(Number.MIN_VALUE);//最小值
alert(Number.MAX_VALUE);//最大值

var box = -100e1000;//超过范围

alert(Number.POSITIVE_INFINITY);//正无穷
alert(Number.NEGATIVE_INFINITY);//负无穷

var box = 100e10;
alert(isFinite(box));//isFinite函数检查数值是否超过范围

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box = 0/0;
//在数学中第一个可以为零,第二个不可以为零。
alert(box);

alert(Number.NaN);
alert(NaN+1);
alert(NaN == NaN);
//任何涉及NaN的操作都会返回NaN

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

alert(isNaN(25)); //isNaN函数用于判断这个值是否为NaN,isNaN函数在接收到一个值之后,会尝试将这个值转换为数值,任何不能被转换为数值的值都会导致这个函数返回true.

var box = {
toString:function(){
return 123;
}
};
alert(isNaN(box));

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

//数值转换
//有3个函数可以把非数值转换为数值:Number(),parseInt()和parseFloat();
alert(Number(true)); //1,Boolean类型的true和false分别转换成1和0
alert(Number(25)); //25,数值型直接返回
alert(Number(null)); //0,空对象返回0
alert(Number(undefined)); //NaN,undefined返回NaN

//NUmber()方法转换字符串的规则
//1.只包含数值的字符串,会直接转成十进制数值,如果包含前导0,即自动去掉。
alert(Number('456'));
alert(Number('070'));
//2.只包含浮点数值的字符串,会直接转成浮点数值,如果包含前导和后导0,即自动去掉。
alert(Number('08.90'));
//3.如果字符串是空,那么直接转成0
alert(Number(''));
//4.如果不是以上三种字符串类型,则返回NaN。
alert('Lee123');
//5.如果是对象,首先会调用valueOf()方法,然后确定返回值是否能过转换成数值。如果转换的结果是NaN,则基于这个返回值再调用toString()方法,再测试返回值。
var box = {
toString:function(){
return '123'; //可以改成return 'Lee'查看效果
}
};
alert(Number(box));

//由于Number()函数在转换字符串时比较复杂且不够合理,因此在处理整数的时候更常用的是parseInt().
//parseInt(); 只能转换字符串至数值。
alert(parseInt('456sdf')); //会返回整数部分
alert(parseInt('Lee456Lee')); //如果第一个不是数值,就返回NaN
alert(parseInt('12Lee456Lee')); //从第一数值开始取,到最后一个连续数值结束
alert(parseInt('56.12')); //小数点不是数值,会被去掉
alert(parseInt('')); //空值返回NaN
//parseInt()除了能够识别十进制数值,也可以识别八进制和十六进制。
alert(parseInt('0xA')); //10,十六进制
alert(parseInt('070')); //56,八进制
alert(parseInt('0xALee')); //100,十六进制,Lee被自动过滤掉
//parseInt()提供了第二个参数,用于解决各种进制的转换
alert(parseInt('0xAF')); //175,十六进制
alert(parseInt('AF',16)); //175,第二参数指定十六进制,可以去掉0x前导
alert(parseInt('AF')); //NaN
alert(parseInt('101010101',2)); //314,二进制转换
alert(parseInt('70',8)); //56,八进制转换

//parseFloat()是用于浮点数值转换的,和parseInt()一样,从第一位解析到非浮点数值位置。

alert(parseFloat('123Lee')); //123,去掉不识别的部分
alert(parseFloat('0xA')); //0,不认十六进制
alert(parseFloat('123.4.5')); //123.4,只认一个小数点
alert(parseFloat('0123.400')); //123.4,去掉前后导
alert(parseFloat('1.234e7')); //12340000,把科学记数法转成普通数

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//String类型
var box="Lee";
var box2='Lee';
alert(box+box2);
//可以使用双引号或者单引号来表示
var box = 'Lee"; //引号必须成对出现
alert(box);

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box = 'Mr.';
box = box + ' Lee';
alert(box);
//字符串一旦创建,它们的值就不能改变,要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box = 11;
alert(typeof box.toString());
//toString()可以将数值转换成字符串

var box = true;
alert(box.toString()); //'true'转换成字符串true

//toString()方法一般是不需要传参的,但是在数值转换成字符串的时候可以传递参数
var box = 10;
alert(box.toString());
alert(box.toString(2)); //'1010'
alert(box.toString(8)); //'12'
alert(box.toString(10)); //'10'
alert(box.toString(16)); //'a'

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box = null;
alert(box.toString()); //toString不可以转型null或者undefined类型

var box = null;
var box;
alert(String(box)); //若要转换null,undefined类型,则使用String()强制性转换。

//如果值有toString()方法,则调用该方法并返回相应的结果;如果是null或者undefined,则返回“null”或者“undeinfe

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Object类型
var box = null; //创建一个空的对象
var box = {}; //对象字面量的创建方法
var box = new Object(); //通过new创建一个对象

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box = new Object(2);
var age = 100;
alert(box+age);
//Object里可以任意传参,数值,字符串,布尔值等。还可以进行相应的计算

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var box = new Number(60); //这种方法也是创建一个数值对象
alert(typeof box); //Object类型
//既然可以使用new Object()来表示一个对象,那么我们也可以使用这种new操作符来创建其他类型的对象。

 

转载于:https://www.cnblogs.com/zhengfuheidao/p/6655425.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值