-强制类型转换为String

1、方式1 调用被转换数据的toString()方法

number类型值、布尔类型值、都可以调用toString()方法强制转换。但是null值和undefined值不行,这两个类型的值没有toString()方法。

补充一下toString方法的知识,其实还可以当一个简单的进制转换器,因为是初学阶段,所以对于这个方法的学习后续再继续补充。

十进制装换为其他进制。

.toString(2)表示转换为2进制

.toString(8)表示转换为8进制

.toString(16)表示转换为16进制

2、方式2 调用String()函数。将要转换为string类型的值用作函数的参数。

对于number boolean string类型的值都会调用他们的toString()方法来将其转换为字符串,就和 方式1 其实是一样的。
对于null值,直接转换为字符串"null",对于undefined直接转换为字符串"undefined"。

3、方式3 (隐式类型转换) 任意的数据类型 +"",浏览器自动完成,实际上也是调用String()函数。

-强制类型转换为Number

1、方式1 调用被转换数据的toNumber()方法?错错错!,根本没有toNumber()这个方法。只有Number()函数。

字符串 --> number

- 如果字符串是一个合法的数字,则直接转换为对应的

- 如果字符串是一个非法的数字,则转换为NaN

- 如果是一个空串或纯空格的字符串,则转换为0

2、方式2 其实这个可以算是专门为string类型转换为number而设计的。调用parseInt()parseFloat()函数。

parseInt()可以将一个字符串中的有效的整数位提取出来,并转换为Number

parseInt()函数从左往右识别,一旦遇到非数字的就不会再识别下去了,而且只要整数部分。例如这样:

parseFloat()顾名思义,能够提取浮点数,除了这一点都和上面的情况一样。

有没有想过,如果这两个函数碰到非字符串类型的值,会怎么样呢?试着将一个boolean型或者undefined类型的值放进去。

最后的结果都是NaN,其实这两个函数在碰到到非string类型的值得时候(不止boolean,undefined,number也一样),都会先将他们转换为string类型,然后再转换为number类型,其实就是比Number()函数多了转换为string这一步。

要注意的一些其他知识,在JS中,0x开头的数字表示十六进制,0开头的表示八进制,0b开头的表示二进制。如果使用parseInt("070"),某些浏览器可能会得出一个56的结果,弄成了八进制,所以可以传递第二个参数表示进制,比如parseInt("070",10),这种情况出现得不多,了解即可。

布尔值 --> number
- true转换为1
- false转换为0
空值 --> number
- null转换为0
未定义 --> number
- undefined 转换为NaN

-强制类型转换为Boolean

1、方式1 使用Boolean()函数。

字符串 --> 布尔
- 除了空串其余全是true
数值 --> 布尔
- 除了0和NaN其余的全是true
null、undefined ---> 布尔
- 都是false

对象 ---> 布尔
- 都是true

