js数据类型转换

时间:2019-12-28   访问量:46

  Tostring

  toString() 方法返回一个表示该对象的字符串。

  每个对象都有一个toString()方法,当该对象被表示为一个文本值时,或者一个对象以预期的字符串方式引用时自动调用。默认情况下,toString()方法被每个Object对象继承。如果此方法在自定义对象中未被覆盖,toString() 返回 “[object type]”,其中type是对象的类型。

  todo

  从JavaScript1.8.5开始toString()调用 null返回[object Null],undefined 返回[object Undefined]

  Number对象覆盖了Object对象上的toString方法,不是直接继承的Object.prototype.toString

javascript-illustration.png

  转换的基数(2到36),未指定的情况下默认为10,不在范围之内将抛出一个RangeError

  当要转换的值是负数的时候,结果会保留负号

  数组toString()方法返回表示指定数组及其元素的字符串。

  toString方法连接数组并返回一个字符串,其中包含用逗号分隔的每个数组元素。

  ToNumber

  将非数字值转换为数字值

  在转换对象时,会先转换为对应的基本类型值,当返回非数字的基本类型值,在进行进一步的转换,转换规则如下

  Number('23') //23
  Number('12f') //NaN
  Number(true) //1
  Number(false) //0
  Number(undefined) //NaN
  Number(null) //0
  Number(['23']) //23
  Number({}) //NaN

  ToPrimitive

  Symbol.toPrimitive 指将被调用的指定函数值的属性转换为相对应的原始值。

  Symbol.toPrimitive 属性可以将一个对象转换为原始值。该函数由字符串参数 hint 调用,目的是指定原始值转换结果的首选类型。 hint 参数可以是number,string, 和 default 中的一种。

  在没有Symbol.toPrimitive的时候,会首先检查对象是否有valueOf方法,如果存在并且返回值为基本类型则使用此方法,否则继续查看对象是否存在toString方法,如果存在并且返回值为基本类型则使用此方法,否则将抛出TypeError

  // MDN的示例
  // 没有 Symbol.toPrimitive 属性的对象
  var obj1 = {};
  console.log(+obj1); // NaN
  console.log(`${obj1}`); // "[object Object]"
  console.log(obj1 + ""); // "[object Object]"
  // 拥有 Symbol.toPrimitive 属性的对象
  var obj2 = {
  [Symbol.toPrimitive](hint) {
  if (hint == "number") {
  return 10;
  }
  if (hint == "string") {
  return "hello";
  }
  return true;
  }
  };
  console.log(+obj2); // 10 -- hint is "number"
  console.log(`${obj2}`); // "hello" -- hint is "string"
  console.log(obj2 + ""); // "true" -- hint is "default"

  toBoolean

  将JavaScript值转换为布尔值。

  转换规则如下

  //以下情况为false
  Boolean('') //false
  Boolean(+0) //false
  Boolean(-0) //false
  Boolean(NaN) //false
  Boolean(undefined) //false
  Boolean(null) //false
  Boolean(false) //false

  显式类型转换

  显式强制类型转换是通过显而易见的、目的明确的代码将数据进行强制类型转换。

  字符串和数字之间是通过String()和Number()来进行呼吸那个转换的

  String()按照ToString规则,将值转换为字符串基本类型。

  Number()按照ToNumber规则,将值转换为数字基本类型。

  +运算符可以显式的将字符串或者日期转换为数字

  !!显式的将类型转换为布尔值


【地址】:http://www.inseo.cn/seo/55.html转载请注明出处


相关文章
DOM基础之插入元素(JS···

  JS插入元素有两种方法  1 appendChild()  2 insertBefore()  ···

for循环里的定时器引发···

  在学习js的时候,或者面试的时候,会经常碰到这一道经典题目:  for(vari=0;i<···

Javascript中while和i···

  大树最近在Javascript的一个学习案例中发现while条件和if条件还是有一些区别的,之前···

常用正则表达式汇总

  记录一些常用的正则表达式,也可以提高一下工作效率嘛  正则表达式基本语法  格式:re=new ···



Copyright © 2018-2020 大树SEO All Rights Reserved.