摘要:类型转换和表示一个空对象。如果有其他类型想转换为或者类型,直接赋值就可以了。都能隐式的把数据类型转为类型。。。时间时间二数字类型转换为字符串默认是进制是一个对象类型,所以其他类型转化为通常都是。
前言
javaScript是一门可以自由进行数据类型转换的编程语言,类型转换是javaScript很重要的特色(坑点很多!!!),大家想以后写出更多严谨的代码(少出一些莫名其妙的Bug),还是需要好好掌握这个基础知识,下面我跟大家一起来探讨下JS的类型转换。
类型介绍我们都知道JS的数据类型总共分为两大类原始类型和对象类型。
原始类型有 Null、Undefined、 Boolean、 String、 Number、 Symbol(ES6)。
对象类型有 Object
关于这些数据类型的定义和介绍,网络上已经有很多的相关知识,这里就不再说了,给小伙伴推荐一个最权威的文档 http://www.ecma-international...。
Null 和 Undefined
Null表示一个空对象。但是空对象也是一个对象,所以typeof null === "object"
Undefined表示声明一个变量,但是却还没有赋值。
如果有其他类型想转换为Undefined或者Null类型,直接赋值就可以了。
var num = 10; console.log(typeof num) // "number" num = undefined; console.log(typeof num) // "undefined"
没啥好说的
Boolean
Boolean类型是一个基本的类型,其他类型转换为Boolean类型规范如下
链接地址: http://www.ecma-international...
下面我总结了一些需要用到转换为boolean类型的场景
A. 强转为Boolean
var a = Boolean(1) // typeof a => "boolean", a=> true var b = Boolean(null) // b => false var d = new Boolean(false) // typeof d => "object", new Boolean 返回的是Object, 请注意Boolean 和 new Boolean的区别
B. ! ! 隐式转换
! 会对数据进行Boolean的隐式转换,规则如上表格。
举个例子
var a = !0 // a => true , 0的boolean为false,!进行取反, 于是a => true
在开发中, 我们通过 ! ! 来获取变量的boolean值
C. if 判断
if 是一个很常见的判断逻辑,当我们使用if去进行逻辑判断的时候,javaScript首先会获取数据的boolean值,规则如上表格, 然后再进行判断
if (0) {console.log(true)} else {console.log(false)} // 打印false if ([]) {console.log("array")} // 打印 array if ({}) {console.log("object")} // 打印 object if ("") {console.log(true)} else { console.log(false)} // 打印 false
Number
Number类型是一个基本的类型,其他类型转换为Number类型规范如下
链接地址: http://www.ecma-international...
除了String和Object外, 其他类型转为Number类型都好理解。
对于理解String与Object转Number类型,有几点个人的的心得,希望对大家有所帮助 (PS: 如果大家有时间的话,还是好好研究官方的规范。)
一. 0个空格(即"")或者多个空格(" "),返回结果是0
二. 把字符串左右两边的("或者")和空格都拿掉,如果这是一个数字类型,说明此字符能转化为Number类型,否则返回NaN
三. 对象类型,首先调用valueof方法,返回基本类型的话,就执行上表格中的转换规则。否则,就调用toString方法,对返回的字符执行上表格中的转换规则
示例如下:
+null // => 0。 +、- 都能隐式的把数据类型转为Number类型 +"" // => 0。 +true // => 1。 +"0x12" // => 18。 0x12为16进制数 +"1.2e2" // =>120。 1.2e2为科学计数法 +"a" // => NaN。 +[] // => 0。 [].valueOf是[], [].toString() => "", +""=> 0 +["22"] // => 22. ["22"].toString() => "22", +"22" => 22
留一个思考题。+Date() => NaN, +new Date() => 1518332170387能拿到时间戳。大家可以想一下为什么?
String
String类型是一个基本的类型,其他类型转换为String类型规范如下
链接地址: http://www.ecma-international...
其他类型在转为为String类型时候,规则应该是很简单明确,这里补充一些的注意事项
一. + 左右两边只要有一边是字符串,另外一边就会按照上表格的规则把转为字符串,然后合并返回。
"1" + 1 // => "11" undefined + "a" // => "undefineda" "时间" + new Date() // => "时间Sun Feb 11 2018 15:15:42 GMT+0800 (CST)", new Date().toString() => Sun Feb 11 2018 15:15:42 GMT+0800 (CST)
二. 数字类型转换为字符串默认是10进制
var a = 0x15; console.log(a.toString()) //=> "21" 1.2e2 + "10" // => "12010", 1.2e2 => 120, 120 + "10"=> "12010"
Object
Object是一个对象类型,所以其他类型转化为Object通常都是new......。
下面是<
不多说了......
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/107429.html
摘要:总结通过使用和,我们能够在数据和二进制数据中进行互相转换。下一篇系列相关的博客,将会介绍如何通过来向后端传递二进制数据,以及如何处理通过收到的二进制数据。 概述 上一篇博客我们说到了如何进行数字类型(如Short、Int、Long类型)如何在JavaScript中进行二进制转换,如果感兴趣的可以可以阅读本系列第二篇博客——WebSocket系列之JavaScript中数字数据如何转换为...
摘要:以和为例,说明中的数字数据如何转换为二进制数据。对象用来表示通用的固定长度的原始二进制数据缓冲区。中的数字数据如何转换为二进制数据对和有了一个大概的了解,下面让我们来看下它是如何进行二进制数据操作的。 概述 本文主要通过对JavaScript中数字数据与二进制数据之间的转换,让读者能够了解在JavaScript中如何对数字类型(包括但不限于Number类型)进行处理。 二进制数据在日常...
摘要:所以无论还是都会进行类型转换,唯一的区别,就是会置否而不会。这时候,肯定会有人问,假如说我有其他的数据类型呢,又不是数字又不是字符串,比如说数组啊,对象啊,布尔值啥的,那么如果是引用数据类型,则先转为基本数据类型,再进行比较。 上一章主要讲了转换到数字,字符串和布尔类型的一些知识点,那么这一讲接着上面的继续讲。 思考下面这个问题: console.log(+123); // 123 ...
摘要:转换为字符串规则如下图代码大致就是普通其他基本类型转为字符串的话,就直接转为其值的字符串表达形式,如果是基本类型的封装对象,会先拆封,然后再转为字符串,如果是普通对象,则会调用其内部的值,如果是极大数和级小数,将会进行一些转化,具体规 转换为字符串规则如下图代码: console.log(String(undefined)); // undefined console.log(Str...
摘要:抽象相等和严格相等。首先,也是如果有对象的话,会把对象转为基本类型值,在进行比较。 这一节,应该算是强制类型转换的最后一个小节了,这一部分呢,主要会讲比较操作中遇到的强制类型转换。 抽象相等(==)和严格相等(===)。 简单且粗略的来说,抽象相等和严格相等的区别就是抽象相等在比较的时候,如果比较的两个数类型不同,会先进行类型转换再比较,而严格类型呢,比较简单粗暴一些,直接返回fals...
阅读 2096·2021-11-16 11:45
阅读 1131·2021-10-22 09:53
阅读 3955·2021-09-07 10:26
阅读 1181·2021-09-06 15:00
阅读 2054·2019-08-28 18:09
阅读 2770·2019-08-26 14:06
阅读 3892·2019-08-26 13:48
阅读 1280·2019-08-26 12:11