js里面输入输出题

2023-11-08

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1.宏任务和微任务

console.log(1);

async function async1(){
    await async2();
    console.log(2);
}


async function async2(){
    console.log(3);
}
async1()

setTimeout(()=>{
    console.log(4);
},0)

new Promise(resolve =>{
    console.log(5)
    resolve()
}).then(()=>{
    console.log(6);
}).then(()=>{
    console.log(7);
})
console.log(8);

最后输入是13582674,这里需要注意的一点是同步先执行,异步后执行然后微任务先执行,宏任务再执行 ,比较重要的一点是promise里面和await的算同步(await后面的返回值相当于接的then)

函数引用和变量引用

var a =1;
(function a(){
	a = 2
	console.log(a)
})()

这里输出的是function a,因为如果引用是同一个名称得函数和变量,那么变量和函数就是需要比较,而函数引用是比变量引用大。

作用域和作用域链


var a =2
if(true){
	console.log(a)
	let a  = 2;
	console.log(a);
}

这个题很经典,因为会报错,因为当执行第一个console得时候由于作用域链,先在块级作用域当中执行,那么找到了下面得a,由于没有预先申明,生成了暂时性死区。

同样是作用域链

var x = 10
function f(){
  console.log(x);
}
function show(f) {
  var x = 20
  f()
}
show(f)   // 10

//

作用域在函数定义时就已确定,show(f) 里执行f(),f()先在自己作用域里查找x,没有再往外层作用域也就是全局作用域查找。

 // 可以跨块及作用域
if(true)
{
  var a =2

}


function fn(){

  console.log(a)
}


fn()

var name = 10;


function fn(){
  console.log(this.name)
}
obj = {
  name:2,
  getB:function (){
    fn()
  }
}

obj.getB()

