抽象轻松JavaScript

重磅推出3.0版本,valueOf()的全新3.0比较版本

更新内容,去除了枯燥的拆解流程,以目的实践为主,并且与tostring()目的相同对比

目的------取值!

valueOf()与toString()

两者的目的是相同的,区别于原理

前者返回原始值(全称原始类型的值------包括了数值,字符串,布尔),后者返回字符串

例子

javascript 复制代码
let i = 718;
    let z = "七月十八";
    console.log(typeof i,typeof z);//输出number,string
    console.log(typeof i.valueOf(),typeof i.toString());//输出number,string
    console.log(typeof z.valueOf(),typeof z.toString());//string string

    let arr =[1,2,3];
    let obj ={name : "秋刀鱼",sex : "鱼"}
    console.log(typeof arr,typeof obj);//object object
    console.log(typeof arr.valueOf(),typeof arr.toString());//object string
    console.log(typeof obj.valueOf(),typeof obj.toString());//object string

通过上面的例子你会发现,后者的tostring不管什么类型返回的都是字符型,而valueof()j就不会这样

上面的内容为第一点

第二点

使用限制

首先是valueOf(),如果对象,数组没有原始值(原始类型的值)那么就会返回本身

其次toString(),会发现,对象输出两个object字符串,而数组是内容

原因:这是toString()的一个机制,对obj的一个特殊的机制,是一个正常现象

PS:目前不做解决方案

javascript 复制代码
    let obj = {name :"秋刀鱼",Id :"1034"}
    console.log(obj.valueOf());//输出{name: '秋刀鱼', Id: '1034'}
    console.log(obj.toString());//[object Object]
    let arr = ["抽刀","断水"];
    console.log(arr.valueOf());//(2) ['抽刀', '断水']
    console.log(arr.toString());//抽刀,断水

小结:

两个的目的的都是取值,但是没办法直接作用于对象,数组(数组tostring可以)

有一些内置对象是可以通过这个来输出的!例如date()

相关推荐
fthux3 小时前
RenoPit 能为普通业主做什么?看懂图纸、审查合同,提前发现装修坑
javascript·人工智能·ai·开源·github·chrome扩展·open source·edge扩展·firefox扩展
仿生狮子4 小时前
✂️ Nuxt 最简单的字体裁剪工具:Fontize
javascript·vue.js·nuxt.js
魔力女仆8 小时前
分享一个 JS 鼠标跟随贪吃蛇背景库
开发语言·javascript·计算机外设
2401_894915539 小时前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
麻瓜老宋9 小时前
AI开发C语言应用按步走,表达式计算器calc的第二十二步,分号赋值链式修复、TOKEN_ASSIGN
c语言·开发语言·atomcode
别惊醒渔人9 小时前
Vue3 Diff 优化:最长递增子序列 LIS
前端·javascript·vue.js
Larcher10 小时前
从“加载模型”界面到端侧推理:拆解一个 React + WebGPU 大模型 Demo
javascript·后端
Larcher10 小时前
从状态快照到惰性初始化:读懂 React useState 的三个关键场景
javascript·人工智能·后端
颜x小11 小时前
[C#] C++与c#语法对比
开发语言·c++·c#
weixin_4236521311 小时前
C#使用JObject
开发语言·c#