ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ### 1.var、let 与 const区别 - 1.1 var 具有变量提升性质,let 与 const 没有。 - 1.2 var 不具块级作用域,let 与 const 具有块级作用域性质。 - 1.3 var 能重复声明,let 与 const 重复声明会报错。 - 1.4 var 全局声明变量会挂载在 window,let 与 const 不会。 [以前](https://www.kancloud.cn/book/xiaomingjun/interview/edit) ### 2.判断数据类型的四种方式 - 2.1 typeof,区分不了细致的 Object 类型,如 Array、Date、RegExp都只是返回 object。 ``` console.log(typeof 1); // number console.log(typeof '1'); // string console.log(typeof true); // boolean ``` - 2.2 Object.prototype.toString.call(),基本能满足对各种数据类型的判断。 ``` console.log(Object.prototype.toString.call(1)); // [object Number] console.log(Object.prototype.toString.call('1')); // [object String] console.log(Object.prototype.toString.call(true)); // [object Boolean] ``` - 2.3 constructor,是根据原型链原来来判断的,因为每一个实例对象都可以通过 constructor 来访问它的构造函数。 - 2.4 instanceof,内部机制是通过检查构造函数的原型对象(prototype)是否出现在被检测对象的原型链上来判断的。 ### 如何快速判断一个 window 类型 ``` console.log(window.window === window); // true ```