JavaScript学习系列博客_5_JavaScript中的强制类型转换的更多相关文章

  1. JavaScript学习系列博客_4_JavaScript中的数据类型

    JavaScript中有6种数据类型 一.基本数据类型 - String 字符串 JS中的字符串需要使用引号引起来双引号或单引号都行 但是要注意的是某种引号嵌套使用的话,需要加上 \ 转义.比如说我们 ...

  2. JavaScript学习系列博客_19_JavaScript中方法(method)

    方法 - 听了不少调用什么什么方法,所以方法究竟是啥东西? - 如果一个函数作为一个对象的属性保存,那么我们称这个函数时这个对象的方法,调用这个函数就说调用对象的方法(method). 创建一个对象 ...

  3. JavaScript学习系列博客_17_JavaScript中的函数的参数、返回值

    数的形参(形式参数) - 定义函数时,可以在()中定义一个或多个形参,形参之间使用英文逗号隔开:定义形参就相当于在函数内声明了对应的变量但是并不赋值,形参会在调用时才赋值. 函数的实参(实际参数) - ...

  4. JavaScript学习系列博客_16_JavaScript中的函数(Function)简介

    函数(Function) - 函数也是一个对象,也具有普通对象的功能 - 函数中可以封装一些代码,在需要的时候可以去调用函数来执行这些代码:当调用函数时,函数中封装的代码会按照顺序执行. - 使用ty ...

  5. JavaScript学习系列博客_14_JavaScript中对象的基本操作

    对象的基本操作 - 创建对象 - 方式一:使用new关键字调用的函数,是构造函数(constructor),构造函数是专门用来创建对象的函数. var obj = new Object(); - 方式 ...

  6. JavaScript学习系列博客_13_JavaScript中的对象(Object)简介

    对象 对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性.除了那5种基本数据类型,就是对象. 分类:1.内建对象- 由ES标准中定义的对象,在任何的ES的实现中都可以使用- 比如:Ma ...

  7. JavaScript学习系列博客_12_JavaScript中的break、continue关键字

    break关键字 -break关键字可以用来退出switch或循环语句 -不能在if语句中使用break和continue,但不是说if语句里面不能写break关键字,break关键字一定要包含在sw ...

  8. JavaScript学习系列博客_8_JavaScript中的关系运算符、赋值运算符

    关系运算符 - 关系运算符用来比较两个值之间的关系的 >.<.<=.>= 先说这四个.如果关系成立则返回true,关系不成立则返回false. - 如果比较的两个值是非numb ...

  9. JavaScript学习系列博客_6_JavaScript中的算数运算符

    运算符(操作符) 在JS中 +.-.*./.%这些都是算数运算符,typeof也是一个运算符,它的操作结果就是得到一个描述变量数据类型的字符串. + 运算符 1.两个值在都没有string类型的值的情 ...

随机推荐

  1. thymeleaf js绑定多个变量参数

    写法一: <img th:src="@{/css/bianji.png}" th:onclick="|viewById('${user.id}','${user.i ...

  2. sqlite 显示表内容时乱码,无法正常显示汉字,

    把txt文件另存为时,选择编码为utf-8即可

  3. Nodejs同步和异步编程

    同步API:只有当前API执行完成后,才能继续执行下一个API:异步API:当前API的执行不会阻塞后续代码的执行. 同步异步代码执行顺序 同步:从上到下依次执行,前面代码会阻塞后面代码的执行.异步: ...

  4. shell动态向sql传参

    一直在想有什么好方法可以实现,用shell动态给sql传参,自己写了一个简单,有什么好方法,欢迎留言补充,下面代码纯手打,可能有疏忽之处,请大佬批评指正指正. 实现方法如下: 1.新建一个文件02.t ...

  5. PHP 实例 - AJAX 实时搜索-AJAX Live Search

    PHP 实例 - AJAX 实时搜索 AJAX 可为用户提供更友好.交互性更强的搜索体验. AJAX Live Search 在下面的实例中,我们将演示一个实时的搜索,在您键入数据的同时即可得到搜索结 ...

  6. PHP restore_error_handler() 函数

    定义和用法 restore_error_handler() 函数恢复之前的错误处理程序. 该函数用于在通过 set_error_handler() 函数改变后恢复之前的错误处理程序. 该函数总是返回 ...

  7. 4.23 子串 AC自动机 概率期望 高斯消元

    考虑40分. 设出状态 f[i]表示匹配到了i位还有多少期望长度能停止.可以发现这个状态有环 需要高斯消元. 提供一种比较简单的方法:由于期望的线性可加性 可以设状态f[i]表示由匹配到i到匹配到i+ ...

  8. IDEA、maven创建webapp项目

      maven官方入门指南:http://maven.apache.org/guides/getting-started/index.html 推荐跟着官方文档学习噢~   IDEA.maven创建w ...

  9. 数据量大了一定要分表,分库分表组件Sharding-JDBC入门与项目实战

    最近项目中不少表的数据量越来越大,并且导致了一些数据库的性能问题.因此想借助一些分库分表的中间件,实现自动化分库分表实现.调研下来,发现Sharding-JDBC目前成熟度最高并且应用最广的Java分 ...

  10. 使用Flask开发简单接口(4)--借助Redis实现token验证

    前言 在之前我们已开发了几个接口,并且可以正常使用,那么今天我们将继续完善一下.我们注意到之前的接口,都是不需要进行任何验证就可以使用的,其实我们可以使用 token ,比如设置在修改或删除用户信息的 ...