✿✿✿JavaScript ---- 函数/js内置对象

news2024/12/23 10:12:13

目   录

一、函数

自调用函数如下演示:

 二、JS中的内置对象

2.Number对象

3.Date 对象

补:第三方的日期工具类 moment.js

4.Math对象

5.数组对象

补:ES6中数组对象新增的方法

6.Global全局方法对象

7.RegExp(**)正则表达式对象


一、函数

函数相当于java中的方法。Function(*****), 代表函数。创建格式如下:

  • 方式一:var  fun =  new  Function("参数列表","方法体");
  • 方式二:function  方法名称(形参列表){   方法体   };
  • 方式三:var fun = function(){   方法体    } ;

函数的使用:函数名称(实参列表);   特点是:函数的调用,只与函数名称有关,与实参列表无关。且函数内部有内置对象 arguments 封装实参数组。

补充: void运算符,拦截返回值,一般结合a标签一起使用。  例如:注销a标签跳转功能,保留可被点击的功能  --->  <a href="javascript:void(0);" οnclick="exit();">退出</a>

<script>

			//方式1:

			function show() {
				var a = 100;
				var b = 200;
				alert(a + b);
			}

			show();

			//方式2:

			var test = function() {
				var a = 100;
				var b = 200;
				alert(a + b);
			}

			test();

			//匿名函数,作为参数传递
			/* function() {
				var a = 100;
				var b = 200;
			} */

			//方式3:了解

			//var fun = new Function("参数列表","方法体");

			//var fun = new Function("a,b", "alert(a+b)");

			//fun(2, 3)


            //形参不需要写数据类型
			function add(a, b) {
				alert(a);
				alert(b);
				var sum = a + b;
				//alert(sum);
			}
			//JS 调用函数式,这个实参,你可以传,也可以不传,传多,传少都可以。
			add(5, 6, 8, 9)
			//返回值
			function add2(a, b) {
				var sum = a + b;
				return sum; //如果你要返回数据,直接 return返回
			}

			var r = add2(5, 9)
			//alert(r);

			//函数有一个内置的属性
			//arguments 他是一个数组,会接收所有传过来的实参
			function show(a, b) {
				var one = arguments[0]
				var two = arguments[1]
				var three = arguments[2]
				var four = arguments[3]
				console.log(one, two, three, four);
				return a + b + one + two + three + four;
			}

			var v = show(5, 6, 7, 8)
			console.log(v);
			//函数的length可以查看有几个形参
			var len = show.length;
			alert(len);
		</script>

自调用函数如下演示:

<script>
			/* 	function show(a, b) {
				alert(a + b);
			}
			show(5, 8); */

			//自调用函数:(function () { /* code */ } ());
			
            var sum = (function(a, b) {
				return a + b;
			}(2, 3));

			alert(sum);
		</script>

 二、JS中的内置对象

1.String对象

 定义方式1: String  str=new String("abckdddd");   定义方式2:var  str="我爱你爱你";  属性:length: 字符串的长度。常用的方法如下:

  • charAt()                                  返回在指定位置的字符。          
  • concat()                                  连接字符串。                           
  • indexOf()                                根据字符检索此符在字符串中的索引。 
  • lastIndexOf()                          从后向前搜索字符串。 
  • substring()                              提取字符串中两个指定的索引号之间的字符。 
  • toLowerCase()                       把字符串转换为小写。
  • toUpperCase()                       把字符串转换为大写。 
  • replace()                                 替换字符串。
  • split()                                      把字符串分割为字符串数组。
  • trim()                                       去除字符串两端的空格。
<script type="text/javascript">

			var str = new String("abc");
			var s = String("hello");

			alert(typeof str); //object
			alert(typeof s); //string

			alert(str instanceof String);
			alert(s instanceof String);

			var ss = "Hello"; //定义字符串

			var v = "hello".charAt(0);
			alert(v);
		</script>

2.Number对象

定义方式:var num=new Number(555.6666);    或   var num1=Number(5694);等等。常用的方法如下:

  • toString()                                  把数字类型转成字符串类型
  • toPrecision()                             把数字格式化为指定的长度。也就是小数后面保留几位
