当前位置:   article > 正文

前端js面试题(1)_前端class类面试题

前端class类面试题

Null和undefined的区别

(1)null是一个表示”无”的对象,转我数值是为0,undefined是一个表示”无”的原始值,转为数值时为NaN。当声明的变量还未被初始化时,能量的默认值为undefined

(2)Null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象

(3)Undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义。典型用法是:

  a、变量被声明了,但没有赋值时,就等于undefined

  b、调用函数时,应该提供的参数没有提供,该参数等于undefined

  c、对象没有赋值属性,该属性的值为undefined

  d、函数没有返回值时,默认返回undefined

(4)null表示”没有对象”,即该处不应该有值。典型用法是:

  a、作为函数的参数,表示该函数的参数不是对象

  b、作为对象原型链的终点

 

判断 js 类型的方式

1. typeof

可以判断出'string','number','boolean','undefined','symbol'
但判断 typeof(null) 时值为 'object'; 判断数组和对象时值均为 'object'

2. instanceof

原理是 构造函数的 prototype 属性是否出现在对象的原型链中的任何位置

  1. function A() {}
  2. let a = new A();
  3. a instanceof A //true,因为 Object.getPrototypeOf(a) === A.prototype;

3. Object.prototype.toString.call()

常用于判断浏览器内置对象,对于所有基本的数据类型都能进行判断,即使是 null 和 undefined

4. Array.isArray()

用于判断是否为数组

 

ES5 和 ES6 分别几种方式声明变量

ES5 有俩种:var 和 function
ES6 有六种:增加四种,letconstclass 和 import

注意:letconstclass声明的全局变量再也不会和全局对象的属性挂钩

 

闭包的概念?优缺点?

闭包的概念:闭包就是能读取其他函数内部变量的函数。

优点:
①保护函数内的变量安全 ,实现封装,防止变量流入其他环境发生命名冲突
②在内存中维持一个变量,可以做缓存(但使用多了同时也是一项缺点,消耗内存)
③匿名自执行函数可以减少内存消耗

缺点:
①其中一点上面已经有体现了,就是被引用的私有变量不能被销毁,增大了内存消耗,造成内存泄漏,解决方法是可以在使用完变量后手动为它赋值为null;
②其次由于闭包涉及跨域访问,所以会导致性能损失,我们可以通过把跨作用域变量存储在局部变量中,然后直接访问局部变量,来减轻对执行速度的影响

 

浅拷贝和深拷贝

  • 浅拷贝
  1. // 第一层为深拷贝
  2. Object.assign()
  3. Array.prototype.slice()
  4. 扩展运算符 ...
  • 深拷贝

                
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/339893
推荐阅读
相关标签
  

闽ICP备14008679号