JavaScript 的初步学习下篇

news2024/11/26 2:52:43

02131

函数

语法格式

创建函数/函数声明/函数定义

function 函数名(形参列表) {
	函数体
	return 返回值;
}

函数调用

函数名(实参列表) // 不考虑返回值
返回值 = 函数名(实参列表) // 考虑返回值

注: 函数定义并不会执行函数体内容, 必须要调用才会执行. 调用几次就会执行几次.

js 中定义和调用的顺序是不做要求

可以先定义,再调用; 也可以先调用,再定义.

1.先定义,再调用(推荐)

// 定义函数
function hello() {
	console.log("hello");
}
// 调用函数
hello();  

2.先调用,再定义

// 调用函数
hello();
// 定义函数
function hello() {
    console.log('hello');
}		

函数的基本使用

示例代码

image-20231128130301501

运行效果
image-20231128130457927

undefined10相加,输出为: NaN . Nan => Not a Number
undefined + "10"中把undefined 转换成“undefined” 进行运算

小知识: 浏览器加载 html 就会从上到下的依次执行每个Script标签里的代码


函数的参数

代码示例

image-20231128132742581

运行效果
image-20231128132824449

如果实参个数少于形参个数,多出来的形参的值就是 undefined;
如果实参个数更多,多出来的实参,相当于没用上(一般情况下).
注: 当形参和实参个数不匹配的时候,是不会报错的,只会尽可能的去执行!!!

实参个数多于形参的特殊情况

可以通过一个特殊的变量arguments,能拿到所有的实参的.

代码示例
image-20231128134033090

运行结果
image-20231128134100832


函数表达式

另外一种函数的定义方式

代码示例

let add = function() {
    let result = 0;
    for(let elem of arguments) {
        result += elem;
    }
    return result;
}

image-20231128143632672

运行效果

image-20231128144010825

代码讲解

image-20231128142059440

add变量的类型,就叫做 function类型,对于function类型的变量是可以调用的,类似于C语言的函数指针.

js 中,可以像普通变量一样,把函数赋值给一个变量, 同时也可以把函数作为另一个函数的参数.或者把函数作为另一个函数的返回值(这一点, java中无法做到), 这个特性,称为,函数在 js 中是"一等公民".


js 变量的作用域

当代码中访问某个变量的时候要去哪里找这个变量?

js 会先找当前作用域,如果当前没有,就往上层作用域找…一直往上直到全局作用域.如果还找不到,报错/undefined

示例代码1
image-20231128150936238

运行结果
image-20231128151020593

代码示例2

如果当前没有num,就往上层作用域找num.

image-20231128151238967

运行效果
image-20231128151320897


对象

背景知识

js 不是面向对象的编程语言,但是这里存在对象概念,意味着 js 中关于对象的设定和 Java 差别很大.js 中没有封装,继承,多态.甚至没有类,类相当于对象的图纸,但是 js 中没有类.所有的对象类型都是object .

带你认识对象

对象的基本概念:对象是指一个具体的事物.
在 JS 中, 字符串, 数值, 数组, 函数都是对象.

js 的对象,有属性,也有方法(方法本质上也是属性,因为函数在js中是一等公民).

  • 属性: 事物的特征
  • 方法: 事物的行为.

1.使用 { } 创建对象[常用]

代码示例
image-20231129093551247

运行结果
image-20231129164331569

小结

  • 使用 { } 创建对象
  • 属性和方法使用键值对的形式来组织.
  • 键值对之间使用 , 分割. 最后一个属性后面的 , 可有可无
  • 键和值之间使用 : 分割.
  • 方法的值是一个匿名函数

2.使用 new Object 创建对象

代码示例
image-20231129170539774

运行效果
image-20231129170646001

可以随时使用 student.name = '小和尚'; 这样的方式来新增属性.
使用 student.sing = function() { console.log('小和尚在唱张靓颖的"如果这就是爱情"'); } 来新增方法.
js 中的对象里面有什么属性,有什么方法,都不是提前约定好的,而是随时可以添加的.

