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

2024-05-09 21:20

本文主要是介绍学习前端第三十三天(函数对象,NFE,定时器),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、函数对象

函数的类型是对象。

1.属性“name”

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

        const fn = function () { };function fnn() {}const user = {sayBye: function () { }};const arr = [function () { }];console.dir(fn.name);  //fnconsole.dir(fnn.name);  //fnnconsole.dir(user.sayBye.name); //sayByeconsole.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 3const 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中的执行代码为异步代码,一般的代码为同步代码;

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

这篇关于学习前端第三十三天(函数对象,NFE,定时器)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/974538

相关文章

Python容器转换与共有函数举例详解

《Python容器转换与共有函数举例详解》Python容器是Python编程语言中非常基础且重要的概念,它们提供了数据的存储和组织方式,下面:本文主要介绍Python容器转换与共有函数的相关资料,... 目录python容器转换与共有函数详解一、容器类型概览二、容器类型转换1. 基本容器转换2. 高级转换示

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

Linux内核定时器使用及说明

《Linux内核定时器使用及说明》文章详细介绍了Linux内核定时器的特性、核心数据结构、时间相关转换函数以及操作API,通过示例展示了如何编写和使用定时器,包括按键消抖的应用... 目录1.linux内核定时器特征2.Linux内核定时器核心数据结构3.Linux内核时间相关转换函数4.Linux内核定时

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

pandas使用apply函数给表格同时添加多列

《pandas使用apply函数给表格同时添加多列》本文介绍了利用Pandas的apply函数在DataFrame中同时添加多列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、Pandas使用apply函数给表格同时添加多列二、应用示例一、Pandas使用apply函

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

Python中Namespace()函数详解

《Python中Namespace()函数详解》Namespace是argparse模块提供的一个类,用于创建命名空间对象,它允许通过点操作符访问数据,比字典更易读,在深度学习项目中常用于加载配置、命... 目录1. 为什么使用 Namespace?2. Namespace 的本质是什么?3. Namesp

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符

《sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符》:本文主要介绍sqlserver、mysql、oracle、pgsql、sqlite五大... 目录一、转义符1.1 oracle1.2 sqlserver1.3 PostgreSQL1.4 SQLi