JS数据类型转换

转布尔值

Boolean类型只有两个字面值:true和false。
在条件判断时会出现假的(false)情况为:“ ”,0,NaN,null,undefined,false,只有这几种情况转换为false;与之相反的,什么为真呢?其实除了假都是真,包括所有对象。

转字符串

  • toString()
    要把一个值转换为字符串有两种方式,第一种是使用几乎每个值都有的toString()。但是有一点需要注意的是nullundefined值没有这个方法。
var colors = ['red','blue','green'];
var num = 123;
var found = true;
console.log(colors.toString()); //"red,blue,green"
console.log(num.toString());    //"123"
console.log(found.toString());  //"true"
  • String()
    在不知道要转换的值是null或undefined的情况下可以使用转型函数String(),这个函数可以将任何值转换为字符串
var colors = ['red','blue','green'];
var num = 123;
var found = true;
console.log(String(colors)); // "red,blue,green"
console.log(String(num));    // "123"
console.log(String(found));  // "true"
console.log(String(null));  // "null"
console.log(String(undefined));  // "undefined"

转number数据类型

其他类型转number类型主要有Number(),parseFloat(),parseInt()这三种强制类型转换

  • Number()
    Number()属于严格转换。此方法转换较为严格,当全部为数字或者解析全部为数字时才会转换,出现非数字或者空格时返回NaN,当遇到空字符串、null或者布尔类型false时返回0,当遇到布尔类型true时返回1,遇到undefined时返回NaN。NaN的意思是not a number,不是一个数值,但是NaN属于number数据类型,NaN和谁都不相等,包括他自己。判断是否为非有效数字时用isNaN(),是非有效数字返回true,有效数字返回false
console.log(Number(123));   //123
console.log(Number('123')); //123
console.log(Number('123aa'));   //NaN
console.log(Number(''));   //0
console.log(Number([]));   //0
console.log(Number(null));   //0
console.log(Number(false));   //0
console.log(Number(true));   //1
console.log(Number(undefined));   //NaN
  • parseInt()
    该方法可以把其他数据类型转换为整数,只取整数部分,当遇到以非数字开头的数据类型时,返回NaN。
console.log(parseInt(123)); //123
console.log(parseInt(123.23)); //123
console.log(parseInt('123.23')); //123
console.log(parseInt('123aa')); //123
console.log(parseInt('.123aa')); //NaN
console.log(parseInt('abc')); //NaN
console.log(parseInt('abc123')); //NaN
  • parseFloat()
    parseFloat()和parseInt()都属于非严格转换,该方法是保留浮点数
console.log(parseFloat(123)); //123
console.log(parseFloat(123.23)); //123.23
console.log(parseFloat('123.23')); //123.23
console.log(parseFloat('123aa')); //123
console.log(parseFloat('.123aa')); //0.123
console.log(parseFloat('ab123.23aa')); //NaN
console.log(parseFloat('abc')); //NaN
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,711评论 0 13
  • 强制转换 强制转换主要指使用Number、String和Boolean三个构造函数,手动将各种类型的值,转换成数字...
    灯火阑珊Zone阅读 3,325评论 0 3
  • 前言 JavaScript是一门动态语言,所谓的动态语言可以暂时理解为在语言中的一切内容都是不确定的。比如一个变量...
    浪里行舟阅读 3,226评论 0 3
  • 第五章 一切从头 自从安亦卿第一次见到钟离瑭的那刻起,他便恋上了那种天真烂漫到幼稚的笑容,恋上了那种他从未拥有过的...
    Olivia主编君阅读 2,895评论 0 0
  • 红尘有多乱啊,没法跟你说 你受了多少苦啊,也不一定能解脱 你假装有准备,假装能找到我 其实我无踪影,只有风吹过 红...
    杂芰_阅读 2,934评论 0 0

友情链接更多精彩内容