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

20230303----重返学习-函数概念-函数组成-函数调用-形参及匿名函数及自调用函数

day-019-nineteen-20230303-函数概念-函数组成-函数调用-形参及匿名函数及自调用函数

变量

  • 变量声明
    • 变量 声明+定义(赋值=)
      • var num;num = 100; 声明赋值分开
      • var num = 100; 声明时就赋值
    • 赋值=
    • 只能声明一次,可以赋值无数次
  • 变量声明关键词
    1. var
    2. const
    3. let
    4. class
    5. function
    6. import

数据类型

  • 数据类型
    • 原始值
      • number
      • string
      • boolean
      • null
      • undefined
      • symbol
      • bigint
    • 对象
      • object
        • Array
        • Function(函数)

数据类型转换

  • Number()
  • String()
    • {} => '[object Object]'
    • [] => ''
  • Boolean()
    • null undefined NaN 0 ''
    • Boolean(false)//false
  • 隐式转化

相关方法

  • parseInt()
  • parseFloat()
  • isNaN()
  • toFixed()
  • BinInt()

普通对象(增删改查)

  • 声明定义对象
    var obj = {a:0}

    • obj.a
    • obj['a']
    • obj[a]//a是变量,报错a is not defined
      • obj[length]//length是变量,但去window上时找会找到
  • 增与改

    • obj.b = 2;
    • obj['b'] = 2;
    • b='name';obj[b] = 2;

  • delete obj.a
    obj.a = null

  • 属性名只能是字符串或者symbol,如果不是,会转为字符串。

    var obj = {}
    var o = {}
    var obj[o]='object';//{'[object Object]':'object'}
    
  • Symbol()属性值

//var obj[Symbol()]='唯一值'
var s = Symbol()
obj[s]='唯一值'
console.log(obj)

数组

var arr = [1,2,3]
//索引
//length
//元素

语句

  • 条件
    • if(){}
    • if(){}else{}
    • if(){}else if(){}else{}
    • 只会进入判断一个花括号
    • 条件一定会转为布尔值
  • switch(){case} 必须是===
  • 循环语句
    • white
    • do while
    • for(var i=0;i<10;i++){}
      • for(var i=10-1;i>=0;i–){}
  • 跳转语句
    • break
    • continue
    • return

或与非

  • || 或者,只要满足一个条件就是true
  • && 与,必须两个条件都是true,才最终是true
  • ! 先将!后面的转为布尔值再取反
  • + +xxx,将xxx转为number
  • !! 转布尔值
  • % 取余数

=

{}{}//false
[]
[]//false

三元表达式

条件?xx:xxx;

案例

  • 开关灯
    • 步骤
      1. 获取开关元素被开关元素
      2. 开关元素上绑定点击事件,事件里根据开关元素状态控制被开关元素的显隐
  • 隔行变色
    • 标签是一个DOM对象DOM对象可以添加属性名属性值
    • 步骤
      1. 获取被控制元素列表
      2. 被控制元素列表循环绑定被控制元素鼠标移入及移出事件,加背景颜色

