一、基础知识
1. 组成三部分
- 核心(ECMAScript)
ECMAScript提供核心语言功能,规定了js的语法、类型、语句、关键字、保留字、操作符、对象 - 文档对象模型(DOM)
提供访问和操作网页内容的方法和接口 - 浏览器对象模型(BOM)
提供与浏览器交互的方法和接口
2. 数据类型
简单数据类型(基本数据类型):
Undefined、Null、Boolean、Number、String、Symbol (es6新增)
复杂数据类型:
Object (包括 Array、Function、Object)
所有值最终都是7种数据类型之一。
数据类型检测:js-检测数据类型
3. 操作符
这里主要讲一下布尔操作符。
(1)逻辑非 !
先转换为布尔值,再求反。
!! 模拟 Boolean()转型函数。
(2)逻辑与 &&
都是true返回true,有false返回false。不一定返回布尔值,可以返回对象等。
短路操作符:如果第一个操作数求值结果为false,第二个操作数不会求值。
应用:callback && callback()
(3)逻辑或 ||
有true返回true,都是false返回false。不一定返回布尔值,可以返回对象等。
短路运算符:如果第一个操作数求值结果为true,第二个操作数不会求值。
应用:data = result || []
4. 语句
条件语句:if…else if…else, switch…case
循环语句:while, do…while, for循环
控制语句执行:break 和 continue
- break语句,立即退出循环(整个),强制继续执行循环后面的语句;
–> 终止循环 - continue语句,立即退出循环(本次),退出后从循环的顶部继续执行。
–> 跳出本次循环,继续下一次循环
5. 数组方法
检测类型:instanceof,isArray()
转换方法:toString(),valueOf(),toLocaleString(),join()
栈和队列方法:push(),pop(),shift(),unshift()
重排序方法:reverse(),sort()
操作方法:concat(),slice(),splice()
位置方法:indexOf(),lastIndexOf()
迭代方法:every(),some(),filter(),map(),forEach()
归并方法:reduce(),reduceRight()
6. 函数的几个注意点
-
函数内部属性
函数内部,有两个特殊的对象: arguments 和 this。
arguments可以获取函数参数,arguments对象的长度由传入的参数个数决定,不是由定义函数时的命名参数的个数决定。(伪数组)
this引用的是函数据以执行的环境对象,全局调用函数this指向window。 -
apply 和 call
apply(this值,参数数组)
call(this值,参数1,参数2…)
apply和call都是在特定的作用域中调用函数,相当于设置函数体内 this 对象的值。
强大之处:能够扩充函数赖以运行的作用域。
7. 基本包装类型
Boolean、Number 和 String
- 字符串方法
字符方法:charAt(),charCodeAt()
字符串操作方法:concat(),slice(),substring(),substr()
字符串位置方法:indexOf(),lastIndexOf()
去除空白字符方法:trim()
字符串大小写转换方法:toLowerCase(),toUpperCase()
字符串的模式匹配方法:match(),search(),replace(),split()
二、创建对象
三、继承
四、高级应用(下次介绍)
- 递归
- 闭包
- 私有变量