《js里的数据类型转换》

一:转字符串

1:number boolean 可以调用toString()方法转 为字符串。

2:undefined null 不能转字符串。会出现报错。

3.object 的 tostring()方法也可以转字符串,但是结果不是我们想要的。

4:主要 转 字符串方法 (老司机常用,快捷)+' ';

上面列举  + ‘ ’的方法使用,这个方法 比toString()方法功能要多还简单,此方法 null undefinde 也可以转字符串;

二:转布尔 

1:Boolean()方法转布尔,只要Boolean() 里面有东西,都为true, 0 和 空字符串 null  undefined 为false;


2:转布尔(老手方法)! 为取反,!!就表示自身的布尔值啦;


其中有5个falsy值,需要记忆;0,NAN,' ',null,undefined 为false;

其余的都为true

三:转number

1:Number()方法,

2:parseInt('1',10) 其中parseInt方法有两个参数,第一个 书数据要解析的值,第二个 是 进制。(parse:解析)

3:parseFloat 用来解析小数的方法

4:骚方法 (数据 -0)number类型; 简单实用

四:对象之间的转换

这里需要 用到 内存啦 (一旦断了电,里面东西都没啦);内存主要分为 代码区 ,数据区 ,数据区 包括 stack栈内存,Heap 堆内存。分布 如图 

stack 存简单类型的值 和地址,Heap 存 复杂类型的值例

:var a = {name: 'a'}                  

var b = a         例 图解 

b.name = 'b'

请问现在 a.name 是多少?  答 a.name = 'b'


1:一个面试题  垃圾回收 

如果 一个对象没有被引用 ,他就是 垃圾 ,将被回收 。如上图,假如 a 和 b 地址 同时 没指向Heap里的 对象 ,那么 Heap 里的 对象 就没被引用 ,它就是 垃圾 ,将被回收。


2:浅拷贝 深拷贝 

浅拷贝:假如 b 的 值变化 啦 a 的值就变化啦 那么 就是 浅拷贝。上图 例 子 就是 浅拷贝

深拷贝: 假如 b 的 值 变化 不影响a 的 变化,除了 基本类型 (因为 基本类型 不存 heap例),赋值 就是就是深拷贝。  如下例 就是深拷贝

 var a = {name: 'a'}

var b = a

b = null

请问现在 a 是什么? a = {name:'a'}


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

相关阅读更多精彩内容

  • 一、数据类型转换 Anything-->string① ''+?转成字符串的简便方法1+1=2; 1+'1'='1...
    Camilia_yang阅读 514评论 0 0
  • 强制转换 强制转换主要指使用Number、String和Boolean三个函数,手动将各种类型的值,分布转换成数字...
    遠_阅读 322评论 0 0
  • 一、数据类型转换 不同数据类型之间转换方法: (一)、任意数据类型转为string 1.number转为strin...
    elsa919阅读 593评论 0 1
  • 前言:之前的博客介绍了JS中的各种数据类型,那么可不可以把已经确定的数据类型转换成其他的数据类型呢?本文就将介绍一...
    EnochQin阅读 634评论 0 3
  • 前言:之前的博客JS里的数据类型介绍了JS中的各种数据类型,那么可不可以把其他的数据类型转换成特定的一种数据类型呢...
    一只小前端阅读 805评论 0 3

友情链接更多精彩内容