【前端学习】HTML学习笔记-JS基础2

如何转换成number?

’1‘ ->1 :

  1. number('1')===1
  2. parseInt('1',10)===1
  3. parseFloat('1.23') === 1.23
  4. '1' - 0 === 1
  5. + '1' === 1 
  6. + '-1' === -1 
  7. -(- '-1') === -1
  8. -(-'1') === 1

JavaScript引擎不能识别大于0xFFFF的unicode字符

因为js出生于Unicode之前

类型转换

number object boolean string null undefined symbol七种数据类型

’+‘加号优先改变其他类型变成字符串类型

其他类型变成布尔有五个特殊值:

  1. number 只有0和NaN是false (0,nan)
  2. string 只有''空字符串是false('')
  3. null  是false (null)
  4. undefined  是false(nudefined)
  5. object  全部是true(包括数组和函数)

 

  number string boolean symbol null undefined object
number   toString !!        
string     !!        
boolean   toString          
symbol     !!        
null  

tostring报错

''+null

!!        
undefined  

同null报错

''+undefined

!!        
object   结果不想要 !!        

 

注意:number作为基本类型是没有方法的,但是js发明者对其进行了操作,使得number可以暂时看做对象去用,但其实number声明之后并非一个对象,而只是一个数字类型

各类型API

内存图

 

垃圾回收

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

判断是否是垃圾时,只要没有被指向,就是垃圾,可以画图来判断,更清晰。

 

深复制

深拷贝和浅拷贝

深拷贝

【前端学习】HTML学习笔记-JS基础2

注:基本类型赋值就是深拷贝

 

【前端学习】HTML学习笔记-JS基础2

注:对象赋值后值会随着改变,这种是浅拷贝