JS-数据类型转换

String()

该函数可以将数字转换成字符串。可以用于任何类型的数字,字母,变量,表达式。例如:

String(x)        // 将变量 x 转换为字符串并返回

String(123)      // 将数字 123 转换为字符串并返回

String(100 + 23)  // 将数字表达式转换为字符串并返回

String(false)        // 返回 "false"

String(true)        // 返回 "true"

Number方法toString()也可以实现转换字符串

x.toString()

(123).toString()

(100 + 23).toString()

Number()

该函数可以将字符串转换为数字。字符串中包含数字「“3.14”」可以转换为「3.14」。空字符串会转换为0,其它的字符串会转换为「NaN」。

Number("3.14")    // 返回 3.14

Number(" ")      // 返回 0

Number("")        // 返回 0

Number("99 88")  // 返回 NaN

Number(false)    // 返回 0

Number(true)      // 返回 1

一元运算符+

该运算符可用于将变量转换为数字,例子如下

var y = "5";      // y 是一个字符串

var x = + y;      // x 是一个数字

若变量不能转换,那么它扔然会是一个数字,但值为NaN。

var y = "John";  // y 是一个字符串

var x = + y;      // x 是一个数字 (NaN)

自动转换类型

当JS尝试操作一个「错误」的数据类型时,会自动转换为「正确」的数据类型。

5 + null    // 返回 5        null 转换为 0

"5" + null  // 返回"5null"  null 转换为 "null"

"5" + 1    // 返回 "51"      1 转换为 "1" 

"5" - 1    // 返回 4        "5" 转换为 5

当你尝试输出一个对象或变量时JS会自动调用变量的「toString()」方法

document.getElementById("demo").innerHTML = myVar;

myVar = {name:"Fjohn"}  // toString 转换为 "[object Object]"

myVar = [1,2,3,4]      // toString 转换为 "1,2,3,4"

myVar = 123            // toString 转换为 "123"

myVar = true            // toString 转换为 "true"

myVar = false          // toString 转换为 "false"

内存的内部分为几大块用来存储数据,简单类型与复杂类型在内存中存储的区别主要会用到内存的栈(stack)和堆(heap)

简单类型是存储于栈中

复杂类型则是在栈中存储一个地址,然后将数据存储在堆中。然后通过栈中的地址去找到堆中的数据,他们之间存在一个引用(虚拟的)

存储数据分配了内存,那么就有必要再这些数据没用的时候进行回收,JS里面有垃圾回收机制。

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

你可能感兴趣的:(JS-数据类型转换)