学习前端第三十三天(函数对象,NFE,定时器)

一、函数对象

函数的类型是对象。

1.属性“name”

函数都有个“name”,即使函数被创建时没有名字,名称赋值的逻辑也能给它赋予一个正确的名字,然后进行赋值。

        const fn = function () { };
        function fnn() {
        }
        const user = {
            sayBye: function () { }
        };
        const arr = [function () { }];

        console.dir(fn.name);  //fn
        console.dir(fnn.name);  //fnn
        console.dir(user.sayBye.name); //sayBye
        console.dir(arr[0].name);  //空

2.属性“length”

length 返回形式参数个数,不包括剩余参数“...e”

        function fn(a, b, c) {  // 形式参数
            console.log(fn.name, fn.length)  // 统计形式参数个数,不包括剩余参数“...e”
        }
        fn(1, 2, 3, 4); // 实际参数,fn 3



        const user = {
            sayBye: function (x, y, z) {
                console.log(this.sayBye.name, this.sayBye.length)
            }
        };
        user.sayBye(); //sayBye 3

使用arguments,以参数在参数列表中的索引作为键,存储所有实际参数,以类数组对象的形式输出所有函数参数 。

3.自定义属性

在函数中随便添加属性,方法

        function fn(a, b, c) { };
       

        fn.title = "hello";
        fn.say = function () {
            console.log(this.title)
        };

        console.dir(fn);// ƒ fn(a, b, c)   say: ƒ ()    title: "hello"
        fn.say(); // hello
        

现在 title 被直接存储在函数里,而不是它外部的词法环境。

函数中的属性方法在函数调用后才会产生

4.命名函数(NFE)

一个普通的函数表达式给它加一个名字:

let sayHi = function func(who) { alert(`Hello, ${who}`); };

  1. 它允许函数在内部引用自己,确保只会引用当前函数。
  2. 它在函数外是不可见的。

二、定时器

1.setTimeout

将函数推迟到一段时间间隔之后再执行 ,存在返回值id,表示自己是第几个定时器

let timerId = setTimeout(func|code, [delay], [arg1], [arg2], ...)

       const h1 = setTimeout(
            function (a, b) {
                console.log("already 5s,present", a, b)
            },      // 执行的函数
            5000,   // 执行函数前等待的时间
            "css",  // 作为参数,传入前面的函数
            "html"  // 作为参数,传入前面的函数
        );

2.setInterval

setInterval 每间隔给定的时间周期性执行

let timerId = setInterval(func|code, [delay], [arg1], [arg2], ...)

        const h1 = setInterval(
            function (a, b) {
                console.log("already 3s,present", a, b)
            },      // 执行的函数
            3000,   // 执行函数前等待的时间,执行后循环
            "css",  // 作为参数,传入前面的函数
            "html"  // 作为参数,传入前面的函数
        );

 3.嵌套的setTimeout

周期性调度 嵌套的setTimeout
嵌套的 setTimeout 相较于 setInterval 能够更精确地设置两次执行之间的延时。

    
        let timerId = setTimeout(function tick() {
            console.log('tick');
            timerId = setTimeout(tick, 2000); // (*)
        }, 2000);

        // 精度要求低的时候用 setInterval
        // 精度高一点的时候用 setTimeout

4.同步代码,异步代码

        console.log("1"); // 同步代码
        console.log("2"); // 同步代码
        setTimeout(
            () => {
                console.log("hello1") // 异步代码
                console.log("hello2") // 异步代码
            },
            0,   // 可以不传参数,默认0
        );
        console.log("hi...");  // 同步代码

        // 同步代码先执行,异步代码后执行

setTimeout中的执行代码为异步代码,一般的代码为同步代码;

同步代码先执行,所有同步代码执行完后异步代码执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/609446.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL——利用变量进行查询操作

新建链接,自带world数据库,里面自带city表格。 DQL # MySQL利用变量进行查询操作 set cityNameHaarlemmermeer; select * from city where NamecityName;# 多个结果查询 set cityName1Haarlemmermeer; set cityName2Breda; set cityName3Willemstad; s…

重生奇迹mu烈火剑带什么技能

在重生奇迹mu游戏中,35级是每个职业的分水岭,只要到了35级,三职业都可以学习自己的高级技能,道士可以召唤自己的大狗,法师拥有冰咆哮,战士就是咱们今天要说的烈火剑法,这三种技能都需要玩家自己…

Numpy求最大、最小值、求累乘、累和

Numpy求最大、最小值 代码举例: ​ 输出结果为: ​ 在这个例子中,我们首先导入了NumPy库,然后创建了一个3x3的矩阵A。接着,我们使用np.max()函数来求矩阵A的最大值,并将结果存储在变量max_value中&#xff…

树莓派搭建wordpress,上传主题时显示wordpress上传的文件大小超过 php.ini 文件中定义的 upload_max_filesize 值

问题:wordpress上传的文件大小超过 php.ini 文件中定义的 upload_max_filesize 值 解决方案:进入树莓派shell界面 输入指令查找php.ini文件 find / -name ‘php.ini’ 修改php.ini文件 sudo vim /etc/php/8.1/cli/php.ini 找到 upload max filesize…

异步时序电路的分析方法

异步时序电路的分析方法 在异步时序电路中,只有部分触发器由时钟脉冲 CP触发,其它触发器由电路内部信号触发。分析异步时序电路时需写出时钟方程,并特别注意各触发器的时钟条件在何时满足,其状态方程才能使用 Tips:在…

