当前位置: 首页 > news >正文

【JavaScript】复习 【对象参数】【函数参数】

js不会检查任何参数类型,任何参数都可以作为参数传递

1、对象参数

改变量随便改,改对象要看这个对象是不是有多个变量同时指向这个对象

const 用来定义常量,只能赋值一次。

                                       变量------->对象------->属性

被const修饰的对象              不能改         可以改

使用对象作为参数

设置默认对象的参数,定义以对象为参数的函数

第一种情况,不传参数调用函数

function fn2(a={name:"沙和尚"}){console.log("a=", a)a.name = "唐僧"console.log("a=",a)
}fn2()
fn2()

结果:

 说明无参数调用时候,每次调用都会创建一个对象

第二种传已有的对象作为参数

let obj = {name:"孙悟空"}function fn2(a={name:"沙和尚"}){console.log("a=", a)a.name = "唐僧"console.log("a=",a)
}fn2(obj)
fn2(obj)

结果:

 说明传现有对象进去时候,不会再创建新的对象

2、函数参数

因为万物皆是对象,函数也是。既然函数能传对象参数,那么也能传函数参数

所以

const a= (b) => {console.log("b=",b)
}const c= () => {console.log("我是c函数")
}a(c)

结果:

 相当于我们把函数作为参数传递到了a函数里,如果不清晰,我们也可以把打印语句换成调用作为参数的函数

const a= (b) => {// console.log("b=",b)b()
}const c= () => {console.log("我是c函数")
}a(c)

 结果:(可以看到c函数被a调用了)

复习箭头函数:

形式:()=> {}

函数表达式形式:const a = () => {}  

箭头函数的参数当且仅当只有一个参数时候,可以省略括号(不推荐,知道即可)

 箭头函数的代码块里如果只有一条语句的时候,可以省略大括号(不推荐,了解即可)

函数返回值小小说一下,因为js没有类型,所以直接在函数里面return

并且注意:在JS中任何值都可以作为返回值使用(包括对象和函数之类)

如果return后面不跟任何值,则相当于返回undefined

如果不写return,函数的返回值依然是undefined

return一旦执行,函数立即结束(这个不用说hh)

const a=()=>{return "hello"
}let b = a()
console.log(b)

结果:

 因为箭头函数的返回值可以直接写在箭头后面,所以我们可以继续简化

const a=()=>"hello"let b = a()
console.log(b)

结果是一样的:

 但是这种省略会出现问题,当希望返回的是对象的时候,对象定义的外面两个大括号会被识别为定义函数的大括号从而被识别为普通函数的代码块,如:

const a=()=> {name:"这是一个对象"}let b = a()
console.log(b)

结果是undefined: 

那要怎么解决呢,我们再对象外面再加一对圆括号就可以了

const a=()=> ({name:"这是一个对象"})let b = a()
console.log(b)

结果:

3、作用域(变量的可见区域)

作用域有两种:

1、全局作用域

     -全局作用域在网页运行时候创建,在网页关闭时消耗

     -所有直接编写到script标签中的代码都位于全局作用域中

     -全局作用域中的变量是全局变量,可以在任意位置访问

2、局部作用域

     - 块作用域 

         -块作用域是一种局部作用域

         -块作用域在代码块执行时创建,代码块执行完毕它销毁

         -在块作用域中声明的变量是局部变量,只能在块内访问,外部无法访问。

作用域链:

         -当我们使用一个变量时,

              JS解释器会优先在当前作用域中寻找变量,

                      如果找到了则直接使用

                      如果没找到,则去上一级作用域中寻找,找到了则使用

                      如果没找到,则继续去上一级寻找,以此类推

                      如果一直到全局作用域都没找到,则报错 xxx is not defined 

 

var用来声明变量,作用和let相同,但是var不具有块作用域

          -在全局中使用var声明的变量,都会作为window对象的属性保存

         -使用function声明的函数,都会作为window的额方法保存

        -使用let声明的变量不会存储在window,而存在一个地方

       在局部作用域中(如函数中)没有用var或let声明属性,那么它会自动成为window的属性,也就是全局变量