<script>
			

			//toFixed 把数字转换为字符串,结果的小数点后有指定位数的数字。 
			//toPrecision 把数字格式化为指定的长度。 

			var num = new Number(3.58585858585);
			
            //算整数部分在内。保留三位数字
			var vv = num.toPrecision(3);
			alert(vv);

			//保留小数点后面几位,会四舍五入,返回的是字符串
			var strNum = num.toFixed(3);
			alert(strNum);
			alert(strNum * 1 + 1);

			//数字的字符串----数字
			var strNum = "100";
			var n1 = +"100";
			var n2 = strNum * 1;
			var n3 = strNum - 0;
			var n4 = Number(strNum);
			alert(n4 + n3);
			var n5 = window.parseInt(strNum);

			//数字-----数字的字符串
			var n6 = 100;
			var str7 = n6 + "";
		</script>

3.Date 对象

定义方式: var  myDate=new Date();常用的方法如下:

  • getTime()                                   获取从1970-01-01 00:00:00   到当前的毫秒值
  • toLocaleString()                         将时间转化成本地格式 利于阅读
<script>
			//Math 直接使用名称调用它的方法就行了
			var pi = Math.PI
			for (let i = 0; i < 100; i++) {
				var num = Math.random();
				document.write(num);
				document.write("<br>");
			}

			//随机生成四位验证码
		</script>

补:第三方的日期工具类 moment.js

该工具类已经上传至小编的资源中。需要可去下载!!!!

<script src="js/moment.js"></script>
		<script>
			var dateStr = moment().format('YYYY-MM-DD HH:mm:ss'); 
			document.write(dateStr);

			/* var str = moment("19850505", "YYYYMMDD").fromNow();
			document.write(str); */

			//把指定的毫秒值毫秒值,格式化成日期字符串。
			var time = new Date().getTime(); //获取当前的毫秒值
			var dateStr2 = moment(time).format('YYYY-MM-DD HH:mm:ss');
			document.write("<h1>" + dateStr2 + "</h1>");

			var v = new Date('2019-08-22 12:30:23').getTime();
			alert(v);

			var dateObj = new Date();
			/* 	
				toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。 1 3 
				toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 1 3 
				toLocaleDateString() */

			var vstr = dateObj.toLocaleString();
			document.write(vstr);
		</script>

4.Math对象

该对象有一个特点: 该对象不需要创建  直接对象名点上方法即可。常用的方法如下:

  • Math.random();                          随机产生0----1 之间的随机数    
  • Math.round(2.36);                         对小数进行四舍五入  得到一个整数  
  • Math.min(15,25);                          取最小值
  • Math.max(15,25);                         取最大值
  • Math. abs(-2);                            返回数的绝对值。 
  • Math.floor(2.6);                            向下取整
  • Math.ceil(3.82);                            向下取整
<script>
			//Math 直接使用名称调用它的方法就行了
			var pi = Math.PI
			for (let i = 0; i < 100; i++) {
				var num = Math.random();
				document.write(num);
				document.write("<br>");
			}

			//随机生成四位验证码
		</script>

5.数组对象

定义方式:  var arr=new Array(2,6,8);  或  var  arr1=[6,"a",6];  属性:  length  数组的长度。

注意:在js中数组可以存储任意类型元素并且在js中数组的长度可变。常用的方法如下:

  • concat()                                         连接两个或更多的数组,并返回结果。  
  • join()                                              把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 
  • pop()                                              删除并返回数组的最后一个元素 
  • push()                                            向数组的末尾添加一个或更多元素,并返回新的数组长度。 
  • reverse()                                        颠倒数组中元素的顺序。
  • sort()                                              对数组的元素进行排序  从小到大。默认排序方式:字典顺序;要想实现自己的比较方式,需要传入比较器方法对象。
