1

一、ES6知识点以及常考面试题

1、let var 以及 const

  • 在ES5的环境下实现一个const
function _const(data, val){
    window.data = val   // 需要挂在到一个对象上 可以新建 可以全局
    Object.defineProperty(window, data,{
        // writeable: false;  和set不可以一起用
        enumerable: false,
        configurable: false,
        get:function(){
           return val; 
        },
        set:function(newVal){
            /* 别人这里都有判断是否等于原值
               如果等于原值就return val
               但我试验过 const即使重复定义同样的值也会报错
               所以这里我自己改了 只要重置就报错 */
            throw new TypeError('read-only')
        }
    })   
}
  • var变量提升的底层原理是什么?

JS引擎工作过程分为预处理和执行两个阶段,在预处理阶段会把所有var的声明语句提升至当前作用域的头部
var a和a=0声明和赋值分别是这两个不同阶段的操作


绿绿
33 声望3 粉丝