美文网首页JS学习笔记
JS数据类型转换(2)

JS数据类型转换(2)

作者: zh2443 | 来源:发表于2018-10-23 21:46 被阅读0次

在上一篇的js数据类型转换(1)中,只考虑了基础数据类型之间的相互转换,未考虑对象和基础类型的转换,本篇做介绍。

基础类型转对象

基础类型可以通过对应的构造函数转换为对应的对象类型,不做赘述。

对象转基础类型规则

1. 对象转布尔

所有对象转换为布尔值时,结果都为true。

2. 对象转字符串

对象转换为字符串时,会先调用对象的toString()方法,如果该方法返回原始值,则返回该原始值的字符串值;如果没有toString()方法或者该方法返回的不是原始值,则会调用valueOf()方法,如果该方法返回原始值类型,则返回该原始值的字符串值;如果没有valueOf()方法或者该方法返回的不是原始值,则抛出类型异常的错误。

3. 对象转数值

对象转换数值时,逻辑与对象转字符串相似,只是会先尝试调用valueOf()方法,再尝试调用toString()方法。

上述规则中,如果对象有Symbol.toPrimitive属性的话,会优先调用,它的优先级最高。

隐式类型转换中对象转基础类型的规则

1. +

如果一个是对象,另一个是数字或字符串,则将对象转为原始值再计算(日期类型转为字符串,其他的先尝试调用valueOf()方法再尝试调用toString()方法转换为原始值);如果都是对象,则先尝试调用valueOf()方法再尝试调用toString()方法转换为原始值再计算。

2. -(一元运算符)

转换为数字再计算。

3. >,<,>=,<=,==

比较运算符两边都会转换为数字或者字符串进行比较。两边的任一对象都会先尝试调用valueOf()方法转换为原始值,再尝试调用toString()方法转换为原始值,如果原始值都是字符串类型,则进行字符串的比较;如果有一个为数字类型,则另一个也转换为数字,进行比较。

4. -,*,/,%

转换为数字进行计算。

相关文章

  • 2、强制数据类型转换

    数据类型转换: 在js中,数据类型的转换有两种,分别是自动转换和强制转换 自动转换: 自动转换是用JS进行某些操作...

  • JavaScript-数据类型及类型转换

    一、数据类型 二、类型转换 2-1、parseInt()类型转换 index.html index.js inde...

  • JS里的数据类型转换

    在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换。 1, 显式数据类型转换 a:转数字: 1)Numb...

  • javaScript中数据类型转换方法

    JS 数据类型转换 方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

  • 数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

  • JavaScript的显式转换和隐式转换

    js的显式转换和隐式转换都是数据类型的转换;js的数据类型是弱类型的,即可以给变量赋值为任意的数据类型,当进行运算...

  • JS隐式数据类型转换

    隐式数据类型转换介绍 前面有总结过 JS数据类型转换 Number(), toString(), parseInt...

  • JS的基本小结

    JS基本输出方式 JS数据类型 变量 常量 变量常量小练习 声明提前 隐式转换 显示转换/强制转换

  • JavaScript学习笔记.md

    学习材料————廖雪峰js教程 数据类型 ===与== == 自动转换数据类型再比较;=== 不转换类型 (更好...

  • JavaScript基础总结

    ✍目录总览:(JS概念与组成、JS格式规范、JS基本语法【输入、输出、变量、数据类型、数据类型转换、运算符、流程控...

网友评论

    本文标题:JS数据类型转换(2)

    本文链接:https://www.haomeiwen.com/subject/ijbnzftx.html