<script>
			var arr = [20, 30, 58, 98, 62, 85, 74];
			//往数组中后面添加元素。
			arr.push(500);
			//往数组的前面添加元素。
			arr.unshift(17);

			//删除数组中的元素。
			var ele = arr.pop(); //从后面删除元素
			alert(arr);
			alert(ele);
			//shift() 删除并返回数组的第一个元素 
			var ele2 = arr.shift();
			alert(ele2)
			alert(arr);

			//可以根据索引来删除。

			var arr2 = [20, 30, 58, 98, 62, 85, 74];

			arr2.splice(1, 1); //从1索引处开始删除,删除1个元素
			//从1索引处开始删除,删除1个元素,把这个元素替换为300
			//arr2.splice(1, 1, 300);
			//从1索引处开始删除,删除3个元素,再2替换成 300, 500, 600, 700, 800
			//arr2.splice(1, 3, 300, 500, 600, 700, 800);
			alert(arr2);

			//把多个数组,拼接成一个数组 
			var arr3 = [20, 30, 58, 98, 62, 85, 74];
			var arr4 = [200, 300, 580, 980, 620, 850, 740];

			var newArr = arr3.concat(arr4);
			alert(newArr);

			//把数组转换成字符串。
			var arr5 = [200, 300, 580, 980, 620, 850, 740];
			var str = arr5.join("-");
			alert(str);
			//reverse() 颠倒数组中元素的顺序。 
			arr5.reverse();
			alert(arr5);

			//slice() 方法可从已有的数组中返回选定的元素。
			var arr6 = [200, 300, 580, 980, 620, 850, 740];
			var arr7 = arr6.slice(0, 3); //含头不含尾
			alert(arr7);

			var ss = "HelloWorld";
			var ss3 = ss.split("").reverse().join("");
			alert(ss3);
		</script>

补:ES6中数组对象新增的方法

<script>
			//filter() 	检测数值元素,并返回符合条件所有元素的数组。
			var arr = [200, 300, 580, 980, 620, 850, 740];
			//获取数组中大于500的元素
			var newArr = arr.filter(function(ele) {
				return ele > 500; //true 符合条件,false不符合条件
			});
			alert(newArr);

			//forEach() 	数组每个元素都执行一次回调函数。
			arr.forEach(function(ele, index) {
				alert(index + "===" + ele);
			});

			//findIndex() 	返回符合传入测试(函数)条件的数组元素索引。
			var arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
			var index = arr2.findIndex(function(ele) {
				return ele % 2 == 0;
			})
			alert(index);

			//includes() 	判断一个数组是否包含一个指定的值。
			var f = arr2.includes(9);
			alert(f);

			//indexOf() 	搜索数组中的元素,并返回它所在的位置。
			var index2 = arr2.indexOf(9);
			var index3 = arr2.indexOf(90);
			alert(index2);
			alert(index3);
			//isArray() 	判断对象是否为数组。
			//instanceof

			//map()通过指定函数处理数组的每个元素,并返回处理后的数组。

			var arr3 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
			var newArr2 = arr3.map(function(ele) {
				return Math.pow(ele, 2);
			});
			alert(newArr2);

			//reduce() 	将数组元素计算为一个值(从左到右)。
			var arr4 = [1, 2, 3, 4, 5, 6, 7, 8, 9];

			//array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
			var sum = arr4.reduce(function(total, num, index, arr) {
				return total + num;
			}, 10);
			alert(sum); //45
		</script>
	</head>

6.Global全局方法对象

特点:该对象中的方法调用,不需要对象的引用,可直接使用。常用的方法如下:

  • isNaN()                                          检查某个值是否是NaN。 
  • parseInt()                                       解析一个字符串并返回一个整数。  从左向右依次查找,每一位是否是数字,直到遇到不是数字为止。将前边的值转为数字。
<script>
			var f = isNaN(NaN);
			alert(f);

			var f2 = this.isNaN(NaN);
			alert(f2);

			var f3 = window.isNaN(NaN);
			alert(f3);

			//parseFloat() 解析一个字符串并返回一个浮点数。 1 3 
			//parseInt() 

			//把数字字符串,转换成数字
			var num = parseInt("1000");
			alert(num + 100);
			var xs = parseFloat("3.2585858");
			alert(xs + 1);
		</script>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			/* encodeURI() 把字符串编码为 URI。 1 5.5
			decodeURI() 解码某个编码的 URI。 1 5.5 */


			// decodeURIComponent() 解码一个编码的 URI 组件。
			// encodeURIComponent() 把字符串编码为 URI 组件。 

			//浏览器会对中文参数进行uri编码
			//http://www.hehehhe.com/?username=%E5%BC%A0%E4%B8%89&sex=%E7%94%B7


			var username = "张三";
			var enCode = encodeURIComponent(username);
			document.write(enCode); //%E5%BC%A0%E4%B8%89

			var dCode = decodeURIComponent(enCode);

			document.write(dCode); //%E5%BC%A0%E4%B8%89

			https
			: //www.baidu.com/s?tn=39042058_4_oem_dg&ie=utf-8&wd=%E4%B8%BA%E4%BB%80%E4%B9%88%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%9A%E8%BF%9B%E8%A1%8Curi%E7%BC%96%E7%A0%81
		</script>
	</head>
	<body>
		<a href="http://www.hehehhe.com?username=张三&sex=男">一个链接</a>
	</body>
