返回介绍

第六课时

发布于 2024-09-07 17:38:19 字数 5755 浏览 0 评论 0 收藏 0

上节回顾:

1、 switch

  • switch case break default 条件 判断 退出 默认
    • a.只要匹配上一个 case ,那么它下面的所有的 case 都会执行包括 default
    • b. break 的意思跳出当前结构

2、 for

  • 循环有三个要素
    • a.循环变量
    • b.判断条件(循环体)
    • c.改变循环变量
    • d. continue 的意思结束本次循环进入下次循环

知识点:

1、 while/do...while 没有谁好谁坏 只有适应场景不同

  • 比如:先吃饭 在买单 do..while 用户体验高 有风险 扫雷游戏也是先体验 在问是否退出 提高体验
  • 比如:先买单 在吃饭 while 用户体验不高
  • 一般情况下面,如果条件判断是 数字的 比较 ==<>for 循环优先。
  • 如果是 非数值相关的 比较循环, while 优先

2、代码内存解析

闭包

  • a.程序永远是先定义后执行
  • b.执行永远从上到下
  • c.函数定义的话在堆(只是一个地址而已)
  • d.函数调用的时候,就会有自己的堆和栈( 闭包

闭包 作用域

  • 记住:先定义 var function 在从上往下执行
  • 定义定义在自己的栈里面 执行在自己的堆里面
  • 运行在运行的环境中
  • 函数每调用前 只是一个地址
  • 只要调用一次函数就会动态开辟一块内存 创建一个封闭的空间 在自己的封闭的空间的栈中定义 var 在执行
  • 函数执行完 里面的东西全部销毁
//alert(x);//9:执行弹出 x,结果 x 没定义,错误。
alert(i);//9:执行弹出 i,然而 i 之前已经定义,只不过没地址,因此是 undefiend
var i = 10;//1:var i; 10:把常量池中 10 的地址赋给栈中的 i
var j = "你好";//2:var j; 11:把常量池中 你好 的地址复给栈中的 j
var k = z = null;//3:var k,z; 12:把堆中 null 的地址赋值给 z 和 k
var m = function(){//4:var m; 5:function 匿名函数 13:把匿名函数在堆中的地址赋给栈中的 m
alert(2);
}
var b = document.body;//6:var b; 14:把堆中 document.body 对象的地址赋给栈中的 b
var f = true;//7:var f; 15:把常量池中 true 的地址赋给栈中的变量 f
function m(){//8:function m;
alert(1);
}
function m(){
c = 50;//在局部变量中找不到定义的 c 沿着作用域链找到了全局变量的 c
alert('哈哈哈');
//var c;
}

var c = 150; // 函数 m() 还未执行到 还没被销毁 此时全局 c 的值 c=50
m();
var c = 20;//到这里一步 m() 已经执行完了 函数已经销毁了 这里的 c 还是 20
alert(c);//20
function m(){
c = 50;//在局部变量中找不到定义的 c 沿着作用域链找到了全局变量的 c
alert('哈哈哈');
function inner(){
c = 30;
alert('嘻嘻');
}
inner();//c 在函数内部找不到定义 所以沿着作用域链找到了全局的 c
}

var c = 20;//到这里一步 m() 还没执行 函数没被销毁 这里的 c 是 30
m();

alert(c);//30

4、object 对象

5、面向对象的程序设计

  • a. function 构造器
  • b. prototype 原型
  • c. foreach
  • c.作用域
  • d.继承

一些内存图示

闭包示例 1

闭包示例 2

闭包 1

闭包 2

闭包 3

原型链的几张图解

原型链图解

js 原型链演示 00-new Object

js 原型链演示 01-函数 Foo 声明

js 原型链演示-对象继承模式-01-浅拷贝

js 原型链演示 02-new Foo()

js 原型链演示 02-1-new 原理

js 原型链演示 03-Foo.prototype

js 原型链演示-对象继承模式-03-基于对象的原型继承

js 原型链演示 05-继承函数示例

js 原型链演示 06-继承 prototype 模式

js 原型链演示 07-继承 prototype 模式改进

js 原型链演示 08-继承 prototype 直接继承

js 原型链演示 08-继承 prototype 空对象中介

js 原型链演示 09-继承 prototype 空对象中介封装 expend

js 原型链演示 10-构造器拷贝继承

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文