JavaScript语法基础(函数,对象,常用类Array,String,Math和Date)【超详细!!!新手入!!!】

一、函数

1、函数的定义

        函数指的是一段可被重复调用的代码块。函数与变量不同,需要先定义再调用。

定义函数的语法格式为:

function 函数名(参数1,参数2,...)

{

        语句;                        //  return指的是返回值

        ...

        return 表达式;        //   {}中的语句是函数的执行语句,在函数被调用时会被执行;

}

2、函数的调用

1)在JS程序中被调用
<script>var result=calculator(10,2);function calculator(a, b){c = a+b;return c;        }// 1. 在JS程序中被调用 (包括有返回值和无返回值的调用)document.write(result);</script>

效果显示:

2)在超链接标记中调用函数
<script>// var result=calculator(10,2);function calculator(a, b){c = a+b;alert("a+b=" + c);     // alert();显示浏览器跳出一个警告牌return c;        }</script>
<!-- 超链接点击中调用函数 --><!-- 使用<a>标记的onclick属性 --><a href="#" onclick="calculator(3,4)">百度一下,你就知道</a>

效果显示:

 3)在加载网页中调用函数
<script>function calculator(a, b){c = a+b;alert("a+b=" + c); return c;        }</script><!-- 按钮点击 --><input type="submit" value="计算a+b的和" onclick="calculator(1,2)" />

效果显示:

二、对象

1、对象的概念

        对象是JavaScript的一个基本数据类型,是一种复合值,它将很多值(原始值或者其他
对象)聚合在一起,可以通过对象的名字访问这些值。例如:

                var car = {type:"Fiat", model:500, color:"gray"};

        对象包含多种类型,可以将对象看作是变量的容器。

JavaScript对象是一种数据结构,用于存储和组织键值对。对象可以包含多个键值对,其中每个键都是唯一的,并且与一个值相关联。 

2、对象的定义

        在JavaScript中,对象可以通过大括号 {} 来定义一个对象,里面包含键值对,格式通常是 key: value。

<script>
// 1.直接手动定义一个对象(而不是通过类实例化)var person = {firstName:"毛",lastName:"主席",age:83,eyeColor:"黑色",}};// 2.使用定义好的对象的属性console.log(person.eyeColor)  //使用对象的属性
</script>

控制台显示:

3、对象的使用

        要使用一个对象,可以引用JavaScript的内置对象。

 <script>// 1.直接手动定义一个对象(而不是通过类实例化)var person = {firstName:"毛",lastName:"主席",age:83,eyeColor:"黑色",getName: function(){// 注意this对象的使用(this用于将对象指向自身)// 没有this,直接用属性名控制台会报错allName = this.firstName + this.lastName;return allName;},cal: function(a,b){return a+b;}};// 2.使用定义好的对象的方法console.log(person.getName()) //使用对象的方法console.log(person.cal(1,2))  //使用对象的方法</script>

三、类

        在JavaScript中,有一些常用的内置类。

常用类用处
Array用于创建和操作数组
String用于处理字符串
Math用于数学计算
Date用于处理日期和时间,可以创建日期对象,并提供格式化和日期计算的功能

1、Array

  • length属性返回数组的元素个数(数组长度)
<script>
var persons=new Array("毛泽东","邓小平","江泽民");console.log(persons.length);    // 3
</script>
  • push方法用于在数组末端添加一个或多个元素,并返回
<script> 
//   添加新元素后的数组长度。注意:该方法会改变原数组!var persons=new Array("毛泽东","邓小平","江泽民");len = persons.push("胡锦涛");console.log('新数组为:' + persons +'->长度为:' + len);  // 新数组为:毛泽东,邓小平,江泽民,胡锦涛->长度为:4
</script>
  • pop方法用于删除数组最后一个元素,并返回被删除的那个元素

<script>
//   注意:该方法会改变原数组!var persons=new Array("毛泽东","邓小平","江泽民");p = persons.pop("江泽民");console.log('新数组为:' + persons +'->被移除的元素为: ' + p); // 新数组为:毛泽东,邓小平->被移除的元素为:江泽民
</script>
  •  reverse方法用于颠倒排列数组元素,返回改变后的数组

<script>
//   注意:该方法会改变原数组!var persons=new Array("毛泽东","邓小平","江泽民");p = persons.reverse();console.log(p); 
</script>