小知识: 在 js 的 ES6 版本中,引入了 class 关键字. js 就也可以定义“类",再通过类创建实例(更接近于java了).
注: js 和 java 之间,相关性是非常大, 最大的差别: 动态类型/弱类型.


博主推荐:

如果你对于编程语言的语法比较感兴趣,想知道更多的语言流派, 推荐阅读: <<七周七语言>>(第一版有7种,第二版也有七种),共十四种风格各异的语言(大部分都是小众语言).
关键字. js 就也可以定义“类",再通过类创建实例(更接近于java了).
注: js 和 java 之间,相关性是非常大, 最大的差别: 动态类型/弱类型.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1267545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VBA技术资料MF88:测试Excel文件名是否有效

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

在Windows 10中至少有7种方法进入安全模式,但不一定是按F8键

几十年来,安全模式一直用于加载操作系统,尽管功能有所减少,目的是通过仅加载操作系统的核心组件来排除与PC相关的问题并执行诊断。避开某些系统文件的处理和设备驱动程序的加载,以及停止特定服务,提供了一个最小化的表面,使回滚可能导致系统不稳定或以其他方式阻止计算机…

Java高级技术(注解)

一&#xff0c;注解 二&#xff0c;案例 三&#xff0c;注解原理 四&#xff0c;元注解 五&#xff0c;案例 六&#xff0c;解析注解 七&#xff0c;案例

同旺科技 分布式数字温度传感器

内附链接 1、数字温度传感器 主要特性有&#xff1a; ● 支持PT100 / PT1000 两种铂电阻&#xff1b; ● 支持 2线 / 3线 / 4线 制接线方式&#xff1b; ● 支持5V&#xff5e;17V DC电源供电&#xff1b; ● 支持电源反接保护&#xff1b; ● 支持通讯波特率1200bps、2…

java学习part21枚举

117-面向对象(高级)-枚举类的两种定义方式及练习_哔哩哔哩_bilibili 1.概念 2.enum关键字 枚举早期是用class内放n个public static final类变量供调用。 后来有了enum关键字&#xff0c;enum里的枚举变量都是public static final&#xff0c;但是必须都省略不写 正确方法 &…

行情分析——加密货币市场大盘走势(11.29)

大饼已经形成了底背离&#xff0c;即MACD往下走&#xff0c;而价格还在往上走&#xff0c;这种后续往往会大跌。继续把空单拿好&#xff0c;已经持仓的无需加仓。多次上涨却一直不能突破&#xff0c;说明多空和空军力量都很强&#xff0c;等待后续出方向。在笔者看来&#xff0…

使用凌鲨管理本地git仓库

把本地git仓库添加到凌鲨后&#xff0c;可以更方便的获取git仓库的信息&#xff0c;比如查看commit记录&#xff0c;统计代码提交量&#xff0c;获取远程仓库的issue等功能。 功能 查看提交/分支/标记列表 查看提交差异 查看远程仓库和相关issue 每天代码量统计 添加本地仓库…

MySQL触发器-使用示例

一、什么是触发器 触发器是与表有关的数据库对象&#xff0c;在满足定义条件时触发&#xff0c;并执行触发器中定义的SQL语句 举个例子&#xff1a;有两个表&#xff0c;员工表和部门表。当一个员工入职时&#xff1a; 员工表需要insert一行员工详细信息&#xff08;id,empl…

【广州华锐视点】AI卡通数字人物帮助企业拓展更广阔的市场空间

随着科技的飞速发展&#xff0c;人类对于虚拟世界的探索愈发深入。从最初的文字和图片&#xff0c;到如今的音频、视频&#xff0c;再到未来可能的虚拟现实&#xff0c;我们一直在寻求与虚拟世界更加紧密的联系。在这个过程中&#xff0c;AI卡通数字人物作为一种新兴的角色&…

阿里巴巴矢量图标库的使用

iconfont-阿里巴巴矢量图标库iconfont-国内功能很强大且图标内容很丰富的矢量图标库&#xff0c;提供矢量图标下载、在线存储、格式转换等功能。阿里巴巴体验团队倾力打造&#xff0c;设计和前端开发的便捷工具https://www.iconfont.cn/ 今天来介绍一下阿里巴巴矢量图标库的使用…

