js高级 笔记03

目录

01 如何避免全局变量

02 递归函数

03 浅拷贝

04 深拷贝

05 函数的调用模式

06 异步代码数据丢失问题


 

01 如何避免全局变量

        自调用函数 常用于避免全局变量冲突的问题

        不同的函数都有一个独立的作用域  所以可以解决命名冲突的问题

        自调用函数也叫做沙箱函数

        自调用函数的返回值  可以设置但是几乎不用

        自调用函数可以传递参数 实参写在调用的括号里 形参写在function后面的括号里

        沙箱函数不需要函数名称

        对于自调用函数来说 不加分号可能会报错

        所以在自己的自调用函数前面加分号  分号再多也不会出现问题 就是结束的意思

02 递归函数

        递归: 层层递进  逐步回归

        递归函数  函数的表现形式

                函数自己调用自己(递进过程)

                return 结束当前函数(回归过程)

03 浅拷贝

        只能拷贝第一层  如果第一层是基本数据类型可以使用浅拷贝 

        如果第一层包含了复杂数据类型 复杂数据类型的赋值是引用地址的关系 会互相影响

04 深拷贝

        递归深拷贝: 利用递归函数将obj1的所有成员都拷贝给obj2

05 函数的调用模式

        函数模式: 函数名()

        方法模式: 对象.函数名()

        构造函数模式:  new构造函数名()

        使用call或者applay调用:

                函数名.call(函数内部this指向的新对象,实参1,实参2...)

                函数名.applay(函数内部this指向心对象,[实参1,实参2.....])

        call和applay第一个参数传入null或者undefined表示不改变内部的this指向

 

06 异步代码数据丢失问题
for(var i=0;i<10;i++){
    setTimeout(function(){
        console.log(i);
    },0)
}

        for循环是同步任务 是非耗时任务 所以页面加载时就直接执行了

        但是里面的定时器是耗时任务 是异步任务 不会在页面加载的时候执行

        而是被推给了宿主环境(浏览器)去执行  

        等到定时器时间到了以后 此时页面早就加载完毕了  再去执行定时器的代码的时候

        打印i变量时  因为i变量是全局变量  页面加载完毕之后i就变成了10

        所以10个定时器用的是同一个i此时变成了10个10

相关推荐

  1. js高级 笔记03

    2024-04-23 01:02:05       12 阅读
  2. js高级 笔记01

    2024-04-23 01:02:05       15 阅读
  3. C#高级 03委托

    2024-04-23 01:02:05       30 阅读
  4. Js高级语法

    2024-04-23 01:02:05       26 阅读
  5. 编程笔记 html5&css&js 013 HTML布局

    2024-04-23 01:02:05       36 阅读
  6. 编程笔记 html5&css&js 030 HTML音频

    2024-04-23 01:02:05       27 阅读
  7. 编程笔记 html5&css&js 032 HTML Canvas

    2024-04-23 01:02:05       35 阅读
  8. 编程笔记 html5&css&js 033 HTML SVG

    2024-04-23 01:02:05       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 01:02:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 01:02:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 01:02:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 01:02:05       20 阅读

热门阅读

  1. FastJson的使用

    2024-04-23 01:02:05       13 阅读
  2. 【程序设计与算法——C/C++入门】C语言入门

    2024-04-23 01:02:05       17 阅读
  3. 37-4 用Python编写SQL注入的基于错误报告的POC

    2024-04-23 01:02:05       14 阅读
  4. 12.Vue2.x收集表单数据input | v-model | select

    2024-04-23 01:02:05       13 阅读
  5. STM32 CAN发送邮箱和接收FIFO

    2024-04-23 01:02:05       10 阅读
  6. 若依学习记录

    2024-04-23 01:02:05       14 阅读
  7. 聚类算法的学习

    2024-04-23 01:02:05       12 阅读
  8. uniapp微信小程序蓝牙连接与设备数据对接

    2024-04-23 01:02:05       13 阅读
  9. 《1w实盘and大盘基金预测 day25》

    2024-04-23 01:02:05       13 阅读