目录
前言
主要讲解基础内容,数据类型(分类,判断,区别,内存等),对象(什么是对象,为什么要用对象,对象的组成,如何访问对象内部数据等),函数(什么是函数,为什么要用函数,如何定义函数,如何调用函数,什么是回调函数,常见的回调函数,IIFE及函数中的this)相关内容。
一、数据类型
1、分类
基本(值)类型
String:任意字符串
Number:任意的数字
boolean:true/false
undefined:undefined
null:null
对象(引用)类型
Objec:任意对象
Function:一种特别的对象(可以执行)
Array:一种特别的对象(数值下标,内部数据是有序的)
2、判断
typeof:可以判断undefined/数值/字符串/布尔值/function
不能判断:null与object obejct与array
instanceof:判断对象的具体类型
===可以判断:undefined、null
3、undefined与null的区别?
undefined代表定义未赋值;null代表定义并赋值了,只是值为null
4、什么时候给变量赋值为null呢?
初始赋值,表明将要赋值为对象
结束前,让对象成为垃圾对象(被垃圾回收器回收)
5、严格区别变量类型与数据类型?
数据的类型:基本类型
对象类型
变量的类型(变量内存值的类型)
基本类型:保存的就是基本类型的数据
引用类型:保存的是地址值
6、var a = XXX,a内存中到底保存的是什么?
xxx是基本数据,保存的就是这个数据
xxx是对象,保存的是对象的地址值
xxx是一个变量,保存的是xxx的内存内容(可能是基本数据,也可能是地址值)
7、关于引用变量赋值问题
2个引用变量指向同一个对象,通过一个变量修改对象内部数据,另一个变量看到的是修改之后的数据。
2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一引用变量依然指向前一个对象。
8、在JS调用函数时传递变量参数时,是值传递还是引用传递
理解一:都是值(基本/地址值)传递
理解二:可能是值传递,也可能是引用传递(地址值)
9、JS引擎如何管理内存?
内存生命周期:分配小内存空间,得到它的使用权,存储数据,可以反复进行操作,释放小内存空间。
释放内存:局部变量:函数执行完自动释放
对象:成为垃圾对象==>垃圾回收器回收
二、对象
1、什么是对象?
多个数据的封装体,用来保存多个数据的容器,一个对象代表现实中的一个事物
2、为什么要用对象?
统一管理多个数据
3、对象的组成
属性:代表现实事物的状态数据
属性名(字符串)和属性值(任意)组成
属性名都是字符串类型,属性值是任意类型
方法:代表现实事物的行为数据
一种特别的属性(属性值是函数)
4、如何访问对象内部数据?
.属性名:编码简单,有时候不能用
['属性名']:编码麻烦,能通用
5、什么时候必须使用['属性名']的方式?
属性名包含特殊字符:- 空格;属性名不确定
三、函数
1、什么是函数?
实现特定功能的n条语句的封装体,只有函数是可以执行的,其他类型的数据不能执行
2、为什么要用函数?
提高代码复用,便于阅读交流。
3、如何定义函数?
函数声明,表达式
4、如何调用(执行)函数?
test():直接调用
obj.test():通过对象调用
new test():new调用
test.call/apply(obj):obj.test() 临时让test成为obj的方法进行调用
5、什么函数才是回调函数?
三个特点:
1、你定义的
2、你没有调
3、但是最终它执行了(在某个时刻或者某个条件下)
6、常见的回调函数?
dom事件回调函数==>this是发生事件的dom元素
定时器回调函数 ==>this是window
ajax请求回调函数
生命周期回调函数
7、IIFE(匿名函数自调用)
全称:Immediately - Invoked Function Expression
作用:隐藏实现,不会污染外部(全局)命名空间,用它来编写js模块
8、函数中的this
this是什么?
任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window
所有函数内部都有一个变量this,它的值是调用函数的当前对象
如何确定this的值?
test():window
p.test():p
new test():新创建的对象
p.call(obj):obj
9、关于语句分号问题
js一条语句的后面可以不加分号,是否加分号是编程风格问题,没有应不应该,只有你自己喜欢不喜欢。
在下面2种情况下不加分号会有问题
1、小括号开头的前一条语句
2、中方括号开头的前一条语句
解决办法:在行首加分号
强有力的例子:vue.js库
总结
主要讲解基础内容,数据类型(分类,判断,区别,内存等),对象(什么是对象,为什么要用对象,对象的组成,如何访问对象内部数据等),函数(什么是函数,为什么要用函数,如何定义函数,如何调用函数,什么是回调函数,常见的回调函数,IIFE及函数中的this)相关内容。