</html>

 7.RegExp(**)正则表达式对象

常用方法如java中的一样。常用的方法如下:

  • test()                                               使用正则对象去匹配字符串  如果匹配成功返回ture,否则返回false.     
  • exec()                                              根据正则表达式去查找字符串符合规则的内容。
<script>
			/* RegExp 对象
			RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。
			
			直接量语法
			/pattern/attributes创建 RegExp 对象的语法:
			new RegExp(pattern, attributes); */

			//方式1
			var regp = new RegExp("[0-9A-Z]+", "i");

			//方式2:常用

			var regp2 = /^[0-9A-Z]+$/; //i 表示不区分大小写

			//test()

			var flag = regp2.test("abc123");

			alert(flag);
		</script>

 

(小编也在努力学习更多哟!以后再慢慢分享的啦!)

希望对友友们有所帮助!!!

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

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

相关文章

Word2010入门

Word简介 Microsoft Office Word 2010是微软公司的一个文字处理应用程序。 我们可以利用Word编辑文字、图文排版、建立表格、图形绘制。一直以来&#xff0c;Word都是最流行的文字处理应用程序。 .doc、.docx是Word软件默认存储文件类型&#xff0c; .docx正在逐步取代.doc。…

QT和网络调试助手之间的UDP通信

文章目录一、背景二、实现过程简述UDP协议工作原理及编程模型UDP 接收端UDP 发送端运行UDP接收端和发送端运行UDP发送端发送数据给网络调试助手一、背景 之前一篇博客实现了两个网络调试助手之间的UDP通信。 文章链接&#xff1a;在MacOS上实现两个网络调试助手的UDP通信测试…

西电数据库实验-学生学籍管理系统 数据库设计

西电数据库实验-学生学籍管理系统 数据库设计 文章目录西电数据库实验-学生学籍管理系统 数据库设计需求分析实体集联系集概念结构设计逻辑结构设计实体集department(id‾,name)department(\underline {id},name)department(id​,name)instructor(id‾,name,dept_id)instructor…

如何翻译英文音频?看完你就学会了

在平时的工作中&#xff0c;相信大家应该都会遇到一些不太熟悉的英文或者其它外文的语言&#xff0c;这给我们的生活带来了诸多烦恼&#xff0c;那遇到这种情况&#xff0c;我们应该怎么办呢&#xff1f;其实很简单&#xff0c;我们可以利用一些软件来将这些语言转换成中文&…

SpringCloud系列(三)Nacos 注册中心的搭建及服务发现

在 SpringCloud 系列&#xff08;一&#xff09;里面介绍了 Eureka 注册中心主要用来做什么&#xff0c;如何搭建并进行了简单的测试&#xff0c;但是 Eureka 有诸多不便之处&#xff0c;如需要配合 SpringCloud config 来实现&#xff0c;我们还需要再写一个 Module 进行启动等…

Python安装库教程(解决安装报错)

Python库安装以及报错解决方法 本文章以jieba库和wordcloud库的安装来演示安装以及安装过程报错的解决方法 一. 使用Pycharm安装 1. 没有创建项目&#xff08;创建了直接去往第二步&#xff09; 选择下一步 创建完成 2. 已经创建项目 3. 安装python库报错 如果显示这个就表示…

融云全球社交泛娱乐洞察,老资格的「游戏社交」还有哪些想象空间

一切应用都将社交化。关注【融云全球互联网通信云】回复【融云】抽取高颜值大容量高端可乐保温杯哦~ 融入社交能力&#xff0c;创造增长奇迹。激活用户在不同场景的社交需求&#xff0c;让各类应用焕发出了新的生命力&#xff0c;也让“社交X”成为出海最大的浪。 《2022 社交…

VMware ESXi 8.0 SLIC Unlocker, 集成网卡驱动和 NVMe 驱动