OpenHarmony 实战开发——3.1 Release + Linux 原厂内核Launcher起不来问题分析报告

1、关键字 Launcher 无法启动;原厂内核;Access Token ID; 2、问题描述 芯片:rk3566;rk3399 内核版本:Linux 4.19,是 RK 芯片原厂发布的 rk356x 4.19 稳定版内核 OH 版本:OpenHa…

5G NR 吞吐量计算 and 4G LTE 吞吐量计算

5G NR Throughput References • 3GPP TS 38.306 V15.2.0 (2018-06) ➤J : number of aggregated component carriers in a band or band combination ➤Rmax : 948/1024 • For the j-th CC, Vlayers(j) is the maximum number of layers ➤Qm(j) : Maximum modulation orde…

2024数维杯B题全保姆教程 生物质和煤共热解问题的研究

B题 生物质和煤共热解问题的研究 (1)基于附件一,请分析正己烷不溶物(INS)对热解产率(主要 考虑焦油产率、水产率、焦渣产率)是否产生显著影响?并利用图像 加以解释。 根据我视频的分析,这里采用…

阅读送书抽奖?玩转抽奖游戏,js-tool-big-box工具库新上抽奖功能

先讨论一个问题,你做软件工作是为了什么?从高中选专业,就喜欢上了软件开发?还是当初毕业不知道干啥,不喜欢自己的专业,投入软件开发的怀抱?还是干着干着别的,突然觉得互联网行业真不…

Springboot+Vue项目-基于Java+MySQL的毕业就业信息管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

什么是趋势交易?澳福无偿分享

盈利的本质就是能低买高卖,那么怎么能找到交易中的高点和低点呢?其实很简单,只需要运用趋势交易就能很快的找到交易中的高点和低点。那么什么是趋势交易呢?澳福外汇今天详解! 趋势交易有3种趋势,如果其包含…

对话NVIDIA英伟达:AI已照进现实 | 最新快讯

文 | MetaPost NVIDIA 创始人兼首席执行官黄仁勋在 GTC 2024 主题演讲上表示:下一波 AI 浪潮将是 AI 对物理世界的学习。 当下,全球范围内价值超过50万亿美金的行业正在竞相实现数字化,数字孪生技术正在赋能千行百业。NVIDIA Omniverse 中国…

“感恩遇到你,郭护士!”佛山市一医院 护士回家途中救了位老奶奶

“感恩遇见你,我感谢郭护士关爱长者、热心助人的高尚行为……”看着信件上感谢的话语,郭琳玲的内心感动不已。而这一封亲笔手写的感谢信,是来自一位将近八十岁的老奶奶。 郭琳玲是佛山市第一人民医院创伤重症功能神经外科的一名护士。4月30日…

【快讯】山东省第四批软件产业高质量发展重点项目开始申报

为加快落实《山东省高端软件“铸魂”工程实施方案(2023-2025)》,提高软件产业规模能级,提升关键软件技术创新和供给能力,塑强数字经济发展核心竞争力,确定开展第四批软件产业高质量发展重点项目申报工作&am…

深入探讨利用大型语言模型的力量的策略 (LLMs)

Note: 提示词工程是一门融合了艺术和科学的学科——它既是对技术的理解,也是对创造力和战略思维的理解。 本文为对LLMS策略分享内容学习后的整理,尝试抛开网上广泛讨论和记录的传统提示词工程技术,展示通过实验学到的新见解,以及…

树和二叉树的定义和基本术语

文章目录 前言一、树的定义二、树的基本术语三、二叉树的定义总结 前言 T_T此专栏用于记录数据结构及算法的(痛苦)学习历程,便于日后复习(这种事情不要啊)。所用教材为《数据结构 C语言版 第2版》严蔚敏。 一、树的定义…

React:Router-2. createBrowserRouter函数式

参考文档:ReactRouter官网 前边的文章 BrowserRouter组件式路由 提供了组件式路由的方式,在react-router6.4.0及以上版本,提供了 createBrowserRouter 函数式路由创建方式。 一、创建路由 1. 新建router.js文件,使用createBrow…

线程-进程-多线程 概述简介

01 线程简介 任务, 进程, 线程, 多线程 多任务 什么是多任务? 生活中的例子 第一个例子: 这张图片, 一个人边吃饭边玩手机, 同时做了两件任务,大家不要去当这样的低头族. 第二个例子: 第二张图, 开车的时候能打电话, 能打点滴 第三个例子: 第三个图, 说明了我们可以边…

HTML4(三):表单

文章目录 表单1. 基本结构2. 常用表单控件2.1 文本输入框2.2 密码输入框2.3 单选框2.4 复选框2.5 隐藏域2.6 提交按钮2.7 重置按钮2.8 普通按钮2.9 文本域2.10 下拉框2.11 示例 3. 禁用表单控件4. lable标签5. fieldset与legend标签6. 总结 表单 概念:一种包含交互…

vue3中如何更优雅的使用echarts?

echarts在vue或者react中使用存在的问题 每个图表需要从头到尾写地一遍完整的option配置,这样一来的话就会显得十分的冗余在同一个项目中,其实不难发现各类图表设计十分相似,甚至是相同,因此我们没必要一直做重复的工作&#xff…
最新文章