我的编程空间,编程开发者的网络收藏夹
学习永远不晚

js如何实现类型强制转换

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

js如何实现类型强制转换

这篇文章主要介绍js如何实现类型强制转换,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

类型强制转换

1 string强制转换为数字

可以用*1来转化为数字(实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为NaN,或者使用 a !== a 来判断是否为NaN,因为 NaN !== NaN

'32' * 1 // 32
'ds' * 1 // NaN
null * 1 // 0
undefined * 1 // NaN
1 * { valueOf: ()=>'3' } // 3

常用: 也可以使用+来转化字符串为数字

+ '123' // 123
+ 'ds' // NaN
+ ''  // 0
+ null // 0
+ undefined // NaN
+ { valueOf: ()=>'3' } // 3

2 object强制转化为string

可以使用 字符串+Object 的方式来转化对象为字符串(实际上是调用 .toString() 方法)

'the Math object:' + Math // "the Math object:[object Math]"
'the JSON object:' + JSON // "the JSON object:[object JSON]"

当然也可以覆盖对象的toStringvalueOf方法来自定义对象的类型转换:

2 * { valueOf: ()=>'3' } // 6
'J' + { toString: ()=>'S' } // "JS"

《Effective JavaScript》P11:当+用在连接字符串时,当一个对象既有toString方法又有valueOf方法时候,JS通过盲目使用valueOf方法来解决这种含糊。
对象通过valueOf方法强制转换为数字,通过toString方法强制转换为字符串

'' + {toString:()=>'S',valueOf:()=>'J'} // J

3 使用Boolean过滤数组中的所有假值

我们知道JS中有一些假值:falsenull0""undefinedNaN,怎样把数组中的假值快速过滤呢,可以使用Boolean构造函数来进行一次转换

const compact = arr => arr.filter(Boolean)
compact([0, 1, false, 2, '', 3, 'a', 'e' * 23, NaN, 's', 34]) // [ 1, 2, 3, 'a', 's', 34 ]

4 双位运算符 ~~

可以使用双位操作符来替代 Math.floor( )。双否定位操作符的优势在于它执行相同的操作运行速度更快。

Math.floor(4.9) === 4 //true
// 简写为:
~~4.9 === 4 //true

不过要注意,对整数来说 ~~ 运算结果与 Math.floor( ) 运算结果相同,而对于负数来说不相同:

~~4.5 // 4
Math.floor(4.5) // 4
~~-4.5 // -4
Math.floor(-4.5) // -5

5 短路运算符

我们知道逻辑与&&与逻辑或||是短路运算符,短路运算符就是从左到右的运算中前者满足要求,就不再执行后者了; 可以理解为:

&&为取假运算,从左到右依次判断,如果遇到一个假值,就返回假值,以后不再执行,否则返回最后一个真值
||为取真运算,从左到右依次判断,如果遇到一个真值,就返回真值,以后不再执行,否则返回最后一个假值

let param1 = expr1 && expr2
let param2 = expr1 || expr2
运算符示例说明
&&expr1&&expr2如果expr1 能转换成false则返回expr1,否则返回expr2. 因此, 在Boolean环境中使用时, 两个操作结果都为true时返回true,否则返回false.
||expr1||expr2如果expr1能转换成true则返回expr1,否则返回expr2. 因此,在boolean环境(在if的条件判断中)中使用时, 二者操作结果中只要有一个为true,返回true;二者操作结果都为false时返回false.
!!expr如果单个表达式能转换为true的话返回false,否则返回true.

因此可以用来做很多有意思的事,比如给变量赋初值:

let variable1
let variable2 = variable1 || 'foo'

如果variable1是真值就直接返回了,后面短路就不会被返回了,如果为假值,则会返回后面的foo

也可以用来进行简单的判断,取代冗长的if语句:

let variable = param && param.prop

如果param如果为真值则返回param.prop属性,否则返回param这个假值,这样在某些地方防止paramundefined的时候还取其属性造成报错。

6 取整 | 0

对一个数字| 0可以取整,负数也同样适用,num | 0

1.3 | 0 // 1
-1.9 | 0 // -1

7 判断奇偶数 & 1

对一个数字& 1可以判断奇偶数,负数也同样适用,num & 1

const num=3;
!!(num & 1)					// true
!!(num % 2)					// true

以上是“js如何实现类型强制转换”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

js如何实现类型强制转换

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java如何实现类型转换与强制类型转换

这篇文章主要介绍了java如何实现类型转换与强制类型转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。java类型转换与强制类型转换如果你以前有编程经验,那么你已经知道把一种
2023-06-03

php强制类型如何转换

这篇文章主要讲解了“php强制类型如何转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php强制类型如何转换”吧!一、PHP强制类型转换的原理强制类型转换是把一个变量的数据类型转换为另外一
2023-07-05

C++如何强制类型转换

小编给大家分享一下C++如何强制类型转换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、C强制转换C语言中的强制转换主要用于普通数据类型、指针的强制转换,没有类
2023-06-25

python强制类型转换怎么实现

在Python中,可以使用内置的几个函数来实现强制类型转换,具体取决于要转换的数据类型。以下是一些常用的类型转换函数:1. int():将一个对象转换为整数类型。例如,int(3.14)将返回3。2. float():将一个对象转换为浮点数
2023-10-19

php怎么实现强制类型转换

这篇文章主要介绍“php怎么实现强制类型转换”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php怎么实现强制类型转换”文章能帮助大家解决问题。强制转换方法:1、在要转换的变量前加上用括号括起来的目标
2023-06-30

C++中如何强制类型转换

C++中如何强制类型转换,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. c强制转换与c++强制转换 c语言强制类型转换主要用于基础的数据类型间的转换,语法为:(type
2023-06-20

PHP如何实现强制转换

这篇文章将为大家详细讲解有关PHP如何实现强制转换,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。强制转换通过强制转换的数据,不影响数据原本的类型,仅仅将该数据临时转换了。
2023-06-17

C#如何实现强制转换

这篇文章给大家分享的是有关C#如何实现强制转换的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 System.Int32。(int)
2023-06-17

go语言如何进行强制类型转换

今天小编给大家分享一下go语言如何进行强制类型转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。go语言中的强制类型转换有三
2023-07-04

c语言如何进行强制类型转换

小编给大家分享一下c语言如何进行强制类型转换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于
2023-06-14

请描述PHP中的类型强制转换和类型声明。(PHP中如何进行类型的强制转换和声明?)

本文详述了PHP中的类型强制转换和类型声明。类型强制转换允许将值从一种数据类型转换为另一种类型,可以使用显式或隐式转换方法。类型声明通过指定变量或函数参数的预期类型来提高代码可读性、减少错误和增强性能。文章提供了显式类型强制转换、隐式类型强制转换和类型声明的示例,包括变量声明、函数参数和返回值。
请描述PHP中的类型强制转换和类型声明。(PHP中如何进行类型的强制转换和声明?)
2024-04-02

python的简单强制类型转换

使用int/long/float/srt/repr/eval/list/tuple 等可以进行类型转换,测试如下:
2023-01-31

C++强制类型转换的方法

今天小编给大家分享一下C++强制类型转换的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1 C 强制类型转换C 方式的强
2023-06-30

编程热搜

目录