SOURCE

console 命令行工具 X clear

                    
>
console
function bar(x=20,y=x){
  return [x,y];
}
console.log(bar())
// 上面代码的原意是,if代码块的外部使用外层的tmp变量,内部使用内层的tmp变量。但是,函数f执行后,输出结果为undefined,原因在于变量提升,导致内层的tmp变量覆盖了外层的tmp变量。
var temp=new Date()
function foo(){
  console.log(temp);
  if(false){
    var temp="abc";
  }
}
foo()
{
  let a='outside'
  let f=function(){
    return a
  }
  console.log(f())
}
// do 表达式
// let x = do {
//   let t = f();
//   t * t + 1;
// };

const a=[];
a.push('Hello');
console.log(a.length)
// 
// var constantize = (obj) => {
//   Object.freeze(obj);
//   Object.keys(obj).forEach( (key, i) => {
//     if ( typeof obj[key] === 'object' ) {
//       constantize( obj[key] );
//     }
//   });
// };

const b=Object.freeze({})
  var constantize=(obj)=>{
  Object.freeze(obj);
  Object.keys(obj).forEach((key,i)=>{
    if(typeof obj[key]==='object'){
      constantize(obj[key])
    }
  })
}

<!-- let 作用域 为代码块内部 -->