控制台显示:

  • indexOf方法返回给定元素在数组中第一次出现的位置,若未出现返回-1

 <script>
var persons = new Array("毛泽东","邓小平","江泽民");console.log(persons.indexOf("邓小平"));  //1console.log(persons.indexOf("胡锦涛"));  //-1          </script>

2、String

  • length属性返回字符串的长度
<script>var s = 'hello';console.log(s.length) // 5
</script>
  •  charAt方法返回指定位置的字符

<script>
var s = new String('hello'); console.log(s.charAt(1));            // "e"console.log(s.charAt(s.length - 1)); // "o"console.log(s.charAt(10));           // ""  索引超出返回空字符串</script>
  •  concat方法用于顺序连接多个字符串,返回一个新字符串(不改变原字符串)

<script>
var s1 = new String('hello'); var s2 = new String(' world'); console.log(s1.concat(s2));          // "hello world"console.log(s1.concat(s2, ' hi', ' beijing')); // "hello world hi beijing"
</script>
  •  indexOf 方法用于确定一个字符串在另一个字符串中第一次出现的位置

<script>
// 返回结果是匹配开始的位置。如果返回-1表示不匹配。var s = new String('hello world'); console.log(s.indexOf("world"));  //6console.log(s.indexOf("hi"));     //-1
</script>
  •  split方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组

<script>
var s = new String('hello world hi beijing'); console.log(s.split(' ')); // 按照空格分割 ['hello', 'world', 'hi', 'beijing']</script>

3、Math

  •  abs方法返回参数值的绝对值

     <script>console.log(Math.abs(1)) // 1console.log(Math.abs(-1)) // 1
</script>
  •  max和min方法返回参数值的最大值和最小值

<script>console.log(Math.max(1,2,3)) // 3console.log(Math.min(1,2,3)) // 1
</script>
  •  floor和ceil对参数向下取整和向上取整

     <script>console.log(Math.floor(3.3)) // 3console.log(Math.floor(-3.3)) // -4console.log(Math.ceil(3.3)) // 4console.log(Math.ceil(-3.3)) // -3
</script>
  •  random返回[0,1)之间的一个伪随机数

<script>
for (var index = 1; index <=5; index++){console.log(Math.random())}// 随机输出任意范围的某个数(直接当成固定函数使用)function getRandomInRange(min, max) {  return Math.random() * (max - min) + min;  }  console.log(getRandomInRange(1, 20)); //随机输出1到20的某个数
</script>
  • 保留小数点指定位数(直接当成固定函数使用)

<script>function truncateDecimalPlaces(num, decimalPlaces) {  let factor = Math.pow(10, decimalPlaces);  return Math.floor(num * factor) / factor;  }  console.log(truncateDecimalPlaces(3.14159, 2)); // 输出 3.14</script>

4、Date

  • 获取当前时间
<script>
// const 只读不写// 基于Date类,创建一个对象示例,表示当前日期和时间  const now = new Date();       // 获取年份(四位数的年份,比如2024)  const year = now.getFullYear();    // 获取月份(从0开始,所以0表示1月,11表示12月,需要加1才能得到实际月份)  const month = now.getMonth() + 1;      // 获取日期(月份中的哪一天)  const day = now.getDate();  // 获取小时(24小时制)  const hours = now.getHours();     // 获取分钟  const minutes = now.getMinutes();     // 获取秒  const seconds = now.getSeconds();  // 输出当前未格式化的日期和时间 console.log(`当前日期和时间:${year}-${month}-${day}${hours}:${minutes}:${seconds}`);</script>

控制台显示:

 

  • 输出当前格式化后的时间
 <script>// 基于Date类,创建一个对象示例,表示当前日期和时间  const now = new Date();       // 获取年份(四位数的年份,比如2024)  const year = now.getFullYear();    // 获取月份(从0开始,所以0表示1月,11表示12月,需要加1才能得到实际月份)  const month = now.getMonth() + 1;      // 获取日期(月份中的哪一天)  const day = now.getDate();  // 获取小时(24小时制)  const hours = now.getHours();     // 获取分钟  const minutes = now.getMinutes();     // 获取秒  const seconds = now.getSeconds();  // 格式化日期和时间字符串  // 如果month小于10,它会在month前面插入一个'0',否则插入一个空字符串''。// 这样做的目的是确保月份始终是两位数(例如,1月变为01)。// 同理,${day < 10 ? '0' : ''}${day}确保日期也是两位数。const formattedDate = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;  const formattedTime = `${hours < 10 ? '0' : ''}${hours}:${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;      // 输出当前格式化后的日期和时间  console.log(`当前日期和时间: ${formattedDate} ${formattedTime}`);</script>

