经典面试题第十二更---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=10console.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()方法就直接返回了两个值的字面量文本。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/102369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda C版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda C版本源码编译教程前言准备工具cuda/cudnncmakeopencv4.8.0opencv_contrib CMake编译VS2019编…

文心一言 VS 讯飞星火 VS chatgpt (111)-- 算法导论10.2 2题

二、用go语言,用一个单链表 L实现一个栈。要求操作 PUSH和 POP 的运行时间仍为 O(1)。 文心一言: 在 Go 语言中,我们可以用结构体来实现一个单链表,然后再用栈的相关操作。 以下是一个可能的实现方式: package mai…

碰撞检测算法——分离轴算法在Unity中实现(二)

一、介绍 分离轴算法(简称SAT)通常用于检查两个简单多边形(凸边形)之间或多边形与圆之间的碰撞。本质上,如果您能够绘制一条线来分隔两个多边形,则它们不会发生碰撞,如果找不到一条线来分割两个…

力扣:129. 求根节点到叶节点数字之和(Python3)

题目: 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所…

《概念解析》内容汇总 + 导航

本目录基于《概念解析》专栏已发布的文章分类整理生成,包含无线感知、计算机视觉、深度学习等多个技术主题。 该专栏旨在结合前沿论文,为读者提供无线感知、人工智能(AI)、信号处理等领域相关概念的简明扼要的解释和介绍,致力于简洁清晰地解释、辨析复杂而专业的概念。通过对专…

STM32CubeMX使用

一、新建工程 首先,打开STM32CubeMX,第一次使用的朋友可以点击右侧的CHECK FOR UPDATE和INSTALL/REMOVE检查一下软件更新并且找到对应芯片的固件库然后下载,软件和固件库都推荐是使用最新版的,这里不多介绍。 完毕之后点击File-&…

信创之国产浪潮电脑+统信UOS操作系统体验4:visual studio code中怎么显示中文

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、引言 今天在vscode中打开以前的一段C代码,其中的中文显示为乱码,如图所示: 而在统信文本编辑器打开是正常的,打开所有菜单,没有找到相关配置…

《进化优化》第3章 遗传算法

文章目录 3.1 遗传学的历史3.2 遗传学3.3 遗传学的历史3.4 一个简单的二进制遗传算法3.4.1 用于机器人设计的遗传算法3.4.2 选择与交叉3.4.3 变异3.4.5 遗传算法参数调试 3.5 简单的连续遗传算法 遗传算法模仿自然选择来解决优化问题。 为研究遗传算法,得遵守自然选…

医疗产品方案|智能蓝牙血压计方案

智能蓝牙血压计主要测量指标分别为脉率,收缩压和舒张压。血压和脉率是临床医疗上血液动力学分析的重要指标。 智能蓝牙血压计整个方案采用SIC32F911RET6作为整机血压测量显示的控制芯片,通过单片机程序开发设计而成,主要组成结构是传感器、充…

进来了解实现官网搜索引擎的三种方法

做网站的目的是对自己的品牌进行推广,让越来越多的人知道自己的产品,但是如果只是做了一个网站放着,然后等着生意找上门来那是不可能的。在当今数字时代,实现官网搜索引擎对于提升用户体验和推动整体性能至关重要。搜索引擎可以帮…

深入理解强化学习——标准强化学习和深度强化学习

分类目录:《深入理解强化学习》总目录 强化学习的历史 早期的强化学习,我们称其为标准强化学习。最近业界把强化学习与深度学习结合起来,就形成了深度强化学习(Deep ReinforcemetLearning)。因此,深度强化…

代理IP、Socks5代理与网络工程:解析技术世界的无限可能

在当今数字化的世界中,网络工程师不仅需要保证网络的稳定性,还要应对多样的技术挑战。代理IP和Socks5代理技术已经成为网络工程师工具箱中不可或缺的利器,在跨界电商、爬虫、出海、网络安全、游戏等领域发挥关键作用。本文将深入探讨这两项技…

试图带你一文搞懂transformer注意力机制(Self-Attention)的本质

这篇文章主要想搞懂以下几个问题: 1、什么是自注意力(Self-Attention) 2、Q,K,V是什么 好了废话不多说,直接进入正题 Q,K,V分别代表query,key和value,这很容易让人联想到python的字典数据结构&#xff…

记一个带批注、表头样式的导入导出excel方法(基于easyexcel)

技术栈:easyexcel-2.2.10,poi-4.1.2,lombok,hutool-5.8.19;公司自用导入导出方法,可能不是那么的优雅,但胜在稳定实用。 /*** Author 955* Date 2023-10-10 11:52* Description 错误批注信息对…

superset支持Kylin4.0.0(兼容处理日期分组功能)

问题总结 1. superset默认不支持kylin数据源 安装kylinpy pip install kylinpy 2. 安装kylin驱动后,无法连接kylin地址 修改site-packages/kylinpy/sqla_dialect.py文件 2.1 注释一下内容 #def _compose_select_body(self, text, select, inner_columns, froms, byfrom, …

Ghidra101再入门(上?)-Ghidra架构介绍

Ghidra101再入门(上?)-Ghidra架构介绍 最近有群友问我,说:“用了很多年的IDA,最近想看看Ghidra,这应该怎么进行入门?“这可难到我了。。 我发现,市面上虽然介绍Ghidra怎么用的文章和书籍很多&…

C++ 使用Windows的API CreateDirectory 创建多层级文件夹

简介 使用Windows的API创建多层级文件夹 效果 代码 #include <windows.h> #include <direct.h> #include <iostream> #include <string> #include <sstream> #include <vector> //创建多层级文件夹 bool CreateDir(const std:…

【算法-动态规划】0-1 背包问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

APT攻击与零日漏洞

APT攻击 当谈到网络安全时&#xff0c;APT&#xff08;高级持续性威胁&#xff09;攻击是最为复杂和难以检测的攻击类型之一。APT攻击通常涉及到高度的技术和策略性&#xff0c;而且它们的目标是深入地渗透和长时间地隐藏在目标网络中。 1. 什么是APT攻击&#xff1f; 高级持续…

【思维构造】Element Extermination—CF1375C

Element Extermination—CF1375C 参考文章 思路 若 a 1 < a n a_1<a_n a1​<an​&#xff0c; 初始时 a 2 , . . . , a n − 1 a_2, ..., a_{n-1} a2​,...,an−1​ 这 n − 2 n-2 n−2 个元素中大于 a 1 a_1 a1​ 中的元素都能通过 a 1 a_1 a1​ 而被删除&…