经典面试题第十二更---valueOf和toString

前言:
    作者简介:我是Morning,计算机的打工人,想要翻身做主人
    个人主页:  Morning的主页
    系列专栏: 前端面试备战
    如果小编的内容有欠缺或者有改进,请指正拙著。期待与大家的交流
    如果感觉博主的文章还不错的话,点赞 + 关注 + 收藏
 

此篇博客是属于上篇博客在最后提出的遗留问题(toPrimitive算法逻辑中的valueOf和toString介绍)。本来是想等之后再去写这篇文章的,因为对这个知识点也不是那么了解,在网上查找的资料大多也都晦涩,很乱。

但是,不要拖延❗❗❗一起加油吧

目录

一.valueOf

1.定义

2.常用范围

二.toString

1.定义

2.常用范围

3.参数

4.补充知识String


 

一.valueOf

1.定义

JavaScript 中的 valueOf() 方法用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身。通常由JavaScript内部调用,而不是在代码中显式调用。

2.常用范围

可以用于引用类型(对象、数组、函数),返回对象本身;

console.log([1,2,3].valueOf()); //[1, 2, 3]
console.log({a:1}.valueOf()); //{a: 1}
console.log(function(){}.valueOf()); //ƒ (){}

也可以用于基本类型(数值、字符串、布尔值),还是返回基本类型。

null和undefined没有valueOf()方法                  Math 和 Error 对象没有 valueOf 方法。

let value1=10
let value2='susu'
let value3=true
let value4=null
let value5
console.log(value1.valueOf());//10
console.log(value2.valueOf());//'susu'
console.log(value3.valueOf());//true
console.log(value4.valueOf());//报错
console.log(value5.valueOf());//报错

二.toString

1.定义

将一个值转换为字符串有两种方式,几乎所有之都有的方法toString便是其中一种。这个方法的唯一用途就i是返回当前值的字符串等价物

        console.log('11'.toString());//'11'
        console.log(true.toString());//'true'

2.常用范围

toString方法常用于数值、布尔值、对象、字符串(字符串也是有toString()方法的,该方法只是简单的返回自身的一个副本)。null和undefined值没有toString方法

3.参数

多数情况下,toString不接受任何参数。但是在对数值调用toString时可以传入一个底数参数,即用什么底数来输出数值的字符串表示 。默认情况下返回数字的十进制字符串表示,通过传入参数,可以获得二进制、八进制、十六进制等等其他任何有效基数的字符串表示

       let num=10
       console.log(num.toString());//'10'
       console.log(num.toString(2));//'1010'
       console.log(num.toString(8));//'12'
       console.log(num.toString(10));//'10'
       console.log(num.toString(16));//'a'

4.补充知识String

String便是另外一种转换为字符串的方式。如果你不确定一个值时不是null或者undefined。

String遵循以下规则:

  • 如果值有toString方法,则调用toString(不传参数),并返回结果
  • 如果值时null,返回 ‘ null  ’
  • 如果是undefined,返回  ‘  undefined  ’
let value1=10
let value2=true
let value3=null
let value4
console.log(String(value1));//'10'
console.log(String(value2));//'true'
console.log(String(value3));//'null'
console.log(String(value4));//'undefined'

 这里展示了四种情况,一个数值、一个布尔值、一个null、一个undefined。

数值和布尔值的转换结果和调用toString方法相同;

null和undefined没有toString方法,所以String()方法就直接返回了两个值的字面量文本。

 

你可能感兴趣的:(javascript)