相关文章:

【JavaScript】复习 【对象参数】【函数参数】

js不会检查任何参数类型,任何参数都可以作为参数传递 1、对象参数 改变量随便改,改对象要看这个对象是不是有多个变量同时指向这个对象 const 用来定义常量,只能赋值一次。 变量------->对象------->属性 被const修饰的对象 …...

如何批量提取文件名到excel表格?

批量提取文件名到excel表格?关于这个问题相信很多人都遇到过,大多数人在第一次碰到的时候都不知道如何下手,大家都会立即在百度里面搜索相关方法教程,小编也试着搜索了一下,发现找到的很多方法都大同小异,需…...

CUDA线程层次一文搞懂|参加CUDA线上训练营

设备术语 Host:CPU 和 内存 (host memory)Device:GPU 和显存 (device memory) CUDA 线程层次 CUDA 线程层次分为: Thread 所有线程执行相同的核函数并行执行 Thread Block 执行在一个 Streaming Multiprocessor (SM&#xff09…...

Linux文件默认权限:umask

umask就是指定目前用户在建立文件或目录时候的权限默认值 查看方式有两种:一种可以直接输入umask,就可以看到数字类型的权限设置值,一种则是加入umask后加入-S(Symbolic)选项,就会以符号类型的方式来显示出…...

SonicWall:请立即修复SMA 1000 漏洞

近日,网络安全供应商SonicWall发布了关于安全移动访问 (SMA) 1000设备的三个安全漏洞的紧急报告,其中包括一个高威胁性的身份验证绕过漏洞。SonicWall指出,攻击者可以利用这些漏洞绕过授权,并可能破坏易受攻击的设备。 从报告中可…...

基于VS调试分析 + 堆栈观察问题代码段

文章目录问题代码段1 —— 阶乘之和问题代码段2 —— 越界的危害① 发现问题② 分析问题③ 思考问题【⭐堆栈原理⭐】④ 解决问题【DeBug与Release】👨程序员与测试人员👩✒总结与提炼问题代码段1 —— 阶乘之和 先来看一道C语言中比较基础的题目&#x…...

QFramework框架学习

主要学习内容TypeEventSystemActionKitTimer类1、TypeEventSystem-适用于一个条件触发,多个组件响应的情况例如:动物园系统中,点击肉食动物按钮,动物园中有肉食属性的动物都进行显示。步骤:1、动物自身脚本上进行判断是…...

移动OA系统,联动企业协作让办公高效无间断

移动oa系统,近年来随着企业办公节奏的变化及人们个性化办公需求的增加迎来了快速发展。一方面,它兼具OA系统诸多优势,既凝聚了企业基础管理工作,联动了企业协作、沟通交流,又进一步提高了企业的综合实力与市场竞争力。…...

结构体熟练掌握--实现通讯录

魔王的介绍:😶‍🌫️一名双非本科大一小白。魔王的目标:🤯努力赶上周围卷王的脚步。魔王的主页:🔥🔥🔥大魔王.🔥🔥🔥 ❤️‍&#x1…...

腾讯云CVM服务器购买流程手把手方法教程攻略

​购买腾讯云服务器有两种方式。一种是在官方活动中,简单方便,但ECS配置相对固定;另一种是在ECS页面定制购买。配置选项丰富,但地理可用性区域、计费模式、CPU内存实例规格、映像系统、存储系统磁盘、网络带宽和安全组的选择更为复…...

九龙证券|“春季躁动”行情要来?1月新增投资者数大增

新增投资者数量在上一年12月触及多年新低后,2023年1月份开端呈现反弹。 在新增投资者数量之外,近段时刻以来,包含A股商场股票成交额、北向资金净买入额、两融资金规划及成交额在内多个商场目标也呈现回暖的特征,目前A股商场交投氛…...

C语言(按位运算符和位移运算符)

目录 ​编辑 一.按位运算符 1.二进制反码或按位取反&#xff1a;~ 2.按位与&#xff1a;& 3.按位或&#xff1a;| 4.按位异或&#xff1a;^ 二.位移运算符 1.左移&#xff1a; << 2.右移&#xff1a; >> 一.按位运算符 C有四个按位逻辑运算符都用于整…...

删掉的照片怎么恢复?

每一张照片都是生活&#xff0c;留住每一个人的回忆。而这些有意义的照片&#xff0c;我们都会把它保存在我们的手机或电脑上&#xff0c;始终伴随着我们。但无论是手机还是电脑&#xff0c;都是需要时不时清理一下的。如果是清理垃圾图片时&#xff0c;不小心删除了需要的图片…...

【java】40 个 SpringBoot 常用注解(建议收藏)

本文目录一、Spring Web MVC 注解Spring Web MVC 注解RequestMappingRequestBodyGetMappingPostMappingPutMappingDeleteMappingPatchMappingControllerAdviceResponseBodyExceptionHandlerResponseStatusPathVariableRequestParamControllerRestControllerModelAttributeCross…...

【JMC】SMILES‑based deep generative scafold decorator for de‑novo drug design

SMILES-based deep generative scaffold decorator for de-novo drug design 基于SMILES的利用Fragment的分子生成模型 https://github.com/undeadpixel/reinvent-scaffold-decorator 1.背景 深度生成模型因其可以从有限的数量中生成新数据&#xff0c;目前已成功应用于生成…...

全链路异步,让你的 SpringCloud 性能优化10倍+

背景 随着业务的发展&#xff0c;微服务应用的流量越来越大&#xff0c;使用到的资源也越来越多。 在微服务架构下&#xff0c;大量的应用都是 SpringCloud 分布式架构&#xff0c;这种架构&#xff0c;总体是全链路同步模式。 同步编程模式不仅造成了资源的极大浪费&#x…...

131.《router v 5 与 react-router v 6》

文章目录1.什么是路由2.路由分类3.react-router-dom的理解4. react-router-dom相关API5.其他6. react-router5 路由基本使用1.效果2.代码App.js一级路由home.js下的二级路由7.路由传参的三种方式8.react-router6 基本使用1.一级路由2.二级路由3.hooksuseRoutesuseParamsuseSear…...

2023第十届北京老年产业博览会/中国养老护理人才培育计划

CBIAIE北京老博会&#xff0c;打造2023年度唯具参展价值的老年行业盛会&#xff1b; 北京老博会&#xff1a;2011年&#xff0c;我国首场以“老年产业”为主题&#xff0c;一场专注于老年福祉、健康的国际型行业发展盛会&#xff0c;中国&#xff08;北京&#xff09;国际老年…...

STM32F407VET6 / BLACK_F407VE开发板间隔0.5秒不断重启

有一块 STM32F407VET6 的故障开发板, 之前的问题是经常无法烧录, 必须reset之后才能连接, 具体查看这篇 STM32F407VET6烧录出现flash download failed target dll has been cancelled. 并且程序运行一段时间后会halt. 这块开发板后来一直搁箱底吃灰了几年. 最近打算把这片 STM…...

什么是圈复杂度

圈复杂度是一种软件度量指标&#xff0c;用于度量程序中的控制流程的复杂性。它是通过计算程序中独立路径的数量来确定的。简单来说&#xff0c;圈复杂度是指在一个函数或模块中有多少个独立的路径&#xff0c;也就是说&#xff0c;有多少个不同的输入序列可以导致不同的执行路…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日&#xff0c;嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》&#xff0c;海云安高敏捷信创白盒&#xff08;SCAP&#xff09;成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天&#xff0c;网络安全已成为企业生存与发展的核心基石&#xff0c;为了解…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。

2024 年&#xff0c;高端封装市场规模为 80 亿美元&#xff0c;预计到 2030 年将超过 280 亿美元&#xff0c;2024-2030 年复合年增长率为 23%。 细分到各个终端市场&#xff0c;最大的高端性能封装市场是“电信和基础设施”&#xff0c;2024 年该市场创造了超过 67% 的收入。…...