一、学习内容
开启严格模式:更加规范的书写js代码
1.全局的严格模式
"use strict";
2.立即执行函数中开启严格模式
(function () {
"use strict"
})();
3.函数中开启严格模式
function fn() {
"use strict"
}
- 函数的参数不能重名
- 构造函数需要使用new,不能直接调用
- 全局的函数中的this是undefined
- 不能删除已经声明的变量 - 例如: delete a
- 声明变量必须加关键字var
数据类型
- 基本数据
Number String Boolean null undefinde
- 对象(引用、地址)
Function Array Object
函数(function):相同代码块的集合
目的:就是为了实现某一特定的功能
函数的创建方式:
- 函数声明方式创建:在函数创建的前后都可以正常调用它
- 函数表达式方式创建:只能在函数的后面调用(如果使用var,存在预解析以及变量提升)
- 构造函数方式创建
函数和this之间的关系:
1. 全局函数中的this是window(严格模式下是undefined)
2.事件中this指向事件的触发者
3.定时器中this指向window
4.构造函数中的this指向实例对象
5.箭头函数中this没有指向(它的this就父级的this)
闭包(closure):有权访问另一个函数作用域中的变量的函数
闭包就是函数。
闭包的作用:扩展了变量的作用范围。(外部可以访问内部的变量)
结构: 外层函数的变量 + 内层函数
作用域
- 全局作用域
- 局部作用域(函数)
作用域链:内部可以访问外部的变量
|