1.js的基本类型有哪些?引用类型有哪些?null和undefined的区别。

  基础类型:number,null,regex,string,boolean

  引用类型 : object,function,array
  null是数据类型,undefined未定义

  

2.如何判断一个变量是Array类型?

  array:Object.prototype.toString.call(obj)  [object Array]

  

3.引用类型和基本类型的区别

  引用类型:堆内存,是二级缓存,保存一个指针,指向另一个内存,如果程序不结束或者没有手动释放,则不释放

  基本类型:栈内存,是一级缓存,由系统分配或者释放。

  

4.事件委托(手写例子)

<div id='parent'></div>
<script>
function delegate(dom,type,fn){
document.body.click(function(e){
if(e.target = dom){
fn(e)
}
})
}
<script>

  

5.对闭包的理解,闭包的优缺点?

  闭包:一个可以让外部访问的函数。消耗内存

  

6.改变this的几种方法?

  call , apply , bind

  

7.显式和隐式原型

  显式原型:prototype , Function是一个Object,Function有一个属性prototype,它是一个指针,指向一个对象。这个对象有construsctor属性

  隐式原型:_proto_ ,指向创建这个对象的函数的prototype,一个指针指向一个对象。

  

8.创建对象的多种方式

//字面量
var obj = {name:'test'} //构造函数
var obj = new Object({name:''})

  

9.实现继承的多种方式和优缺点

//原型链
function Parent(){
this.name=''
}
function Son(){}
Son.prototype = new Parent() //创建新对象
var son = Object.create(new Parent()) //call,apply
function Son(){
Parent.call(this,'')
} //es6
class Son extends Person{}

  

10.变量提升

    var  value = 1;
  var test = function(){
    console.log(value)
    var value = 2;
  }
  test()
  function test(){
    console.log(value+1)
  }
  test();
// undefined , undefined

  

11.匿名函数

(function(){
alert('test')
})()

  

12.NaN != NaN,false != null

13.new 一个对象的过程

function ClassName (option){
console.log(option)
}
ClassName.prototype.say=function(){} let obj = new ClassName({}) 1.创建一个对象,传入原型 lo = Object.create(ClassName.prototype)
2.执行当前函数,并且this执行 newObj = ClassName.call(o)
3. 返回新的对象 newObj

  

14.实现一个bing函数

//bings函数
Function.prototype.binds = function () {
var args = [].slice.call(arguments,1),target = arguments[0]
return this.apply(target,args)
}
function tesa(a,b) {
console.log(this,a+b)
return a+b
}
console.log(tesa.binds({a:1},1,2))

  

  

最新文章

  1. JAVA 设计模式 职责链模式
  2. 批量导入Excel存在的问题及解决方案
  3. -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
  4. EF查看sql的方法
  5. pushState与replaceState区别
  6. Html5浏览器端less应用
  7. 【简单并查集】Farm Irrigation
  8. Jquery_基础(二) 包装集
  9. python 实现简单卷积网络框架
  10. 工具安装(mac)
  11. 消除TortoiseSVN 检出到(checkout)桌面上显示一堆问号
  12. UE4中多种颜色轮廓线的后期处理
  13. 随机取出数组中的某些值,并删除它们array_splice,array_slice
  14. html07
  15. SQLException: com.mchange.v2.c3p0.ComboPooledDataSource [ java.beans.IntrospectionException: java.lang.reflect.InvocationTargetException [numThreadsAwaitingCheckoutDefaultUser] ] has been closed()
  16. cnblogs.com用户体验
  17. Vue 源码 基础知识点
  18. [转载]查看JDK及Java框架的源代码
  19. 【Python】从简单案列中揭示常用内置函数以及数据类型
  20. spring boot 系统启动时运行代码(1)-@PostConstruct

热门文章

  1. Python(1)-第一天
  2. EasyUI系列学习(十一)-Accordion(分类)
  3. [ Nowcoder Contest 167 #D ] 重蹈覆辙
  4. 仿ofo单车做一个轮播效果
  5. Atmel studio 7.0 安装成功
  6. UVM基础之-------uvm report机制的使用
  7. Android 将Bitmap对象保存为png图片文件
  8. react Native环境 搭建
  9. 【Linux】CentOS安装Jenkins
  10. CAD由一个自定义实体事件中的id得到自定义实体对象(com接口VB语言)