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里面有垃圾回收机制。
垃圾回收 :如果一个对象没有被引用,它就是垃圾,将会被回收。