资讯专栏INFORMATION COLUMN

【JavaScript 学以致用】值的判断以及类型转换

AZmake / 537人阅读

摘要:隐式强制类型转换隐式强制类型转换指的是一些特殊的操作的副作用来实现类型转换,而非和等函数来实现值的类型转换。下面几种情况会发生布尔值的强制类型转换语句中的天健判断表达式。

引言

来到北京已经有4个年头了,做过一些测试、打杂、前端的工作之后,最后还是选择了前端的工作。现阶段主要还是在写业务代码,代码质量,工作效率就显得尤为重要。【学以致用】这个系列主要记录一些平时工作、学习遇到的一些问题,方便以后查漏补缺。

value 显示强制类型转换

最新的 ECMAScript 标准定义了 7 种数据类型:

6 种原始类型:

Boolean

Null

Undefined

Number

String

Symbol (ECMAScript 6 新定义)

Object

通常我们在工作的时候需要和后台对接,函数在处理返回值的时候如果做了容错判断,把数据转换成我们想要的类型,在编写后续业务代码的时候就会更加轻松 :-D

下图是 《JavaScript权威指南》中关于类型转换的总结:

举个栗子:后台返回值为一个字符串,内容是0 ~ 5的数字,现在使用的时候需要将参数转化为数字类型。

// wrong
return Number(value) 
// "" -> 0 
// undefined -> NaN 
// "aaa" -> NaN

// right 前面是剔除掉 "" undefined ,后面可以剔除掉 NaN 的类型
if (value && Number(value) >= 0) {
    return Number(value);
} else {
    return null; 
}

关于值的比较,当我们只关心值是否正常时,还有一个比较靠谱的方法:正则表达式,上面的例子也可以这样来写:

if (/[0-5]/.test(value)) {
    return Number(value);
} else {
    return null; 
}

小结:在判断两个值是否相等时,最好显式的转化,让代码更加清晰易读,然后用全等运算符 === 或者 !== 来比较。

隐式强制类型转换

隐式强制类型转换指的是一些特殊的操作的副作用来实现类型转换,而非 Number()String() 等函数来实现值的类型转换。隐式强制类型转换通常会使代码更加简洁,但同时也增加了代码的理解难度,我们编写的代码大都是给别人看的,要考虑到大家的理解是否保持一致。

数字和字符串的转换,个人习惯是使用显示的转换,这里不再赘述。

ToBoolean

下面几种情况会发生布尔值的强制类型转换:

if (..) 语句中的天健判断表达式。

for (.. ; .. ; ..) 语句中的条件判断表达式。

while (..) 循环中的条件判断表达式。

? : 中的条件判断表达式

|| 和 && 的做操作数

switch 语句使用的是全等判断,不会发生隐式的强制转换。

转换的结果可以参照上面的表格,或者下面的链接

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103513.html

相关文章

  • JavaScript类型转换的迷糊事儿

    摘要:下面分几步来简单的探探不同类型的转换吧以下的内容,都可以从权威指南中找到。其他值转换成在编写代码的过程中,几乎不用考虑它的取值类型。核心内置类,会尝试先于可以理解为对象优先转换成数字例外的是,利用的是转换。 最近在写公司的登录注册模块,遇到类型不同相比较的时候,就心惊胆战,每次都要用浏览器来验证一下,决定乱七八糟的随便写一下,方便日后自己回顾知识~ 弱类型带来的那些让人迷糊的事 弱类型...

    harriszh 评论0 收藏0
  • JavaScript核心属性-数据类型

    摘要:声明变量并初始化值为原始类型,一般称之为字面量方式定义变量,或直接量方式定义变量。浮点类型表示包含小数部分。浮点类型所占的空间是整数类型的两倍。 原始类型 原始类型,又称原始值,是直接代表JavaScript语言实现的最底层数据。原始类型分为 boolean类型、number类型、string类型三种。声明变量并初始化值为原始类型,一般称之为字面量方式定义变量,或直接量方式定义变量。 ...

    james 评论0 收藏0
  • JavaScript类型转换与各种运算符

    摘要:第十七天笔记类型转换隐式类型转换隐式类型转换是弱类型松散类型的在任何情况下都可以强制转换定义类型类型以及类型的变量卧龙前端转换为类型转换为类型类型转换为类型如果文本内容是普通的文本非数字转换后的结果为如果文本内容是数字值转换后的结果为对 第十七天笔记 类型转换 隐式类型转换 隐式类型转换 JavaScript是弱类型/松散类型的 在任何情况下都可以强制转换 //定义number类型 s...

    Aklman 评论0 收藏0
  • 【基础系列】javascript数据类型(原始类型

    摘要:返回布尔值,表示参数字符串是否在原字符串的头部。布尔值中布尔值有两个和和都表示值的空缺,但事从背后更深远的角度考虑,他们的还是有差别的。首先我们来看一下类型转化表任意的值都可以转换为布尔值,只有会被转换为,其他所有值都会被转换成。 开辟了一个关于javascript的基础系列,更加深入、细致的了解这门语言。今天分享的是js的数据类型。 javascript的数据类型可以分为两类:原始类...

    aikin 评论0 收藏0
  • javascript系列】布尔类型转换

    摘要:基本值原始值原始的布尔类型有两个值和。创建布尔值的方式直接用字面量用函数,将其他任意值转换成对应的原始布尔值。使用两次非运算符,将其转换成对应的布尔类型。下面来看一些将其他类型转换成布尔类型的例子。 基本值(原始值) 原始的布尔类型boolean有两个值: false 和 true。 > typeof false boolean > typeof true boolean 创建布尔值的...

    wangxinarhat 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<