码迷,mamicode.com
首页 > Web开发 > 详细

js部分基础

时间:2018-03-14 19:39:05      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:pre   cal   nbsp   script   call   obj   delegate   二级缓存   委托   

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,‘‘)
}

  

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

js部分基础

标签:pre   cal   nbsp   script   call   obj   delegate   二级缓存   委托   

原文地址:https://www.cnblogs.com/jiebba/p/7716278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!