美文网首页
js 数据类型转换和内存图

js 数据类型转换和内存图

作者: simon_李玉兵 | 来源:发表于2019-01-16 23:27 被阅读0次

转成字符串

  1. toString
var n = 1
n.toString() // "1"

var n = true
n.toString() // "true"

var n = null
n.toString() // 报错 Cannot read property 'toString' of null

var n = undefined
n.toString() // 报错 Cannot read property 'toString' of undefined

var n = {name: 'a'}
n.toString() // "[object Object]"

nullundefined都报错

  1. + ''
1 + '' // "1"
true + '' // "true"
null + '' // "null"
undefined + '' // "undefined"
var obj = {name: 'a'}
obj + '' // "[object Object]"
  1. String()
var n = 1
window.String(n) // "1"

var n = true
String(n) // "true"

var n = null
String(n) // "null"

var n = undefined
String(n) // "undefined"

var n = {name: 'a'}
String(n) // "[object Object]"

转成Boolean

  1. Boolean
Boolean(1) // true
Boolean(0) // false
Boolean(null) // false
Boolean(undefined) // false
Boolean({}) // true
Boolean('') //false
  1. !!
!!1 // true
!!0 //false

5个falsy值。falsy表示他们是假的,但是不是假false
0 NaN '' unll undefined

转成number

  1. Number
  2. parseInt()
  3. parseFloat()
  4. - 0
  5. + 取正
+ '21' // 21

内存图

电脑开机的时候,操作系统从硬盘读取到内存。操作系统占用一定的内存,电脑打开浏览器会占用内存。浏览器把分到的内存容量分给每个页面。页面运行的js也会分配一定的内存。js再把内存分代码区数据区。数据区又分成stack(栈)heap(堆)

当执行
var a = 1
var b = a
var c = true
var d = {name: 'a'}
时浏览器做了什么

解析图1.png

关于内存的题目

题1.png
题2.png
题3.png
题4.png

循环引用

循环引用.png

一个面试题


面试题.png

a.x = a = {n: 2} a的只一开始就确定了。为地址34。

垃圾回收

如果一个对象没有被引用,它就是垃圾,将被回收。


垃圾回收1.png

一个问题

image.png

此时高亮的function是否是垃圾


image.png

很明显不是。有document引用它

上图中,当我们关掉页面时。document直接就不存在了。但是内部的三个还存在引用关系。在ie中存在一个bug,会认为这三个对象不是垃圾。

相关文章

  • js 数据类型转换和内存图

    转成字符串 toString null 和 undefined都报错 + '' String() 转成Boolea...

  • JS数据类型转换

    本博客会讲解下面几个概念 数据类型转换内存图垃圾回收和内存泄漏浅拷贝与深拷贝 数据类型转换 1. 任何类型转Str...

  • JavaScript数据类型(21)

    JavaScript类型简介 类型转换 各种类型的API 内存图 深拷贝VS浅拷贝 JS的七种数据类型:numbe...

  • 2、强制数据类型转换

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

  • JS中的数据类型转换&浅谈深与浅拷贝

    本文会介绍将其他的数据类型转换成特定的一种数据类型。另外会简单引申JS中的内存图,深拷贝与浅拷贝等相关知识。 将其...

  • JS里的数据类型转换

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

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

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

  • 基本语法

    js的基本数据类型 类型转换 Global 和 Math

  • javaScript中数据类型转换方法

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

  • 数据类型转换

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

网友评论

      本文标题:js 数据类型转换和内存图

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