学习前端第三十三天(函数对象,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

相关文章

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化