小新老师的个人网站:
xin88.top
包含本阶段所有注意事件, 相关软件, 视频等
阶段内容
1阶段: 基础-成亮 服务器的基础 node.js express mysql...
2阶段: WEB基础 HTML CSS SASS AJAX bootstrap 云服务器
3阶段: WEB页面升级- JS核心
探讨: JS的核心设计理念, 原理 -- 面试题必考区
新的语法: ES5 6 7 8 ... 新版本的JS语法, 让代码书写更简单
DOM. jQuery: 利用JS动态操作网页
Vue: 目前世界排名 前三的 web框架, 国内No.1
4阶段: 高级内容 + 手机端开发
5阶段: 更多的高级框架知识
JS的奇葩设计, 你所见到的代码 和 实际执行的代码 不一样
JS引擎会先 把 代码中的声明操作提升到作用域的顶部, 然后再执行调整过顺序后的代码




面试题



宿主环境: JS运行所在的环境, 例如 浏览器 和 node.js
浏览器提供了 window 对象, 其中包含所有的系统 属性/方法
window对象称为 全局对象/全局作用域

函数在运行时 临时生成的对象, 用于存储函数中声明的变量们
作用域: 一类具有特殊功能的对象的称呼
全局作用域: 存储了系统的方法/属性 -- window
局部作用域: 函数执行时 临时生成的对象, 存储了函数中声明的变量们
需要浏览器的 断点调试功能, 才能查看
就近原则 优先使用里自身最近的上层作用域中的

闭包Closure:
函数在声明时, 会把自身使用到的 来自其他作用域的变量, 所在的作用域保存在自己的 scopes 属性里
为什么: 避免销毁
天宇案例: 怕QQ会员过期, 提前把音乐下载到本地用
利用闭包特征能做什么?
为函数制造私有的变量, 避免全局污染
缺点: 浪费内存 来长期存储闭包作用域
arguments: 函数自带的一个隐藏的属性
作用: 存储所有函数的实参
应用:
制作实参个数不固定的函数 -- 例如求最大值
函数重载: 利用实参的 个数/类型 不同, 实现不同的代码逻辑
制作一个多功能的函数



闭包的应用





函数中, 隐藏自带的一个属性/变量
作用: 保存函数收到的所有实参
应用场景:
制作实参个数不固定的函数, 例如: 求最大值
函数重载: 制作多功能函数, 根据实参的个数 或 类型 不同, 内部做判断 然后执行不同的代码逻辑


this: 函数中自带的一个属性, 代表了函数使用时所在的对象
粗暴理解
对象.函数(): 函数的this就是前面的对象
函数(): this就是window



引用类型: 对象是地址传递, 引用类型





