JS笔记:eval,with,调用函数let,const

  eval

  function foo(str, a) {

  eval( str ); // 欺骗!

  console.log( a, b );

  }

  var b=2;

  foo( "var b=3;", 1 ); // 1, 3

  with

  function foo(obj) {

  with (obj) {

  a=2;

  }

  }

  var o1={

  a: 3

  };

  var o2={

  b: 3

  };

  foo( o1 );

  console.log( o1.a ); // 2

  foo( o2 );

  console.log( o2.a ); // undefined

  console.log( a ); // 2 ——a 被泄漏到全局作用域上了!

  IIFE

  var a=2;

  (function IIFE( global ) {

  var a=3;

  console.log( a ); // 3

  console.log( global.a ); // 2

  })( window );

  console.log( a );

  let

  let j;

  for (j=0; j<10; j++) {

  let i=j; // 每个迭代重新绑定

  console.log( i );

  }

  const

  var foo=true;

  if (foo) {

  var a=2;

  const b=3; // 包含在 if 中的块作用域常量

  a=3; // 正常 !

  b=4; // 错误 !

  }

  console.log( a ); // 3

  console.log( b ); // ReferenceError!

  (完)

#学习路径#
全部评论
感谢分享
点赞 回复 分享
发布于 2021-12-21 10:32

相关推荐

尊尼获获:闺蜜在哪?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务