YOLOv7独家原创改进:自研独家创新MSAM注意力,通道注意力升级,魔改CBAM

💡💡💡本文自研创新改进:MSAM(CBAM升级版):通道注意力具备多尺度性能,多分支深度卷积更好的提取多尺度特征,最后高效结合空间注意力 1)作为注意力MSAM使用; 推荐指数:五星 MSCA | 亲测在多个数据集能够实现涨点,对标CBAM。 在道路缺陷检测任务中,原始ma…

好视通云会议 upLoad2.jsp 任意文件上传漏洞复现

0x01 产品简介 好视通云会议是基于 Internet 的网络视频会议产品&#xff0c;用户使用好视通云会议可以实现多人音视频交流、文字聊天、共享文档、共享屏幕等&#xff0c;会议的管理者可以控制其他参会人的各种权限&#xff0c;可以将会议录制成视频&#xff0c;对会场进行点名…

一文彻底理解索引下推

了解索引下推吗&#xff1f;二级索引取出的数据是依次回表还是一次回表&#xff1f;索引下推是为了什么发明的&#xff1f; 看完这个文章你将知道上面的问题。 索引下推的概念 从MySQL5.6开始引入的一个特性,索引下推通过减少回表的次数来提高数据库的查询效率; 注意&#…

如何使用群晖Synology Office结合内网穿透实现多人远程编辑文件协同办公

使用群晖Synology Office提升生产力&#xff1a;多人同时编辑一个文件 文章目录 使用群晖Synology Office提升生产力&#xff1a;多人同时编辑一个文件本教程解决的问题是&#xff1a;1. 本地环境配置2. 制作本地分享链接3. 制作公网访问链接4. 公网ip地址访问您的分享相册5. 制…

“2024年国考公共科目”趣谈

黄金的熔点仅为1064.43C&#xff0c;不锈钢、耐高温钢所需的冶炼温度也仅需2000℃以上&#xff0c;因此与正在进行中的“2024年国考公共科目笔试”的“报名人数首破300万&#xff0c;平均约77人竞争一岗位”相比&#xff0c;炼金炼钢温度全都败落下风。 网络图片 其中宁夏的一…

京东API商品详情接口,通过商品ID获取商品名称,淘宝主图,价格,颜色规格尺寸,库存,SKU数据等调用示例

要接入京东API接口以采集电商平台上的商品数据&#xff0c;可以按照以下步骤进行&#xff1a; 注册并获取API密钥&#xff1a;在使用API接口之前&#xff0c;需要注册并获取API密钥。API密钥是识别身份的唯一标识符。每个API接口都有自己的注册、认证和授权过程&#xff0c;因…

【C++初阶】:简单的图书管理系统(可保存,完整源代码)

图书管理系统 library.h #include<iostream> #include<string> #include<vector> using namespace std;/****************************************************************公共类**********************************************************************…

Java核心知识点整理大全22-笔记

目录 19.1.14. CAP 一致性&#xff08;C&#xff09;&#xff1a; 可用性&#xff08;A&#xff09;&#xff1a; 分区容忍性&#xff08;P&#xff09;&#xff1a; 20. 一致性算法 20.1.1. Paxos Paxos 三种角色&#xff1a;Proposer&#xff0c;Acceptor&#xff0c;L…

微信群发消息怎么发?如何突破200人限制?(最全攻略)

每到节假日或者各种大促节日&#xff0c;很多人都会发布或收到微信好友的节日祝福或活动通知。群发已经是很普遍的一件事了。 说到微信群发&#xff0c;大家是不是还在用微信自带的群发功能&#xff0c;或者说还在手动进行群发操作“复制粘贴”的形式进行&#xff1f; 如果好友…

jdk动态代理和CGLIBE代理

静态代理&#xff1a;由程序员创建或特定工具自动生成源代码&#xff0c;再对其编译。在程序运行前&#xff0c;代理类的.class文件就已经存在了。 动态代理&#xff1a;在程序运行时&#xff0c;运用反射机制动态创建而成。 使用jdk的反射机制&#xff0c;创建对象的能力&…