js部分基础

Posted 小结巴巴吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js部分基础相关的知识,希望对你有一定的参考价值。

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部分基础的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

js基础

js代码片段: utils/lcoalStorage/cookie

JS代码片段:一个日期离现在多久了