JS中变量类型的转换

JS中变量类型的转换

JS数据类型

JS基本数据类型

number ; 数字类型

string;字符串类型

boolean:布尔类型。表示真true和假false;

null;null类型

undefined; undefined类型

JS引用数据类型

var arr = []; 数组
var obj1 = {}; 对象
var fn = function(){};函数

JS自动类型转换

自动类型转换也称隐式转换,是当不同类型的变量参与运算时,会自动触发的类型转换。

  //算数运算中,如果有一边是字符的纯数字,程序会自动把字符的纯数字转换成数字来运算
  alert("2"-"1");//2  string转换为number
  alert("1"-false);//1 string转换为number,boolean转换为number
  alert("1"-true);//0 string转换为number,boolean转换为number
  alert("1"-null);//1 null转换为number null为0
  alert(5-"3a");//NaN   除了加法以外,只要有一边不是一个纯数字,结果就是NaN
  alert(true+false);
  alert(true+null);
  alert("5"-0);//字符串5转换成了数字5
  undefined和NaN没有自动类型转换
  alert("1"-undefined);//NaN undefined没有转换
  alert(true+undefined);//NaN
  alert(true+NaN);//NaN
NaN:NaN是一个特殊值,这个值表示不是一个数字。
	数据类型是一个number类型
undefined:未定义类型

注:算数运算中,“+”左右两侧存在字符串时,实现字符串的拼接。

alert(9+"1");//91

JS强制类型转换

Number(); //方法功能是:把一个值转换成数字

console.log(Number(true)); //1.Boolean类型的true和false分别转换成1和0
console.log(Number(25)); //25,数值型直接返回
console.log(Number(null)); //0,空对象返回0
console.log(Number(undefined)); //NaN,undefined返回NaN
console.log(Number(""));//0
console.log(Number(" "));//0
console.log(Number("3a"));//NaN
console.log(Number("rw"));//NaN
console.log(Number(011));//9八进制转换成十进制数
console.log(Number(0xa));//10十六进制转换成十进制数
console.log(Number("0xa"));//10十六进制转换成十进制数
如果是字符串,应该遵循以下规则:
1, 只包含数值的字符串,会直接转成十进制数值,如果包含前导0,即自动去掉。
console.log(Number(“456”)); //456
console.log(Number(“070”)); //70
2,只包含浮点数值的字符串,会直接转成浮点数值,如果包含前导和后导0,即自动去掉。
console.log(Number(“08.90”)); //8.9
3,如果字符串是空,那么直接转成0.
console.log(Number(“”)); //0
4,如果不是以上三种字符串类型,则返回NaN。
console.log(“aa123“); //NaN

parseInt(); //功能是:把一个值转换成整数

alert(parseInt(“456zhou”)); //456,会返回整数部分
alert(parseInt(“Lee456zhou”));//NaN,如果第一个不是数值,就返回NaN
alert(parseInt(“12Lee56zhou”));//12,从第一数值开始取值,到最后一个连续数值结束
alert(parseInt(“56.12”)); //56,小数点不是数值,会被去掉
console.log(parseInt("0056"));//56
console.log(parseInt("0008.6730000"));//8
console.log(parseInt(true));//NaN
console.log(parseInt(false));//NaN
console.log(parseInt(null));//NaN
console.log(parseInt(undefined));//NaN
console.log(parseInt("")); //NaN,空值返回NaN
console.log(parseInt(" "));//NaN,空格返回NaN
console.log(parseInt("3a"));//3
console.log(parseInt("rw"));//NaN
console.log(parseInt("011"));//11
console.log(parseInt(011));//9 八进制转换成十进制数
console.log(parseInt(0xa));//10 十六进制转换成十进制数
console.log(parseInt("0xa"));//10 十六进制转换成十进制数
//ECMAScript为parseInt()提供了第二个参数,用于解决各种进制的转换,第二个参数是指定以什么进制来转换。
//方法中小括号放的内容叫参数,
console.log(parseInt("0001010",2));//指定以二进制来转换,转换成一个十进制的数
console.log(parseInt("070",8));//
console.log(parseInt("afeb",16));//

parseFloate() 把一个值转换成浮点数,和parseInt();用法类似,结果为小数。

toString() //方法可以把值转换成字符串。

var num = 10;
var val = num.toString();//用点的方式来调用执行一个方法,这是以后对象操作要学习的东西。

var num = true;//布尔值//可转成字符串的true
var val = num.toString();
console.log(val,typeof val);//将一个值转换成字符串

undefined和null类型无法调用toString()方法

var num = undefined;// Cannot read property 'toString' of undefined
var val = num.toString();
console.log(val,typeof val);//将一个值转换成字符串

发生错误
错误
toString()方法一般是不需要传参的,但在数值转成字符串的时候,可以传递进制参数。

var box = 10;
console.log(box.toString()); //10,默认输出
console.log(box.toString(2)); //1010,二进制输出
console.log(box.toString(8)); //12,八进制输出
console.log(box.toString(10)); //10,十坦白,输出
console.log(box.toString(16)); //a, 十六进制输出

Boolean() //把一个值转换成布尔值

console.log(Boolean(20));//true
console.log(Boolean(-20));//true
console.log(Boolean(0));//false
console.log(Boolean("kfwehf"));//true
console.log(Boolean(""));//false
console.log(Boolean(" "));//true
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
console.log(Boolean(NaN));//false
console.log(Boolean([]));//true
console.log(Boolean({}));//true
console.log(Boolean(function(){}));//true
//Boolean转换
//所有的非0的数字都是true ,0为false;
//所有的非空字符串都是true ,空字符串为false;
//null undefined NaN都是false;
//所有的引用数据类型的值都是true;
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20200711171139466.png#pic_center)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值