js学习笔记(二)

一、确定变量类型

  • 原始类型变量确定类型使用typeof,例如:
console.log(typeof 22);//number
console.log(typeof "mike");//string
console.log(typeof true);//boolean
console.log(typeof null);//object
console.log(typeof new Object());//object
console.log(typeof function(){});//function
  • 引用类型变量的类型、原始类型的包装类型变量类型的确定使用instanceof,例如:
console.log(person instanceof Object);//变量person是否为Object?
console.log(colors instanceof Array);//变量colors是否为Array?
console.log(pattern instanceof RegExp);//变量pattern是否为RegExp?
console.log(new String() instanceof String);//true
console.log(new Number() instanceof Number);//true
console.log(new Boolean() instanceof Boolean);//true

二、作用域

  1. 执行上下文作用域

  在浏览器中,window对象即为全局上下文,在应用退出前(关闭网页或退出浏览器)时才会被销毁。内部上下文可以通过作用域链访问外部上下文中的一切,但外部上下文无法访问内部上下文中的任何东西。

  1. 作用域链增强

(1)eval()调用
(2)try/catch语句的catch块
(3)with语句

三、垃圾回收

  1. 离开作用域的值会被自动标记为可回收,然后再垃圾回收期间被删除
  2. 主流的垃圾回收算法是标记清理,即先给当前不使用的值加上标记,再回来回收它们的内存
  3. 引用计数是另一种垃圾回收策略,需要记录值被引用了多少次,js引擎不在使用这种算法,但某些旧版本的IE仍然会受这种算法的影响,原因是js会访问原生js对象(如DOM对象)
  4. 引用计数再代码中存在循环引用时会出现问题
  5. 解除变量的引用不仅可以消除循环引用,而且对垃圾回收也有帮助。为促进内存回收,全局对象、全局对象的属性和循环引用都应该在不需要时接触引用

四、引用类型与原始值包装类型的主要区别

  引用类型与原始值包装类型的主要区别在于对象的生命周期,在通过new实例化引用类型后,得到的实例会在离开作用域时被销毁,而自动创建的原始值包装对象只存在于访问它的内行代码执行期间。

五、Number

  Number是对应数值的引用类型。

  • toFixed()方法:返回包含指定小数点位数的数值字符串,toFixed(0)对数值进行四舍五入取整
  • toExponential ():返回以科学计数法表示的数值字符串
  • toPrecision():根据情况返回最合理的输出结果(固定长度/科学计数)
  • Number.isInteger():鉴别一个数值是否为整数

六、String

  1. indexOf()和LastIndexOf():查找指定字符串,返回位置,如果没找到返回-1,indexOf()从前往后查找,LastIndexOf()从后往前查找。
  2. trim():删除字符串前后的空格,返回字符串的副本。

七、单例内置对象

  内置对象即任何由ECMAScript实现提供、与宿主环境无关,并在ECMAScript程序开始执行时就存在对象。

  1. Object
  2. Array
  3. String
  4. Global:浏览器将window对象实现为Global对象的代理
  5. Math
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值