美文网首页饥人谷技术博客
《js里的数据类型转换》

《js里的数据类型转换》

作者: 饥人谷__冯国欣 | 来源:发表于2019-05-16 22:38 被阅读6次

    一:转字符串

    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'}

    相关文章

      网友评论

        本文标题:《js里的数据类型转换》

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