一,JS基础深入总结

一,数据类型
1,数据类型的分类:基本(值)类型,对象(引用)类型(Object,Function和Array是特殊的对象,前者可以执行,后者有数值下标,内部数据存储有序)
2,如何判断数据类型

   1)typeof:可以判断,数值/字符串/布尔值/undefined,不能判断null和object以及Object和Array(检查出的类型都是object)
   2)instanceof:判断某个对象是不是某个函数的实例(判断对象的具体类型)A instanceof B,A是不是B的实例
   3)===:判断undefined,null,(undefined衍生自Null,null==undefined)
一,JS基础深入总结_第1张图片一,JS基础深入总结_第2张图片

一,JS基础深入总结_第3张图片一,JS基础深入总结_第4张图片

instanceof 判断对象的具体类型
实例对象(类型对象),通过构造函数方式创建的对象称为实例对象。
3,undefined和null有什么区别?什么时候需要给变量赋值null?
undefined表示变量定义了没有赋值,null表示变量定义后并赋值为null。
在定义对象类型的变量时,可以将变量初始化null,来表明要创建的变量类型;(函数执行完毕,内部)对象类型的变量不再使用时,可以将该变量赋值为null(即垃圾对象,没有引用指向的对象),等待浏览器(垃圾回收器)自动回收。
4,如何严格区分变量类型和数据类型?
变量类型分为:基本类型(保存的是基本类型的数据)和引用类型(也称为变量值类型,保存的是引用(地址))
数据类型分为:基本类型和对象类型
5,什么是数据?什么是变量?什么是内存?三者之间有什么关系?
数据:存储在内存中代表特定信息的东西(代码也是数据),本质是01001……;数据可以传递,可读,可运算。
内存:内存条通电后产生的可存储数据的临时空间;内存的产生和死亡:内存条通电产生内存空间(存储、处理数据),内存条断电内存空间和数据都消失。一块内存有2个数据:内部存储的数据,地址值;
内存分类:栈(存储的是全局变量和局部变量),堆(存储的是对象,标识对象的变量是存储在栈中)
变量:可变化的量,与之对应的是常量,变量由变量名和变量值组成,变量名用来标识内存,变量值是内存中存储的数据;每个变量都对应一块内存
一切都是数据,内存是用来存储数据的空间,内存中操作目标是数据,变量的变量名用来标识内存。
6,var a = XX;a中保存的是什么?
XX是基本数据,a中保存的就是这个数据;XX是对象,a中保存的是对象的引用;XX 是一个变量,则a中保存的是XX的内容,可能是 基本数据也可能是地址值
7,引用类型变量赋值中的问题
2个引用类型变量指向同一个对象(变量中存储的内容相同,都是指向同一个对象的引用),通过一个变量修改对象内部的数据,另一个变量访问到的是修改之后的数据。
2个引用类型的变量指向同一个对象,让其中一个变量指向其它对象,另一个变量仍指向前对象
一,JS基础深入总结_第5张图片

一,JS基础深入总结_第6张图片

8,在JS中函数调用传递实参时是值传递还是引用传递?
无论实参是基本数据类型还是引用数据类型都是值传递,传递的都是变量中存储的内容(值),只不过引用类型变量中存储的值是一个地址值(引用)
9,JS引擎如何管理内存?
1)内存生命周期:分配内存空间得到它的使用权,可进行存储数据和处理数据多种操作,使用完内存就释放内存空间
2)释放内存:
局部变量:在函数执行完自动释放
对象:使用完毕赋值为Null成为垃圾对象,被浏览器(垃圾回收器)回收
全局变量:网页关闭时销毁
10,什么是对象?为什么要使用对象?对象是由什么的?如何访问对象内部数据?
1)对象是用来存储多个数据的容器,与之对应的是基本数据类型,基本数据类型的变量只能存储单个数据,一个对象表现为现实中的一个事物
2)使用对象来统一管理多个数据
3)对象由属性和方法组成,属性由属性值和属性名组成,属性值是字符串类型,属性值是任意数据类型;方法是特殊的属性,其属性值是函数;
4)属性的访问形式有两种:
对象.属性名(点):编码简单,
对象[’属性名’]:编码复杂,通用性更强,可在变量名不确定时使用
11,什么是函数?为什么要使用函数?如何定义函数?如何调用(执行)函数?
1)函数是实现特定功能的多条语句的封装体,封装到函数中的代码不会立即执行,在函数调用的时候才执行
2)使用函数可以提高代码复用,便于阅读交流
3)创建函数的方法有2种:
    函数声明:function fn(){},会存在函数声明提前,可以在函数定义前使用该函数
    函数表达式:var fn = function(){}
4)函数调用的形式有4种:
     直接调用:fn();      构造函数形式调用:new Fn();   fn.call(obj)    fn.apply(obj)让函数临时成为obj对象的方法来调用(修改函数this执行上下文)
 

12,什么样的函数才是回调函数?常见的回调函数有哪些?
1)由开发人员定位,没有显示调用,但最终执行了的函数
2)4类回调函数
   DOM事件回调函数,发生某个事件的DOM元素触发
          定时器回调函数,window触发
          ajax请求回调函数
          声明周期回调函数
13,IIFE(立即执行函数表达式)

作用:不会污染外部(全局)命名空间,用它来编码JS模块,隐藏实现。
函数要么存起来(起个名字),要么使用(执行)

一,JS基础深入总结_第7张图片一,JS基础深入总结_第8张图片
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(js高级)