ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

js中的进制类型转换

2021-04-13 20:02:49  阅读:175  来源: 互联网

标签:类型转换 console log undefined number js Boolean typeof 进制



强制类型转换
-指将一个类型强制转换为其他的数据类型
-类型转换是指,将其他数据类型,转换为
string number boolean
 将其他类型转换为string
*
方式一
调用被转换类型的toString方法,该方法不会影响原变量,会将转换的结果进行返回
但是注意null和undefined这两个值没有tostring方法
如果调用会报错

方式二
调用string()函数
对于number 和boolean 实际上就是调用的toSting()方法
但是对于null和undefined,就不会调用toString()方法
它会将null 直接转为‘null’
将undefined 直接转为‘undefined’
*/
var a = 123;
var b =a.toString();
console.log(a); //数字123
console.log(typeof a);//number
console.log(b); //字符串123
console.log(typeof b); //string
a = true;
a = a.toString();
console.log(a); //true
console.log(typeof a); //string
a = null;
// a.toString();//报错
console.log(typeof a);//object
a = undefined;
// a.toString();//报错
console.log(typeof a);//undefined
a = 123;
a= String(a);
console.log(a); //字符串123
console.log(typeof a); //string
a = null;
a=String(a);
console.log(a); //null
console.log(typeof a); //string

a = undefined;
a = String(a);
console.log(a); //undefined
console.log(typeof a); //string
a=String(a);
console.log(a); //true
console.log(typeof a);//string
将其他数据类型转换为number

/*
     转换方式一
使用Number()函数
-字符串--->数字
1.如果是纯数字的字符串,则直接将其转换为数字
2.如果字符串中有非数字的内容,则转换为NAN
3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
-布尔--->数字
true -->1
false -->0
- null -->数字0
- undefined -->NAN
转换方式二
parseInt() -->转换成整数
parseFloat() -->转换成浮点数
调用parseInt()函数将a转换成Number
parseInt()可以将一个字符串中开头的有效整数内容取出来,
转换成Number
如果对非string使用parseInt()或parseFloat()
它会先将其转换为string然后再操作
*/
var a ="123";
a = Number(a);
console.log(a); //数字123
console.log(typeof a);//number
a = "abc1";
a = Number(a);
console.log(a); //NaN
console.log(typeof a); //number
a = " ";
a = Number(a);
console.log(a); //0
console.log(typeof a); //number
a = true;
a = Number(a);
console.log(a); //1
console.log(typeof a);//number
a = null;
a = Number(a);
console.log(a); //0
console.log(typeof a); //number
a = undefined;
a = Number(a);
console.log(a); //NaN
console.log(typeof a); //number
a = "123px";
a = parseInt(a);
console.log(a); //123
console.log(typeof a); //number
a = "123.456px";
a = parseFloat(a);
console.log(a); //123.456
console.log(typeof a); //number

将其他数据类型转换为Boolean
/**
*
* -使用Boolean()函数
* -数字--->布尔
* -除了0和NaN,其余的都是true
* -字符串--->布尔
* -除了空字符串,其余的都是true
* -null 和 undefined --->布尔
* -都会转换为false
* -对象也会转换为true
*/
//数字转boolean
var a =123;
console.log(a); //123
console.log(typeof a); //number
a= Boolean(a);
console.log(a); //true
console.log(typeof a); //boolean
a = -123;
a = Boolean(a);
console.log(a);//true
console.log(typeof a);//boolean
a = 0;
a = Boolean(a);
console.log(a);//false
console.log(typeof a);//boolean
a = Infinity;
a = Boolean(a);
console.log(a);//true
console.log(typeof a);//boolean
a = NaN;
a = Boolean(a);
console.log(a);//false
console.log(typeof a);//boolean
//字符串转boolean
a ="hello";
a=Boolean(a);
console.log(a); //true
console.log(typeof a); //boolean
a ="true";
a=Boolean(a);
console.log(a); //true
console.log(typeof a); //boolean
a="false";
a=Boolean(a);
console.log(a); //true
console.log(typeof a);//boolean
a="错误";
a=Boolean(a);
console.log(a); //true
console.log(typeof a);//boolean
a="";
a=Boolean(a);
console.log(a); //false
console.log(typeof a);//boolean
a=" ";
a=Boolean(a);
console.log(a); //true
console.log(typeof a);//boolean
//null
a = null;
a = Boolean(a);
console.log(a);//false
console.log(typeof a );//boolean
//undefined
a = undefined;
a = Boolean(a);
console.log(a);//false
console.log(typeof a );//boolean
a = {};
a = Boolean(a);
console.log(a);//false
console.log(typeof a );//boolean
其他进制转换
/* 在js中,如果需要表示16进制的数字,则需要0x开头
如果需要表示8进制的数字,则需要以0开头
**/
//十六进制
a = 0x10;
console.log(a);
a = 0xff;
console.log(a);
//八进制
a = 0o70;
console.log(a);
//二进制
a = 0b10;
//像"070"这种字符串,有些浏览器会当成8进制解析,
//有些会当成10进制解析
a ="070";
//可以在parseInt()中传递一个第二个参数,来指定数字的进制
a = parseInt(a,10);
console.log(a);
console.log(typeof a);


标签:类型转换,console,log,undefined,number,js,Boolean,typeof,进制
来源: https://www.cnblogs.com/nablog/p/14654953.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有