额外知识

150 阅读1分钟

额外知识

with语句

  • 简单的来说多了一层寻找的对象,如果with语句内部使用了自身没有定义的变量或者属性,因为使用了with语句,那么js会先从with传入的一个对象中寻找,如果找到则返回,如果没有找到,那么和普通的作用链一样往父级方向寻找,直至报错或者找到返回。其实就是多了一个寻找的对象,优先寻找找到返回,找不到走普通作用域链
  • 优势就是限定范围的数据,如果给定的数据没有想要的,那么沿着作用域链寻找默认值,如果有那么使用给定的值。
  • 简单的来说就是在寻找变量的时候,先寻找with参数对象,然后再沿着作用域链进行寻找。严格模式下使用with会报错,并且开发中不常用。
  • 开发中一般不使用with语句,在严格模式下不能使用with语句。
var name = 'lisi'
var obj = {
  name: 'zs'
}

function log() {
    with(obj) {
      console.log(name)
    }
}
log()

eval函数

  • 简单来说可以将一段字符串解析成js代码进行执行,一般这个代码要正确的js代码才能够执行。
  • 开发中一般不使用,因为很消耗性能,解析成js代码,然后再执行代码,消耗了两倍的性能。
eval('var name = "zs"')