上面返回的值是10,这个是因为fn是在getB里面但是fn()并没有被调用,引用的意思是需要有前缀obj.fn(),这样就是被调用,没有被调用就指向全局

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js里面输入输出题 的相关文章

  • 更改焦点上的边框/颜色

    我尝试制作脚本 在专注于之后更改 div 边框底部的颜色
  • 使用 Google Apps 脚本处理数组中输入元素中的多个文件

    我有一个表单 允许从下拉列表中选择一个项目并上传文件 项目的名称和 ID 保存在电子表格文档中 适用于一个文件 但我想上传多个文件 你能帮我修改一下脚本吗 HTML 部分如下所示 div class col md 4 col sm 6 di
  • Firebase HTTP Cloud Functions - 读取数据库一次

    我有 Firebase HTTPs 功能 该函数需要根据查询参数从 Firebase 数据库读取值 并根据该数据返回结果 Firebase JS SDK 表示要使用以下命令来执行此操作 return firebase database re
  • 使用 Mongoose 在 JSLint 中抑制“需要一个标识符,而是看到“默认”(保留字)”

    我在用着jshint验证我的 JavaScript 文件 在服务器端 我使用 Node js 和 Mongoose 在 Mongoose 中 我被鼓励以如下方式编写模式 var UserSchema new mongoose Schema
  • 如何共享 Swagger 文档

    我最近开始使用 Swagger 来编写文档 但有一些事情我仍然不清楚 我创建了 YAML 文档 现在我希望能够与团队的其他成员共享 pdf 或 HTML Javascript 页面中的文档 我无法使用 SwaggerHub 因为它们没有私有
  • jQuery show() 和 hide() 的更流畅替代方案

    我有一个带有隐藏列的页面设置 使用 jQuery show 和 hide 函数将列滑入和滑出 然而 它有点 笨重 并且在显示 隐藏时看起来不太流畅 相比之下 我还有一个使用 jquery UI 手风琴的页面部分 当在这些部分之间切换时 过渡
  • 克隆元素对应表单中所有元素的事件

    我成功克隆了表行 其中包含从数据库检索的值 不过我对它没有什么问题 我对所有元素使用了类 因为克隆会重复 ID 不会出现问题 因为它无法唯一地定位每个元素 使每个元素 行在这里唯一的方法是什么 功能如何工作 当第一次选择框时 所选 ID 的
  • 监听外部事件。 Bash 到 NodeJS 的桥梁

    在 NodeJS 进程内部 我如何监听来自 bash 的事件 例如 NodeJS side obj on something function data console log data Bash side do something Hel
  • 如何使用Javascript获取ASP.NEt Web Forms标签的值?

    我有以下标签控件
  • Javascript for 循环跳过最后一个元素

    我有一个数组 根据某些条件从中删除某些元素 当我删除元素时 我会重新启动 for 循环 因为索引已刷新 var k for k 0 k lt this j data length k if condition true this j dat
  • Jasmine 单元测试不等待承诺解析

    我有一个有角度的服务 它具有像这样的异步依赖项 function angular module app factory myService q asyncService function q asyncService var myData
  • 验证动态添加的输入字段

    我用过this http docs jquery com Plugins Validation以下表单的 jquery 验证插件
  • 删除数组中所有对象的属性

    我想删除bad数组中每个对象的属性 有没有比使用更好的方法for循环并从每个对象中删除它 var array bad something good something bad something good something for var
  • JavaScript 检查时区名称是否有效

    有没有一种方法可以在不使用外部库的情况下检查 JavaScript 中的时区名称是否有效 当用户在文本字段中输入时区名称时 我想验证时区是否有效 我知道我们可以使用时刻时区库轻松做到这一点 但我不想使用任何额外的库 我正在寻找纯 JavaS
  • 在Vue.js 3中添加全局变量

    如何在 Vue js 3 中添加全局变量 在 Vue js 2 中 我们在main js file Vue prototype myGlobalVariable globalVariable 最直接的替换就是app config globa
  • Electron 应用程序中的 NEDB 持久化

    我正在尝试从电子应用程序连接到 nedb CRUD 操作效果很好 但我没有看到 db 文件 D my db 检查隐藏文件 文件存在于某个地方 因为即使在机器重新启动后它也会保留数据 我怀疑电子威胁着我的相对路径 但我可以在任何地方找到它 v
  • Chrome + 另一个进程:进程间通信比 HTTP/XHR 请求更快?

    我有一个进程 1 对视频流进行实时图像处理 我需要在 Chrome 中的 HTML 页面中渲染该视频 同一台计算机上的进程 2 在canvas or img or videoHTML5 元素 由于我有 1000x1000 像素 x 3 字节
  • 通过均匀分布值来有效合并两个数组

    我见过许多问题 答案主题是通过交替值合并两个数组 他们是这样工作的 let array1 a b c d let array2 1 2 let outcome a 1 b 2 c d 但我希望输出更加高效 并且根据数组大小均匀分配值 exp
  • JavaScript 开关(真)

    你好 我正在尝试处理 ajax json 响应 这是我的代码 success function j switch true case j choice1 alert choice2 break case j choice2 alert ch
  • 表单帖子上的 asp.net mvc 编码

    我在我的 asp net mvc 表单 带有文本区域的 nicedit 中使用富文本编辑器 当我在帖子上提交表单时 因为它不是 html 编码的 我收到以下消息 从客户端检测到潜在危险的 Request Form 值 如何对 post 上的

