1. js数据类型有哪些?
- 基本(值)类型
Number ---- 任意数值
String ---- 任意字符串
Boolean ---- true/false
undefined ---- undefined
null -------- null
- 对象(引用)类型
Object
Array
Function
2. 判断数据类型的方法?
typeof
不能检测 null object array 的区别
instanceof
能检测 object array function 的区别
3. 谈谈内存
内存条 ---- 通电后产生的存储空间(临时的)
js 引擎对内存是自动分配
需要使用时分配
不需要使用时自动释放
执行完函数也会释放产生的内存
内存空间的分类
- 栈空间
全局变量 和 局部变量
变量的基本类型值 和 地址值
- 堆空间
对象数据
4. 谈谈对象
实体的抽象表达,组成有:
属性名 : 字符串(标识)
属性值 : 任意类型
一般对象 : 属性值不是 function 描述对象的状态
方法对象 : 属性值为function的属性 描述对象的行为
特别的对象 :
数组 : 属性名是 0, 1, 2, 3 之类的索引
函数 : 可以执行的
操作内部属性(方法) :
xxx.属性名 / xxx['属性名'] ---- 属性名有特殊字符 / 属性名是一个变量
5. 谈谈函数
用来实现特定功能的, n 条语句的封装体
只有函数类型的数据是可以执行的, 其它的都不可以
提高复用性, 便于阅读交流
函数也是对象
instanceof Object === true
函数有属性: prototype
函数有方法: call()/apply()
可以添加新的属性/方法
一般函数 : 直接调用 window
构造函数 : 通过new调用 实例对象
方法: 通过函数对象 call / apply 调用 传入的第一个参数对象
通过对象.调用内部的属性/方法 指向调用的对象
函数里有一个或多个值不能确定,应该由调用者确定,声明形参
return 外界需要一个值通过函数处理后返回
IIFE (Immediately Invoked Function Expression) 立即调用函数表达式 ---- (function(){ //实现代码 })();
什么函数才是回调函数 ?
你定义的, 但是你没有调用, 但它最终(在一定条件下或某个时刻)执行了
dom事件回调函数
定时器回调函数
ajax请求回调函数
生命周期回调函数