函数

  • 函数概念

    • 函数是具有某种特定功能的代码块。
    • 函数其实本质也是一种数据,属于对象数据类型。
  • 函数的作用

    1. 解决代码的冗余问题,形成代码复用。
    2. 可以把整个代码项目,通过函数模块化。
    3. 封装代码,让函数内部的代码对外部不可见。
  • 函数的组成

      // fn:函数名function fn(a, b) {//形参console.log(b);//undefinedconsole.log('fn1111');return;}console.log(fn);//输出的是整个函数体// 调用函数(执行)fn('div');//调用的时候小括号里面的东西叫做实参
    
    • 函数由如下部分组成:

      • 函数名,命名规则同变量名一致。
      • 函数体, 函数的内容,代码块。
      • 参数, 分为形参和实参。
      • 返回值, 函数调用表达式的结果
    • 函数声明

        // fn:函数名function fn(a, b) {//形参console.log(b);//undefinedconsole.log('fn1111');return;}console.log(fn);//输出的是整个函数
      
      • function后面的变量名就是函数名
      • 函数名后面的小括号里面的东西就叫做形参。
      • 形参小括号后面花括号里的所有代码就是函数体。
      • console.log(函数名)打印出来的是整个函数
        • 包含函数声明关键字及形参及函数体
        • console.log([函数名]);打印出来的和console.dir(函数名)差不多。也是把函数当成对象来看。
      • console.dir(函数名);打印出来的是函数对象
        • 这鼐函数对象里会把函数当成一个对象,对象上会有属于函数对象的属性值。
      • 声明函数时,里面的代码并不会执行,可以把它当成是一堆字符串,只是这些字符串是可执行的源代码。
      • 调用函数时,才会执行函数,相当于把函数体内的字符串当成源代码并执行了。这个时候函数才会有报错。
      • 函数执行后会有结果,结果取决于return。
  • 函数调用

    • 与Symbol()、document.getElementById()类似。

    • 实参与形参

      • 调用时小括号里面的东西叫做实参,里面必须是某种数据类型或者是变量,而变量一般也是某种数据类型
      • 在声明函数时,小括号里的变量就是形参
    • 传参 就是把实参赋值给形参

      • 如果传了实参,但没有形参接收,将会直接被忽略。
      • 有形参但没有实参对应,相当于声明了变量没有去赋值,在执行函数时该形参的值是undefined
      • 参数个数问题
        • 实参数===形参数,从左往右一一对应
        • 实参数>形参数,多出来的实参被忽略,但还是会传到arguments...剩余参数
        • 实参数<形参数,
      • 接收参数的其它方法
        • arguments 在函数内,执行函数时,它是当前执行过程中所有的实参集合
          • 但凡前面有一个名词后接类似数组的东西,可以认为就是伪数组。
            • 如: arguments与document.getElementsByTagName(‘div’)
          • arguments只能在函数里面使用,函数外不行,会报错。
            • 因为arguments是函数内专有的。
          • arguments不是数组只是伪数组,但能用中括号语法访问到内部数据,也有length。
      • return的使用看具体情况
    • 函数体

      • return 直接跳出函数并且返回值
    • 看一个函数,先不用看函数体,在调用时再回去看函数。

    • 调用函数的过程

      • 如果没有调用,函数体内的代码一定不会执行。
      • 每调用一次就执行一次函数体内的代码。
        • 只要是函数名加一个括号,就会去执行函数。
        • 执行函数前,会把调用时实参赋值给形参,之后再去执行函数体内的代码。
        • 执行函数体内的代码如果出现错误时,就会终止函数并报错。
        • 执行结束之后,函数就会返回return返回出来的结果。
      • 调用函数的结果
        • 结果取决于return
          • 没有return默认结果undefined
          • 写了return,没有内容,也是undefined
          • 写了return,有内容,return什么结果就是什么。
          • 写了return,但没执行到return就结束了函数,返回的也是undefined
            • 报错会终止函数,如果终止前没return出去,函数会报错,同时也不会return值出去。
      • 可以多次调用同一个函数。
        • Symbol()为什么每次能拿到一个唯一值。
          • 因为每次写了Symbol(),就会执行一次Symbol函数,而Symbol函数每次执行结束后会返回一个symbol类型的值。
  • 定义函数的三种方式

    • function fn(){}
    • var fn = function(){}
    • new Function()
  • 函数形参默认值

    • 在形参后面用等号可以赋一个默认值,如果实参没传对应的值,那么形参默认就是该值。

        function func(a=10) {console.log(a);//10}func()
      
    • 用es5来实现形参默认值

        function func(a) {if(a===undefined){a=10}console.log(a);//10}func()
      
        function func(a) {(a===undefined)?(a=10):null;console.log(a);//10}func()
      
  • 匿名函数三种写法

    • function(){}
    • var a = function(){}
    • ()=>{}
  • 箭头函数

    • 来源

      function res() { };
      var res = () => { }
      
    • 简写

      • 形参只有一个,把小括号省略

        var fn = (a) => { return a + 1 }
        var fn = a => { return a + 1 }
        
      • 函数体里面只有一条return语句,把大括号和return省略

        var fn = (a) => { return a + 1 }
        var fn = (a) => a + 1 
        
      • 形参只有一个,函数体里面只有一条return语句,把小括号和大括号和return省略

        var fn = (a) => { return a + 1 }
        var fn = a => a + 1 
        
  • 自调用函数(IIFE)

    • (function (a) { })(10);
    • +function (a) { }(10);
    • ~function (a) { }(10);
    • !function (a) { }(10);
    • -function (a) { }(10)

选项卡

  • css选择器选择范围缩小 把document替换成对应的父容器元素就可以了。

      <div class="wrap"><ul><li class="current">早餐</li><li>午餐</li><li>晚餐</li></ul><div class="current">早餐</div><div>午餐</div><div>晚餐</div></div><script>var wrap = document.getElementsByClassName('wrap')[0];// 获取文档中`第一个类名为'wrap'的元素`。// getElementsByTagName()方法的context上下文为wrap这个DOM元素对象。var divList = wrap.getElementsByTagName('div');// 获取wrap这个DOM元素对象子代的所有div标签。var liList = wrap.getElementsByTagName('li');// 获取wrap这个DOM元素对象子代的所有li标签。</script>
    
    var wrap = document.getElementsByTagName(div)[0];// 获取文档中的第一个div元素`。
    // getElementsByTagName()方法的context上下文为wrap这个DOM元素对象。
    var divList = wrap.getElementsByTagName('div');// 获取wrap这个DOM元素对象子代的所有div标签。
    

进阶参考

相关文章:

20230303----重返学习-函数概念-函数组成-函数调用-形参及匿名函数及自调用函数

day-019-nineteen-20230303-函数概念-函数组成-函数调用-形参及匿名函数及自调用函数 变量 变量声明 变量 声明定义(赋值) var num;num 100; 声明与赋值分开var num 100; 声明时就赋值 赋值只能声明一次&#xff0c;可以赋值无数次 变量声明关键词 varconstletclassfunctio…...

Java面试题总结

文章目录前言1、JDK1.8 的新特性有哪些&#xff1f;2、JDK 和 JRE 有什么区别&#xff1f;3、String&#xff0c;StringBuilder&#xff0c;StringBuffer 三者的区别&#xff1f;4、为什么 String 拼接的效率低&#xff1f;5、ArrayList 和 LinkedList 有哪些区别&#xff1f;6…...

深圳大学计软《面向对象的程序设计》实验7 拷贝构造函数与复合类

A. Point&Circle(复合类与构造) 题目描述 类Point是我们写过的一个类&#xff0c;类Circle是一个新的类&#xff0c;Point作为其成员对象&#xff0c;请完成类Circle的成员函数的实现。 在主函数中生成一个圆和若干个点&#xff0c;判断这些点与圆的位置关系&#xff0c;…...

Java的JVM(Java虚拟机)参数配置

JVM原理 &#xff08;1&#xff09;jvm是java的核心和基础&#xff0c;在java编译器和os平台之间的虚拟处理器&#xff0c;可在上面执行字节码程序。 &#xff08;2&#xff09;java编译器只要面向jvm&#xff0c;生成jvm能理解的字节码文件。java源文件经编译成字节码程序&a…...

leetcode 困难 —— 数据流的中位数(优先队列)

题目&#xff1a; 中位数是有序整数列表中的中间值。如果列表的大小是偶数&#xff0c;则没有中间值&#xff0c;中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: MedianFinder() 初始化…...

7个常用的原生JS数组方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 7个常用的原生JS数组方法一、Array.map()二、Array.filter三、Array.reduce四、Array.forEach五、Array.find六、Array.every七、Array.some总结一、Array.map() 作用&#…...

一、一篇文章打好高数基础-函数

1.连续函数的性质考点分析函数的连续性主要考察函数的奇偶性、有界性、单调性、周期性。例题判断函数的奇偶性的有界区间为&#xff08;&#xff09; A.(-1,0) B(0,1) C(1,2) D(2,3)2.闭区间上连续函数的性质考点分析闭区间上连续函数的性质主要考察函数的最大最小值定理、零点…...

pipenv的基本使用

一. pipenv 基础 pipenv安装&#xff1a; pip install pipenvpipenv常用命令 pipenv --python 3 # 创建python3虚拟环境 pipenv --venv # 查看创建的虚拟环境 pipenv install 包名 # 安装包 pipenv shell # 切换到虚拟环境中 pip list # 查看当前已经安装的包&#xff0…...

OpenCV入门(三)快速学会OpenCV2图像处理基础

OpenCV入门&#xff08;三&#xff09;快速学会OpenCV2图像处理基础 1.颜色变换cvtColor imgproc的模块名称是由image&#xff08;图像&#xff09;和process&#xff08;处理&#xff09;两个单词的缩写组合而成的&#xff0c;是重要的图像处理模块&#xff0c;主要包括图像…...

基于PySide6的MySql数据库快照备份与恢复软件

db-camera 软件介绍 db-camera是一款MySql数据库备份&#xff08;快照保存&#xff09;与恢复软件。功能上与dump类似&#xff0c;但是提供了相对有好的交互界面&#xff0c;能够有效地管理导出的sql文件。 使用场景 开发阶段、测试阶段&#xff0c;尤其适合单人开发的小项目…...

BI不是报表,千万不要混淆

商业智能BI作为商业世界的新宠儿&#xff0c;在市场上实现了高速增长并获得了各领域企业的口碑赞誉。 很多企业把商业智能BI做成了纯报表&#xff0c;二维表格的数据展现形式&#xff0c;也有一些简单的图表可视化。但是这些简单的商业智能BI可视化报表基本上只服务到了一线的…...

sizeof以及strlen的用法以及注意事项

大家都知道&#xff0c;在c中算字符串长度和所占空间大小事不可避免的&#xff0c;甚至再有的时候&#xff0c;我们在写代码的过程中&#xff0c;就会用到这些数据。比如&#xff0c;下面这道题 struct Test { int Num; char *pcName; short sDate; char cha[2]; short sBa[4];…...

数据结构-链表-单链表(3)

目录 1. 顺序表的缺陷 2. 单链表 2.1 单链表的基本结构与接口函数 2.2 重要接口 创建新节点的函数&#xff1a; 2.2.1 尾插 2.2.2 头插 2.2.3 尾删 2.2.4 头删 2.2.5 查找 2.2.6 插入 2.2.7 删除 2.2.8 从pos后面插入 2.2.9 从pos后面删除 3. 链表的缺陷与优势&…...

【SpringBoot初级篇】JdbcTemplate常用方法

【SpringBoot初级篇】JdbcTemplate常用方法JdbcTemplate 查询JdbcTemplate 插入、更新、删除execute执行任意的SQLNamedParameterJdbcTemplate函数场景说明update(String sql, Nullable Object… args)增&#xff0c;删&#xff0c;改queryForObject(sql, Integer.class)查询返…...

React(三):脚手架、组件化、生命周期、父子组件通信、插槽、Context

React&#xff08;三&#xff09;一、脚手架安装和创建1.安装脚手架2.创建脚手架3.看看脚手架目录4.运行脚手架二、脚手架下从0开始写代码三、组件化1.类组件2.函数组件四、React的生命周期1.认识生命周期2.图解生命周期&#xff08;1&#xff09;Constructor&#xff08;2&…...

[教程]使用 Git 克隆指定分支

Git 是我们开发过程中经常使用到的版本管理工具,在平常情况下我们从远程克隆的时候会将整个库克隆下来&#xff0c;这会包括整个版本库的历史提交记录和远程库里的所有分支。但在一些情况下&#xff0c;比如我们并不需要查看历史提交记录而只是希望能够获取到最新的代码&#x…...

Redis实现服务注册与服务发现源码阅读(Go语言)

Redis实现服务注册与服务发现源码阅读 背景 近期在看开源项目CloudWeGo中看到目前GoLang微服务框架Hertz中支持通过Redis实现服务注册与服务发现功能。便想着阅读下源码 源码阅读 gut clone了hertz-contrib后看到在一级目录下有目前各种主流的服务注册与发现的实现方案。为…...

论文复现-3

模型构建中的运算 数据集是CONLL03 这个数据集共有4种实体类型&#xff0c;所以&#xff0c;在做实体描述的embedding时&#xff0c;得到的语义表示的Tensor大小为 &#xff1a; 4*max_len, 具体指的是&#xff1a; type_input_ids: torch.LongTensor None, type_attention_m…...

667知识点 | 经过三年实战检验的667知识清单

文章目录 前言第一章 信息与信息资源第二章 信息社会第三章 信息交流第四章 信息技术第五章 信息组织第六章 信息管理活动第七章 信息资源人文管理第八章 信息资源经济管理第九章 信息资源系统管理第十章 信息资源管理专门化前言 参考书目:《信息管理导论(第三版)》党跃武推…...

后端快速上手前端三剑客 HtmlCSSJavaScript

文章目录前言HTML1.基础标签2.多媒体标签&#xff1a;3.表格&列表&布局4.表单CSS1.简介2.导入方式3.选择器JavaScript1.简介2.引入方式3.基本语法4.对象(1) 基本对象(2) BOM对象(3) DOM对象5.事件前言 结构&#xff1a;HTML 表现&#xff1a;CSS 行为&#xff1a;Java…...

Cdiscount、Allegro如何利用测评补单自养号提升店铺权重和流量

Allegro成立于 1999 年是在波兰最受欢迎的电商平台&#xff0c;75%的波兰人都知道该网站&#xff0c;Allegro的品牌认知度在波兰高达98%。Allegro平台卖家的数量目前还是比较少的约为13万&#xff0c;最重要的就是中国卖家占比少&#xff0c;所以竞争也比较低&#xff0c;像是美…...

第16天-性能压测:压力测试,性能监控,优化QPS,Nginx动静分离

1.性能监控 1.1.JVM架构 运行时数据区&#xff1a; 方法区&#xff1a;最重要的内存区域&#xff0c;多线程共享&#xff0c;保存了类的信息&#xff08;名称、成员、接口、父类&#xff09;&#xff0c;反射机制是重要的组成部分&#xff0c;动态进行类操作的实现&#xff1b;…...

【python 基础篇 十一】python的函数-------函数的偏函数 高阶函数 返回函数 匿名函数 闭包

目录1.偏函数2.高阶函数3.返回函数4.匿名函数5.闭包1.偏函数 概念 ​ 当我们写一个参数比较多的函数时&#xff0c;如果有些参数&#xff0c;大部分场景下都是某一个固定值&#xff0c;那么为了简化使用&#xff0c;就可以创建一个新函数&#xff0c;指定我们要使用的函数的某个…...

妇女节到了,祝福所有女神 Happy Women‘s Day!

在每年&#xff13;月&#xff18;日人们庆祝妇女节 &#xff37;omens Day is cllebrated on March 8 every year.国际妇女节(IWD)&#xff0c;中国内地称“三八”国际劳动妇女节或国际劳动妇女节。是在每年的3月8日为庆祝妇女在经济、政治和社会等领域作出的重要贡献和取得的…...

etcd集群通过 Leader 写入数据,为什么K8s HA集群中讲每个 kube-apiserver 只和本机的 ETCD 通信

写在前面 对这个我不太明白&#xff0c;所有在 stackOverflow 的请教了大佬这里分享给小伙伴理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它的路都是不完整…...

HTML 表单

HTML 表单和输入 HTML 表单用于收集不同类型的用户输入。 在线实例 创建文本字段 (Text field) 本例演示如何在 HTML 页面创建文本域。用户可以在文本域中写入文本。 创建密码字段 本例演示如何创建 HTML 的密码域。 &#xff08;在本页底端可以找到更多实例。&#xff09; …...

HTML、CSS学习笔记5(移动端基础知识、Flex布局)

一、移动端基础知识 1.PC端和移动端区别 移动端&#xff1a;手机版网页&#xff0c;手机屏幕小&#xff0c;网页宽度多数为100%&#xff0c;没有版心 PC端&#xff1a;电脑版网页&#xff0c;屏幕大&#xff0c;网页固定版心 PC端和移动端不是同一个网页 2.如何在电脑里面…...

【Java学习笔记】2.Java 开发环境配置

Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境。 window系统安装java 下载JDK 首先我们需要下载 java 开发工具包 JDK&#xff0c;下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads/&#xff0c;在下载页面中根据自己的系统选…...

MyBatis——进阶操作(2)

标签 if标签 当提交的表单中有些为非必填项&#xff0c;用户并没有上传这些属性的值&#xff0c;那么程序可以上传NUll&#xff0c;也可以用if标签判断用户有没有上传这个值 <if test"参数!null">操作 </if>其中test中填写一条语句&#xff0c;如果得…...

循环结构

循环结构循环结构一、课前问答二、while循环三、do-while循环四、for循环五、流程控制5.1 break5.2 continue循环结构 一、课前问答 1、switch支持的数据类型。 2、switch中break的作用。 3、多重if如果多个条件都成立&#xff0c;执行方式。 二、while循环 语法&#xff1a; …...

app网站建设宣传方案/今日新闻最新头条

需求&#xff1a;爬取豆瓣小组所有话题&#xff08;话题title&#xff0c;内容&#xff0c;作者&#xff0c;发布时间&#xff09;&#xff0c;及回复&#xff08;最佳回复&#xff0c;普通回复&#xff0c;回复_回复&#xff0c;翻页回复&#xff0c;0回复&#xff09; 解决&a…...

网站建设维护课件ppt/广州seo网站排名

有n个灯&#xff0c;k个人&#xff0c;第一个人把所有灯都打开&#xff0c;第二个人按下所有编号为2的倍数的开关&#xff08;这些灯将被关掉&#xff09;&#xff0c;第三个人按下编号是3的倍数的开关&#xff08;其中关掉的灯将2被打开&#xff0c;开着的灯将关闭&#xff09…...

在线购物网站开发/网站seo的优化怎么做

首先在构造页面时 应该将页面的结构分析好。 在处理数据异步时 将数据结构进行完全的简单结构化。 使用redux时 注意返回的数据是深拷贝还是浅拷贝 否则会产生 数组不为空但是没有值的问题 使用自制数据进行列表循环时可以通过数组的某项为空来设置一些需要的特殊样式。 每个页…...

vm虚拟机搭建wordpress/爱站网影院

数据结构与算法学习笔记(3):线性表Ⅰ 本系列笔记为跟着B站上王卓老师的教程学习所记录的笔记 文章目录数据结构与算法学习笔记(3):线性表Ⅰ一.线性表的定义和特点1.定义2.特点线性表的逻辑特征二.典型案例1.一元多项式运算2.稀疏多项式3.图书信息管理系统逻辑结构存储结构可以用…...

wordpress 热门头条/百度seo公司报价

除了自定义调色板之外&#xff0c;您还可以创建Flowable Designer的扩展&#xff0c;以便执行验证并将信息从图中保存到Eclipse工作区中的自定义资源中。这里有内置的扩展点&#xff0c;本节介绍如何使用它们。 ExportMarshaller函数最近被重新引入。我们仍在研究验证功能。下面…...

专门做教育咨询有限公司网站/seo需要掌握什么技能

2019独角兽企业重金招聘Python工程师标准>>> https://zh.wikibooks.org/wiki/Category:CMake_%E5%85%A5%E9%96%80 http://blog.chinaunix.net/uid-24512513-id-3196376.html 转载于:https://my.oschina.net/jjyuangu/blog/1488516...