发布 ESXi 8.0 集成驱动版&#xff0c;在个人电脑上运行企业级工作负载 请访问原文链接&#xff1a;VMware ESXi 8.0 SLIC & Unlocker, 集成网卡驱动和 NVMe 驱动&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org 发布 …

MYSQL练习题:报告系统状态的连续日期

题目&#xff1a;报告系统状态的连续日期 系统 每天 运行一个任务。每个任务都独立于先前的任务。任务的状态可以是失败或是成功。 编写一个 SQL 查询 2019-01-01 到 2019-12-31 期间任务连续同状态 period_state 的起止日期&#xff08;start_date 和 end_date&#xff09;。…

Spark系列之Spark的数据倾斜

title: Spark系列 第九章 Spark的数据倾斜 9.1 Spark调优概述 ​ 有的时候&#xff0c;我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜&#xff0c;此时 Spark 作业的性能会比期望差很多。数据倾斜调优&#xff0c;就是使用各种技术方案解决不同类型的数据倾斜问题…

安装TensorRT

安装TensorRT 安装可以查看官方文档&#xff1a;Installation Guide :: NVIDIA Deep Learning TensorRT DocumentationThis NVIDIA TensorRT 8.5.1 Installation Guide provides the installation requirements, a list of what is included in the TensorRT package, and ste…

性能测试 之进程上下文切换问题分析

安装监控平台 通过 grafana(前端) prometheus(时序数据库) node_exporter(硬件资源收集器) 安装监控系统 node_exporter 安装在被压测的服务器上&#xff0c;因为我本机已经安装过&#xff0c;所以只需要通过find 命令找到node所在位置&#xff0c;执行 ./node_exporter 启…

VUE 常用炫酷动画库(拿来即用系列)

目录 打字机效果Vue动画库 代码示例 效果 炫酷背景动画库 代码示例 效果 打字机效果Vue动画库 npm install vue-typical 代码示例 <template><div><v-typicalclass"blink":steps"[Hello, 1000, Hello World !, 600, Hello World ! &#…

【SpringCloud】08 分布式事务 seata

文章目录seata一、seata服务端的搭建&#xff08;1&#xff09;下载seata服务端&#xff08;2&#xff09;解压&#xff08;3&#xff09;配置seata的存储方式&#xff08;4&#xff09;创建seata数据库并导入相关表&#xff08;5&#xff09;把mysql的驱动jar放入到seata服务的…

如何使用ebpf kprobe探测内核函数

前言 在这之前, 我也曾使用过ebpf来改造我自己的项目, 最后也成功引入了项目, 有兴趣的同学可以查看此文章. 如何用ebpf开启tun网卡的TUNSETSTEERINGEBPF功能_我不买vip的博客-CSDN博客 但是该文章里并没有实质性的内容, 比如ebpf的map未曾涉及, 探测类型也未曾涉及, 只是一个空…

汽车蓄电池低压报警设计

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1 选题背景及意义 1 1.2 国内外发展状况 2 1.2.1国内发展现状 2 1.2.2 国外蓄电池监测系统研究现状 2 1.3 研究主要内容 4 第2章 系统总体设计与算法确定 5 2.1 监测系统总体设计原理 5 2.2 主控芯片的选择 6 2.2.1 89C51单片机的概…

JAVA 中的代码生成包 CGLIB (Code Generation Library)

JAVA 中的代码生成包 CGLIB &#xff08;Code Generation Library&#xff09; CGLIB 是一个功能强大&#xff0c;高性能的代码生成包。它为没有实现接口的类提供代理&#xff0c;为 JDK 的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理&#xff0c;但当要代…

【DL with Pytorch】第 4 章 : 卷积神经网络

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

nablet Elements released处理视频的组件

nablet Elements released处理视频的组件 mediaEngine-一个转码工厂&#xff0c;为视频工作流从贡献到分发提供动力。 HeightScreen-AI驱动的工具&#xff0c;用于将视频转换为垂直屏幕&#xff0c;自动选择感兴趣的区域。 Shrynk-AI驱动的解决方案&#xff0c;可自动完成高亮编…

电商的噩梦:全国快递网点停摆65%?

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 今年应该是所有行业最难最艰苦的一年&#xff0c;据龚文祥爆料&#xff0c;全国当前有三分之一的地区停发快递&#xff0c;电商到了最艰难的时刻&#xff0c;所有电商交易立即下降30%。而知名数码博…