犀牛书3.8.3对象转化为原始值
对象到布尔值的转换非常简单:所有对象(包括数组和函数)都转化为true。
字符串和数字的转换规则只适用于本地对象(native object)。
宿主对象(例如,由web浏览器定义的对象)根据各自的算法转换为数字和字符串。
所有的对象继承了两个转换方法。
第一个是toString()
他的作用反应对象的字符串。例子如下:
({x: 1, y: 2}).toStriong() //=>"[object object]"
很多类定义了toString()
方法列如
数组类(Array class)方法是将每个数组的元素转换为一个字符串,在元素间添加逗号再合成
函数类(Function class)将用户定义的函数转换为Javascirpt源代码字符串
日期类(Date class) 返回一个可读的日期时间类
RegExp类(RegExp class)RegExp对象转换为表示正则表达式直接量的字符串。
代码如下:
[1,2,3].toString() // =>"1,2,3"
(function(x){f(x);}).toString() // =>"funcction(x){ \n f(x); \n}"
/\d+/g.toString() // =>"/\\d+g"
new Date(2010,0,1).toString() // =>"fri jan 01 2010 00:00:00 GMT-0800(PST)"
另一个转换对象函数是valueOf()
对象是复合值,而且大多数无法正常表示一个原始值,因此默认简单的返回对象那本身。例子如下:
var d = new Date(2000, 0, 1); //2010年1月1日
d.valueOf() //=> 12630........
通过刚刚使用的toString() valueOf()
就可以做到对象到字符串的对象到数字的转换了。
javascirpt中对象到字符串的转换经过以下步骤:
- 对象具有
toString()
方法,则调用这个方法。如果返回一个原始值,javascirpt将在这个值转换为字符串。 - 对象没有
toString()
方法,或者这个方法并不返回一个原始值,那么javascirp会调用valueOf()
方法 - 否则javascirpt无法从
toString() valueOf()
获取原始值,因此这是他会抛出一个类型错误异常。
对象到数字的过程,首先使用valueOf()
- 对象具有
valueOf()
方法,返回一个原始值,将这个原始值转换为数字并返回这个数字。 - 否则,javascirpt抛出一个类型错误异常
下面代码展示了日期对象和 “+” “-” “== ” 以及 “>” 的运行结果
var now = new Date(); //创建一个日期对象
typeof(now + 1) //=>"string";“+"将日期转换为字符串
typeof(now - 1) //=>"number": "-"使用对象到数字的转换
now == now.toString() //=>true: 隐式的和显示字符串的转换
now > (now -1) //=>true: ">"将日期转换为数字
犀牛书3.8.3对象转化为原始值相关推荐
- 犀牛书读书笔记-01
第一章,概述 这章是综述性质的,作者随意的给出了一些例子. 1. visibility = hidden, display = none. function hide (e, reflow) {if ...
- js犀牛书,学习心得笔记(一)
最近每天都抽出时间看犀牛书,明显可以感觉到和以前看的时候有差别,阅读能力和心得有了很大的提升,以前不明白的一些知识点,还有一些隐藏在细节中的知识,现在都可以领悟到了. 1.包装对象 暂时性的包装对象 ...
- javascript犀牛书_犀牛书作者:最该忘记的JavaScript特性
作者: 李松峰 转发链接:https://mp.weixin.qq.com/s/guAN1Cz2gYfKdBhmUpLyVA 前言 JavaScript这门语言的第一个演示版差不多就在25年前诞生. ...
- JavaScrpit 犀牛书第七版笔记
JavaScrpit 犀牛书第七版笔记 挖个坑吧,JavaScript 犀牛书英文的第七版(JavaScript: The Definitive Guide, 7th Edition)其实在去年(20 ...
- Javascript学习笔记(犀牛书1、2章)
引子:本来一直在做尚品汇的Vue3项目的,在前期基础的积淀下做项目其实已经没什么难点了,但是最近出差网络很差,没法弄,为了把出差的空余时间利用起来,正好把基础再练习一下,之前我学python的时候是把 ...
- 牛年到! “犀牛书”最新版还远嘛?
"犀牛书"凭着完整的内容.细致的讲解以及海量针对性的示例而受到全球读者的一致好评,经过几代前端人的口口相传,成为名副其实的JavaScript权威指南!至今它仍保持着生命力,影响着 ...
- 犀牛书第2章 JavaScript词法结构
程序设计语言的词法结构是一套基本规则,用来详细说明如何使用这种语言来编写程序.它是一种语言的最低层次的语法,指定了变量名是什么样的,注释应该使用什么字符以及语句之间如何分隔等规则. 1. 字符集: J ...
- 犀牛书作者:最该忘记的JavaScript特性
编者按:本文译者李松峰,资深技术图书译者,翻译出版过40余部技术及交互设计专著,现任360奇舞团Web前端开发资深专家,360前端技术委员会委员.W3C AC代表. 原文:https://davidf ...
- 《JavaScript 权威指南》犀牛书阅读详解
前言: <JavaScript 权威指南>(JavaScript:The Definitive Guide)是一本由David Flanagan所著的JavaScript领域的经典书籍,它 ...
最新文章
- 字符间距加宽5磅怎么设置_11层以下住宅小区——消防车道设置及答疑
- MySQL中的blob和clob
- Java虚拟机学习集锦是我攒来的,带你碾压面试官!
- Android开发之AudioManager(音频管理器)详解
- vsCode实现美化代码
- AdminLTE登录页设置背景图片
- ruby on rails 分页gem kaminari,指定页码跳转
- Adaptive Graph Convolutional Neural Networks
- Method threw ‘feign.codec.DecodeException‘ exception.
- 网站漏洞检测之常见安全问题
- vue组件读取static文件夹内json文件的图片路径问题
- Vue中使用SVG-ICON
- Linux命令----压缩解压缩
- 消息队列常见的几种使用场景介绍!
- with root cause 解决办法
- android视频动态壁纸app,视频动态壁纸app下载-视频动态壁纸app安卓版下载V1.0安卓版 - 非凡软件站...
- 常见电路、元器件汇总
- android面试手册
- 100多个神奇网站,学习娱乐大全,总有一款适合你。。。
- thingsboard | thingsboard edge 删除设备 云端同步删除 thingsboard edge删除设备后 云端不删除设备
热门文章
- mysql 5.5.48源码安装_centos5.5+apache2.2.15+mysql5.1.48+php5.2.13 编译安装 --by 画符抓鬼撰聊斋.doc...
- 保姆级——Java调用百度OCR实现身份证识别
- 今天太阳了一条狗!大悲咒走起
- CSS中的子绝父相布局
- 三维可视化的优势是什么?三维园区可视化,三维可视化展示
- python3中urllib库_Python--urllib3库详解
- 【微服务】 网关启动报错 Consider defining a bean of type org.springframework.http.codec.ServerCodecConfigurer
- IPFS微信指数日环比上升64.38%,OKEx徐坤:危险与机遇并存
- Python菜鸟起飞day11_ 线程、进程、协程(一、多线程)
- 【参赛作品88】【我和 openGauss 的故事】之 21 天学习总结