美文网首页
JS中数据类型的转换

JS中数据类型的转换

作者: zzyo96 | 来源:发表于2018-08-12 13:29 被阅读0次

数据类型转换

任意类型转String

1.String(x)


image.png

2.x.toString()

image.png

3.x+''


image.png

任意类型转Number

  1. Number(x)
  2. parseInt(x, 10) [MDN]
  3. parseFloat(x)
  4. x - 0
  5. +x

任意类型转Boolean

Boolean(x)
!!x

内存图

  1. 你买一个 8G 的内存条
  2. 操作系统开机即占用 512MB
  3. Chrome 打开即占用 1G 内存
  4. Chrome 各每个网页分配一定数量的内存
  5. 这些内存要分给页面渲染器、网络模块、浏览器外壳和 JS 引擎(V8引擎)
  6. JS 引擎将内存分为代码区和数据区
  7. 我们只研究数据区
  8. 数据区分为 Stack(栈内存) 和 Heap(堆内存)
  9. 简单类型的数据直接存在 Stack 里
  10. 复杂类型的数据是把 Heap 地址存在 Stack 里

遇到问题就画图,不要分析。

典型题目

var a = 1
var b = a
b = 2
请问 a 显示是几?  
答案:1
var a = {name: 'a'}
var b = a
b = {name: 'b'}
请问现在 a.name 是多少?
答案:'a'
var a = {name: 'a'}
var b = a
b.name = 'b'
请问现在 a.name 是多少?
答案:'b'
var a = {name: 'a'}
var b = a
b = null
请问现在 a 是什么?
答案:{name:'a'}
var a 
a={self:a}
请问现在a.self是什么?
答案:undefined
var a = {n:1};
var b = a;
a.x=a={n:2};
请问现在a.x是什么?
答案:undefined
请问b.x是什么?
[object Object]

深拷贝&浅拷贝

对于简单类型的数据来说,赋值就是深拷贝。
对于复杂类型的数据(对象)来说,才要区分浅拷贝和深拷贝。
这是一个浅拷贝的例子

var a = {name: 'frank'}
var b = a
b.name = 'b'
a.name === 'b' // true

因为我们对 b 操作后,a 也变了

什么是深拷贝了,就是对 Heap 内存进行完全的拷贝。
下面这个是深拷贝的例子

var a = {name: 'frank'}
var b = deepClone(a) // deepClone 还不知道怎么实现
b.name = 'b'
a.name === 'frank' // true

GC垃圾回收

如果一个对象没有被引用他就是垃圾,就要被回收


image.png

请问这里的fn是GC吗?当然不是,因为onclick在引用着它所以不能当做GC

相关文章

  • 2、强制数据类型转换

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

  • JS里的数据类型转换

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

  • JS 里的数据类型转换

    JS 里的数据类型转换 Js中的数据类型一共有7种,即number,string,boolean,underfin...

  • JS里的数据类型转换

    上一篇文章(JS里的数据类型)介绍了js中的数据类型。这篇主要介绍数据类型转换。 一、任意类型转字符串 转换成st...

  • JavaScript类型转换

    在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用js弱变量类型转换)。 强制类型转换 即通过使...

  • JavaScript 01 (JS引入/变量/数据类型/类型转换

    JS的引入及调试,常量,字面量,变量,JS中的数据类型,JS的运算符,JS的运算符之隐式类型转换,强制类型转换,M...

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

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

  • javaScript中数据类型转换方法

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

  • 数据类型转换

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

  • JS数据类型转换(2)

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

网友评论

      本文标题:JS中数据类型的转换

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