JS 里的类型

null

var n = null;
n.toString()  //Cannot read property ’toString’ of null

上面报错的意思:toString点前面的是null,因为null没有toString这个API,所以会报错。

如何转String

平时常使用的console.log也是用的tostring方法,把要打印的变成字符串。

String的三种方法:

  • toString()
  • string函数
  • + ''

如何转Boolean

Boolean(x) 如果

  • Boolean(0)
  • Boolean(NaN)
  • Boolean('')
  • Boolean(null)
  • Boolean(undefined)
    上面五个是false,其他是true (五个falsy值)
    但是一般转Boolean是这个方法:
    !!(x) 取Boolean !!0 !!true

如何转number

'1' -> 1

  • Number('1')
  • parseInt('1',10)
  • parseFloat('1.23')
  • '11' - 0 减零
  • + '13232' //13232 取正

Stack(栈内存) Heap(堆内存)

简单值存Stack地址 :number/string/null/undefined/Symbol/Boolean
复杂值存Heap地址 :Object
因为js没有指针,但是有引用这个概念。所以变量和对象之间的关系都是引用。
等于号只做一件事:把右边的东西存到左边
例子1

var a = 1
var b = a
b = 2
a = ? //1

把1存到a上,b把a的值存到b上,改变b,a存的值不影响,所以是1


stack赋值

例子2

var a = {name : 'a'}
b = a
b = {name : 'b'}
a.name = ? // a

{name = 'a'}存到heap堆里面,a存的是heap的引用,b=a以后
,b也是存的是a的地址的引用,所以b也存的的地址,但是当b变化以后,b存的地址就改变了,没有影响到a的地址,所以a.name = a

不同地址

例子3

var a = {name : 'a'}
b = a
b.name = 'b'
a.name = ? // b

同上,a和b存的是同一个地址,现在b修改的是地址里的值,所以a.name= b

同一地址

例子4

var a = {name : 'a'}
b = a
b = null
a = ? //   {name : 'a'}

一开始存到都是同一个地址,但是null赋给b以后,b就不指向a的地址了,不影响a,所以a = {name : 'a'}

null赋值

例子5
这是一个面试经常错的题
分析如上,在执行到a.x = a = {n:2}的时候,这里a的值已经确定好了,不会重复确定a的值了,故alert(a.x) // undefined

垃圾回收

  • 如果一个对象没有被引用,它就是垃圾,将被回收
var fn = function(){}
document.body.onclick = fn
fn = null

fn被回收了吗?
答案是没有,因为fn等于null了,没有引用这个函数了,应该被回收,但是有document.body.onclick在引用着,而document不会被浏览器回收的,所以有document罩着,不会被回收。

垃圾回收

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 类型转换1. 转换为 字符串toString() 方法返回一个表示该对象的字符串 MDN语法:object.toS...
    半斋阅读 324评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,882评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,326评论 19 139
  • 大多数的Android应用程序都会使用HTTP协议来发送和接收网络数据,而android中主要提供了两种方式来进行...
    WayOfAndroid阅读 585评论 0 0
  • 微信公众号:十九度听 (这里有温情的故事,也有温暖的声音,每晚陪你说晚安!) 张爱玲曾说过:不管你的条件有多差,总...
    阿棽很开心阅读 1,216评论 0 1

友情链接更多精彩内容