1、在JavaScript中,简单类型存储在Stack里,赋值是深拷贝,即被赋值的变量变化不影响原变量
2、对象存储在Heap里,赋值是浅拷贝,即被赋值的变量存储的是原变量的Heap地址,即引用,其变化会影响原变量
3、相比toString方法,+ 'xxx' 与window.String(xxx)可接收null,undefined,将其转为字符串。
另外,对象均转换为object Object,注意容易出现bug。
window.String(null)
"null"
window.String(undefined)
"undefined"
null.toString() --- TypeError
undefined.toString() --- TypeError
数值:转为相应的字符串。
字符串:转换后还是原来的值。
布尔值:true转为字符串"true",false转为字符串"false"。
undefined:转为字符串"undefined"。
null:转为字符串"null"。
4、typeof fn 返回值应该是对象,但js中显示位function
5、将类型转为数字可用Number('xx'), parseInt('xxx',10)(默认是10进制), parseFloat('xxx'), 或 xxx - 0, + xxx,Number会将空字符串及null转换为数值0,字符串和undefined转换为NaN, parseFloat会将空字符串转换为NaN
Number(011)
9
Number('011')
11
Number('011x')
NaN
parseInt('010xx')
10
parseInt( 3)
3
parseFloat(012)
10
parseFloat('012.11XX')
12.11
6、如果一个对象没有被引用,即没有任何指向其的对象,将会被当作垃圾,被浏览器回收。IE6存在bug,只有将全部页面关闭后才能进行回收,不回收的垃圾容易造成垃圾泄露
网友评论