随机推荐

  • 二、进程管理(一)进程与线程

    目录 1 1 进程的概念 1 1 1 进程的作用和组织 1 1 2 进程的状态与转换 1 1 3 进程控制 1 1 4 进程的通信 1 2 线程的概念 1 2 1线程的概念 1 2 2用户级线程和内核级线程 1 2 3多线程模型 1 1 进
  • 树莓派can总线_CAN总线知识点荟萃

    CAN协议和标准规范有哪些 表1 CAN协议和标准 从 CAN 总线协议颁布以来 CAN 总线经过了 ISO11898 1 ISO11898 2 ISO11898 3 ISO11898 4 ISO11898 5 ISO11898 6 国际标
  • 第五章:(1)S7-200 SMART PLC的编程语言及编程元件

    编程语言 1 梯形图 LAD 2 功能块图 FBD 3 语句表 STL S7 200 SMART PLC的编程元件 常用分类 中文 英文 注释 例 输入继电器 I I0 0 输出继电器 Q Q0 0 使用时不能超过PLC所提供的最大外部接线
  • Not allowed to load local resource: file:///D:/xxx.jpg

    问题 Not allowed to load local resource file D xxx jpg 出现以上情况的原因是浏览器不允许访问本地路径 所以你需要配置一个虚拟的路径代替本地的路径 解决方法 思路 通过tomcat代理 在to
  • 常见提高并发量的方式

    1 避免锁表操作 2 缓存常用数据 3 Redis使用时 连接串参数设置
  • Logstash将日志产生时间替换@timestamp

    一 跟着官网学习一下date插件 日期过滤器用于从字段中解析日期 然后使用该日期或时间戳作为事件的logstash时间戳 例如 syslog事件通常具有这样的时间戳 Bash Apr 17 09 32 01 你可以使用日期格式MMM dd
  • 互信息

    互信息 Mutual Information 是信息论里一种有用的信息度量 它可以看成是一个随机变量中包含的关于另一个随机变量的信息量 或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性 设两个随机变量 X Y X Y
  • openwrt web界面添加 菜单选项

    一 添加一级菜单选项 例如下图probe菜单选项 1 在 usr lib lua luci controller admin目录下 创建probe lua文件 如下 module luci controller admin probe pa
  • 服务端Too many open files解决方案

    服务端Too many open files解决方案 转自 http zhumeng8337797 blog 163 com blog static 1007689142012428104618670 cat proc sys fs fil
  • MySQL技术neimu InnoDB存储引擎 学习笔记 第七章 事务

    事务可确保把数据库从一种一致状态转换为另一种一致状态 在事务提交时 可确保要么所有修改都被保存了 要么所有修改都不被保存 InnoDB引擎事务完全符合ACID特性 1 原子性 atomicity 指整个事务是不可分割的工作单位 2 一致性
  • 【Shell牛客刷题系列】SHELL9 统计每个单词出现的个数:一起学习sort排序命令和uniq去重命令

    该系列是基于牛客Shell题库 针对具体题目进行查漏补缺 学习相应的命令 刷题链接 牛客题霸 Shell篇 该系列文章都放到专栏下 专栏链接为 专栏 Linux 欢迎关注专栏 本文知识预告 首先学习了对文件内容进行排序的sort命令和去除文
  • 企业微信API&群机器人配置

    我们公司用的企业微信 会把相关开发或者运维拉到一个群里 然后配置上一个群机器人 这样的话就可以用企业微信API来配置群机器人接收消息 把一些日常的服务器或者日志告警发送到对应的群 以下介绍两种常用的消息发送类型 文本类型和文件类型 发送文本
  • VUE中如何将tiff图片显示在浏览器中

    VUE中如何将tiff图片显示在浏览器中 下载tiff js 在index中引入 mounted 调用方法 this loadImage static pictif tif methods loadImage filename var xh
  • 初学盲打,免费,免安装,高颜值的在线打字练习网站

    小时候不怎么接触电脑没有练习过打字 长大后深刻地意识到盲打对工作效率的提高 于是下决心学盲打 和大家一样 刚开始的时候四处搜寻办法 直到遇见了下面两个网站 免费免安装 高颜值 练习打字的网站 均无利益关系 1 Touch Typing On
  • 31.Kubernetes(十三)-----监控(部署k8s高可用集群)

    k8s高可用集群 一 pacemaker搭建k8s高可用 server5和server6 1 配置部署 2 浏览器访问 3 高可用 二 k8s集群部署 三个节点相同操作 server7 server8 server9 1 安装docker
  • IDEA报错:java: 程序包jakarta.persistence不存在

    使用 jakarta 就不行 改成 javax 就运行成功
  • springboot整合log,每天生成一个新的带时间log文件,不同级别不同的输出位置

    首先在resources文件夹下创建 logback spring xml 在logback配置文件中添加
  • Grounded Language-Image Pre-training

    论文笔记 Grounded Language Image Pre training 摘要 引言 方法 Grounded Language Image Pre training 统一 度量衡 Object detection as phras
  • Java 线程池

    今天准备详细介绍java并发包下的Executor 以及Java提供了很多灵活的且极其方便的线程池的创建 嗯 那就慢慢说 大家肯定都学过Socket JavaSe的时候写聊天程序 游戏的服务器 以及Android程序自己需要提供服务器的 都
  • js里面输入输出题

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 1 宏任务和微任务 函数引用和变量引用 作用域和作用域链 同样是作用域链 1 宏任务和微任务 console log 1 async function async1