数据类型转换

作者: Mr_LvHeng | 来源:发表于2019-05-18 14:55 被阅读8次

其他类型转字符串类型

  • toString方法:

    • number 转字符串:var n = 1; n.toString() // 输出字符串 "1"

    • boolean 转字符串:var a = true; a.toString() // 输出字符串 "true"

    • null 无法通过 toString 转字符串,会报错。

    • undefined 同样无法通过 toString 转字符串,会报错。

    • object 转字符串:不论object中是什么转字符串都会变成 "[object Object]"

  • String( )方法:String(1) //把数字1转为字符串1

  • 更便捷的方法:

    在需要转换的数值类型后面或前面加一个空字符串 (与上面不同,可以转换 null 与 undefined 类型):

    1 + ''
    '1'
    
    '' + null
    "null"
    
    '' + undefined
    'undefined'
    

    原理:如果在 + 号的左右任意一边有字符串,那它就会尝试把另一边也转换为字符串相加

其他类型转布尔类型

Boolean(1)
true
Boolean(2)
true
Boolean(0)
false
Boolean('')
false
Boolean(' ')
true
Boolean('嘤嘤嘤')
true
Boolean(null)
false
Boolean(undefined)
false

Boolean({})
true
Boolean({name : 'name'})
true

简便写法:

!! true
true
!! 1
true
!! 0
false
... //与上面的方法结果相同

五个特殊值

  • number中只有 0 NaN 转为布尔为false

  • 字符串中只有 空字符串 '' 转为布尔为false

  • null undefined 转布尔类型都是 false

  • object 转布尔类型都是 true

详细了解,搜索:MDN Falsy

转number类型

  1. Number('1') === 1

  2. 全局函数 (parse 解析):

    • 转整数:parseInt('1', 10) === 1 第一个变量是要转换的字符串,第二个变量是转换后的数字类型,比如当前是十进制
    • 转小数:parseFloat('1.25') === 1.25
    • '1'.
  3. 简洁的写法

    "1" - 0
    1
    "10" - 0
    10
    "1.25" - 0
    1.25
    
    + "1"
    1
    + "10"
    10
    + "1.25"
    1.25
    + "-1"
    -1
    

案例

循环a.self.self....

正确写法:

var a = {}
a.self = a
a.self.self.self
{self : {...}}

错误写法:

var a = {self : a}
{self : undefined} //由于 a 在 var 时对象 a 中的 a 还不存在,所以 self 的值会变为 undefined

引用类型面试题

var a = {n:1}
var b = a
a.x = a = {n:2} //此处会先确定a的值是什么,再进行赋值运算

alert(a.x) // undefined
alert(b.x) // [object Object]

GC 垃圾回收 (一个页面被使用后,浏览器回收的那个 页面的内存)

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

  • IE6 有bug 它无法将 document.onclick 的事件回收

深拷贝 浅拷贝

深拷贝

对于所有的基本类型,简单的赋值,就是深拷贝

var a = 1
var b = a
b = 2
// a = 1 ,b 的更改并没有影响 a,这就叫做深拷贝

浅拷贝

对象类型

var a = {
    name : 'x'
}
var b = a
b.name = 'y'
// 此时 a.name 也是 ‘y’

对象也可以实现深拷贝

相关文章

  • JAVA基础第四天

    JAVA数据类型---布尔类型; 数据类型转换自动数据类型转换 强制数据类型转换

  • JavaScript基础03- 数据类型转换

    数据类型转换 所谓的数据类型转换,就是将一种数据类型转换为另一种数据类型,所以,数据类型转换包括,转换为字符串类型...

  • JS里的数据类型转换

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

  • javascript-强制类型转换和运算符

    强制类型转换 将其它数据类型转换为String 将其它数据类型转换为Number 将其它数据类型转换为Boolea...

  • Python自学笔记——3.基础数据类型转换

    基础数据类型转换 数据类型转换的形式自动类型转换强制类型转换 可变数据类型: 列表, 字典, 集合不可变数...

  • 3-数据类型转换

    数据类型转换 将数据有当前类型变化为其他类型的操作就是数据类型转换。 数据类型转换分类: 数据类型转换一共分为2类...

  • Java基础语法_数据类型转换

    数据类型转换 当数据类型不一样时,将会发生数据类型转换。 数据类型转换——自动转换(隐式) 特点:代码不需要进行特...

  • 其他类型转换成字符串类型

    数据类型强制转换 字符串相关数据类型转换

  • JavaScript字符串转换为其他类型(五)

    目录: 为什么要数据类型转换? 数据类型怎么转换? 一、为什么要数据类型转换? 上节课咱们讲到了数据类型好比人的职...

  • day04-python中的循环与分支结构

    01-数据类型转换 1、数据类型的自动转换(主要是整型和浮点型之间自动转换) 2、数据类型的强制转换格式:类型名(...

网友评论

    本文标题:数据类型转换

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