控制台显示:

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

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

相关文章

每日OJ题_牛客_NC6二叉树中的最大路径和_树形DP_C++_Java

目录 牛客_NC6二叉树中的最大路径和_树形DP 题目解析 C代码 Java代码 牛客_NC6二叉树中的最大路径和_树形DP 二叉树中的最大路径和_牛客题霸_牛客网 (nowcoder.com) 描述&#xff1a; 二叉树里面的路径被定义为:从该树的任意节点出发&#xff0c;经过父>子或者子>…

PG数据库 jsonb字段 模糊查询

背景&#xff1a; 项目由于多语言的设计&#xff0c;将字段设置成json字段类型&#xff0c;同时存储中文和英文 页面上通过输入框实现模糊的查询 一、表结构&#xff1a;name字段设置jsonb类型 二、表数据 3、Mybatis编写sql select pp.name ->>zh-CN as pmsProductNam…

黑龙江某涝区泵闸站自动化、信息化改造项目案例

项目背景 黑龙江某地区紧邻松花江&#xff0c;雨季时降雨量增大&#xff0c;排水渠水位上涨&#xff0c;如果出现排涝不及时&#xff0c;水位过高时会漫入周边农田&#xff0c;引发洪涝灾害&#xff0c;对作物生长造成重大损害。为应对这一问题&#xff0c;自今年起&#xff0c…

奥数与C++小学四年级(第十八题 小球重量)

参考程序代码&#xff1a; #include <iostream> #include <vector>int main() {// 小球的重量std::vector<int> weights {1, 2, 3, 4, 5};// 用来存储可能的结果int a, b, c, d, e, x;// 穷举所有可能的 a, b, c, d, e 的组合for (int i 0; i < weight…

建筑行业知识库搭建:好处、方法与注意事项

在建筑行业&#xff0c;知识管理对于提升项目效率、降低成本、增强创新能力以及构建竞争优势具有至关重要的作用。搭建一个高效、系统的建筑行业知识库&#xff0c;不仅有助于实现知识的有效沉淀与便捷共享&#xff0c;还能促进知识在项目实践中的灵活应用&#xff0c;从而加速…

控制器一些不常用的的功能说明

1、IIC的特殊功能 1.1、IIC的10bit设备地址 10bit地址格式与7bit地址不同&#xff0c;分发送方向和接收方向。 1.1.1、发送方向 第一个字节的前7位是1111 0XX&#xff1a;XX是10bit地址的最高有效位的前两位 第一个字节的第8bit是读写位&#xff1a;决定传输方向 第二个字节…

ssm+vue657基于spring和vue开发的web新闻流媒体平台

博主介绍&#xff1a;专注于Java&#xff08;springboot ssm 等开发框架&#xff09; vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

Spring Boot 3项目创建与示例(Web+JPA)

以下是一个Spring Boot 3.3.4整合JPA的示例,它展示了如何在Spring Boot应用程序中使用JPA进行数据持久化。 版本与环境 Spring Boot 3.3.4数据库: MySQL 8.0.40, MySQL的安装使用可以参考: MySQL 8 下载与安装攻略JDK 17Maven 3.6项目创建 可以使用Spring Initializr 初始…

龙迅#LT8668EX显示器图像处理芯片 适用于HDMI1.4+VGA转4PORT LVDS,支持4K30HZ分辨率,可做OSD菜单亮度调节!

1. 一般说明 LT8668EX 是 Lontium 的第二代 LCD 控制器&#xff0c;基于 ClearEdge 技术&#xff0c;支持 VGA 接口和 HDMI 接口&#xff0c;符合 HDMI 1.4 规范。它可以支持带 HDMI 接口的双模 DP。为了向后兼容&#xff0c;该 LCD 控制器还包括一个高性能模拟接口&#xff0…

[pdf,epub]105页《分析模式》漫谈合集01

105页的《分析模式》漫谈合集第1集的pdf、epub文件&#xff0c;已上传到本账号的CSDN资源。 如果无法下载&#xff0c;也可以访问umlchina.com/url/ap.html 已排版成适合手机阅读&#xff0c;pdf的排版更好一些。 ★UMLChina为什么叒要翻译《分析模式》&#xff1f; ★[缝合故…

【升华】springboot中的加解密工具Java Simplified Encryption

一、前言 一般公司的核心业务代码中&#xff0c;都会存在与数据库、第三方通信的secret key等敏感信息&#xff0c;如果以明文的方式存储&#xff0c;一旦泄露&#xff0c;那将会给公司带来巨大的损失。 然而&#xff0c;许多中小型公司开发者对这方面的管理不够规范&#xff…

注释多行代码的vim插件

编写vim 插件代码 add_comments.vim function! AddComment()let l:comment #if &filetype cpplet l:comment //elseif &filetype clet l:comment //endiflet [l:start, l:end][ line("<"), line(">") ]let l:commented_lines []for …

AutoGLM:智谱AI的创新,让手机成为你的生活全能助手

目录 引言一、AutoGLM&#xff1a;开启AI的Phone Use时代二、技术核心&#xff1a;AI从“语言理解”到“执行操作”三、实际应用案例&#xff1a;AutoGLM的智能力量1. 智能生活管理&#x1f34e;2. 社交网络的智能互动&#x1f351;3. 办公自动化&#x1f352;4. 电子商务的购物…

深入解密 K 均值聚类:从理论基础到 Python 实践

1. 引言 在机器学习领域&#xff0c;聚类是一种无监督学习的技术&#xff0c;用于将数据集分组成若干个类别&#xff0c;使得同组数据之间具有更高的相似性。这种技术在各个领域都有广泛的应用&#xff0c;比如客户细分、图像压缩和市场分析等。聚类的目标是使得同类样本之间的…

【ROS的TF系统】

系列文章目录 TF系统简介 前面的章节实现了SLAM节点的建图功能&#xff1a; 激光雷达节点—> /scan话题 —>hector_mapping节点—> 地图数据话题/map 本期来实现SLAM节点的定位功能&#xff1a; TF&#xff08;TransForm&#xff09;主要描述的是两个坐标系的空间关…

趣说产品安全设计的十大经典原则,看一遍就再难忘记!

全设计原则在产品和系统的开发中占据着至关重要的地位。这些原则强调了从一开始就将安全性融入到设计过程中的重要性&#xff0c;而不是作为事后补救措施。通过遵循这些原则&#xff0c;开发者能够创建更加健壮和安全的产品&#xff0c;有效减少潜在的安全漏洞和威胁。接下来博…

【回溯】力扣 77.组合

一、题目 二、思路 采用回溯算法&#xff0c;注意点&#xff1a; 递归出口&#xff1a;已经选够 k k k 个数参数传递&#xff1a;由于不可以重复选择相同的数字&#xff0c;因此每选一个数就会使得可选择的范围对应缩小。不妨设定选择的顺序是从 1 1 1 到 n n n 依次进行选…

疯狂Spring Boot讲义[推荐1]

《疯狂Spring Boot讲义》是2021年电子工业出版社出版的图书&#xff0c;作者是李刚 《疯狂Spring Boot终极讲义》不是一本介绍类似于PathVariable、MatrixVariable、RequestBody、ResponseBody这些基础注解的图书&#xff0c;它是真正讲解Spring Boot的图书。Spring Boot的核心…

『 Linux 』网络传输层 - TCP(二)

文章目录 TCP六个标志位TCP的连接三次握手 四次挥手为什么是三次握手和四次挥手 重传机制 TCP六个标志位 在TCP协议报文的报头中存在一个用于标志TCP报文类型的标志位(不考虑保留标志位),这些标志位以比特位选项的方式存在,即对应标志位为0则表示为假,对应标志位为1则为真; SYN…

LeetCode --- 421周赛

题目列表 3334. 数组的最大因子得分 3335. 字符串转换后的长度 I 3336. 最大公约数相等的子序列数量 3337. 字符串转换后的长度 II 一、数组的最大因子得分 数据范围足够小&#xff0c;可以用暴力枚举移除的数字&#xff0c;得到答案&#xff0c;时间复杂度为O(n^2)&#…