JavaScript入门宝典:核心知识全攻略(下)

在这里插入图片描述

文章目录

  • 前言
  • 一、获取标签元素
  • 二、操作标签元素属性
    • 1. 属性的操作
    • 2. innerHTML
  • 三、数组及操作方法
    • 1. 数组的定义
    • 2. 数组的操作
  • 四、循环语句
  • 五、字符串拼接
  • 六、定时器
    • 1. 定时器的使用
    • 3. 清除定时器
  • 七、ajax
    • 1. ajax的介绍
    • 2. ajax的使用


前言

    JavaScript是前端开发不可或缺的技能。本文将引导读者掌握其核心技术,包括获取和操作HTML元素、JS数组操作、循环语句、字符串拼接、定时器使用和AJAX技术。


一、获取标签元素

可以使用内置对象 document 上的 getElementById 方法来获取页面上设置了id属性的标签元素,获取到的是一个html对象,然后将它赋值给一个变量,比如:

<script type="text/javascript">var oDiv = document.getElementById('div1');alert(oDiv);
</script>
<div id="div1">这是一个div元素</div>

注意:
上面的代码,如果把javascript写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript去页面上获取元素div1的时候,元素div1还没有加载。

解决方法有两种:

第一种方法:将javascript放到页面最下边

<div id="div1">这是一个div元素</div><script type="text/javascript">var oDiv = document.getElementById('div1');alert(oDiv);
</script>

第二种方法:设置页面加载完成执行的函数,在执行函数里面获取标签元素。

<script type="text/javascript">window.onload = function(){var oDiv = document.getElementById('div1');}
</script>

说明:
onload是页面所有元素加载完成的事件,给onload设置函数时,当事件触发就会执行设置的函数。

二、操作标签元素属性

1. 属性的操作

属性名在js中的写法:

  1. html的属性和js里面属性大多数写法一样,但是“class” 属性写成 “className”
  2. “style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”
<style>.sty01{font-size:20px;color:red;}.sty02{font-size:30px;color:pink;text-decoration:none;}</style><script type="text/javascript">window.onload = function(){var oInput = document.getElementById('input1');var oA = document.getElementById('link1');// 读取属性值var sValue = oInput.value;var sType = oInput.type;var sName = oInput.name;var sLinks = oA.href;// 操作class属性,需要写成“className”oA.className = 'sty02';// 写(设置)属性oA.style.color = 'red';oA.style.fontSize = sValue;}</script><input type="text" name="setsize" id="input1" value="20px">
<a href="#" id="link01" class="sty01">这是一个链接</a>

2. innerHTML

innerHTML可以读取或者设置标签包裹的内容

<script type="text/javascript">window.onload = function(){var oDiv = document.getElementById('div1');//读取var sTxt = oDiv.innerHTML;alert(sTxt);//写入oDiv.innerHTML = '<a href="http://www.baidu.com">百度<a/>';}
</script><div id="div1">这是一个div元素</div>

该处使用的url网络请求的数据。


三、数组及操作方法

1. 数组的定义

// 实例化对象方式创建
var aList = new Array(1,2,3);// 字面量方式创建,推荐使用
var aList2 = [1,2,3,'asd'];//多维数组指的是数组的成员也是数组,把这样的数组叫做多维数组。
var aList = [[1,2,3],['a','b','c']];

2. 数组的操作

获取数组的长度:

var aList = [1,2,3,4];
alert(aList.length); // 弹出4

根据下标取值:

var aList = [1,2,3,4];
alert(aList[0]); // 弹出1

从数组最后添加和删除数据:

var aList = [1,2,3,4];
aList.push(5);
alert(aList); //弹出1,2,3,4,5
aList.pop();
alert(aList); // 弹出1,2,3,4

根据下标添加和删除元素:

arr.splice(start,num,element1,.....,elementN)参数解析:
1. start:必需,开始删除的索引。
2. num:可选,删除数组元素的个数。
3. elementN:可选,在start索引位置要插入的新元素。ps:此方法会删除从start索引开始的num个元素,并将elementN参数插入到start索引位置。

代码示例:

var colors = ["red", "green", "blue"];
colors.splice(0,1);  //删除第一项
alert(colors);  //green,bluecolors.splice(1, 0, "yellow", "orange");  //从第一个索引位置插入两项数据
alert(colors);  //green,yellow,organge,bluecolors.splice(1, 1, "red", "purple");  //删除一项,插入两项数据
alert(colors);  //green,red,purple,orange,blue

四、循环语句

  • for
  • while
  • do-while
//for 循环
var array = [1, 4, 5];for(var index = 0; index < array.length; index++){result = array[index];alert(result);
}//while 循环
var array = [1, 4, 5];        
var index = 0;while (index < array.length) {result = array[index];alert(result);index++;
}//do-while 循环
var array = [1, 4, 5];
var index = 0;do {result = array[index];alert(result);index++;
} while (index < array.length);

五、字符串拼接

字符串拼接使用: “+” 运算符

var iNum1 = 10;
var fNum2 = 11.1;
var sStr = 'abc';result = iNum1 + fNum2;
alert(result); // 弹出21.1result = fNum2 + sStr;
alert(result); // 弹出11.1abc

六、定时器

定时器就是在一段特定的时间后执行某段程序代码。

1. 定时器的使用

js 定时器有两种创建方式:

  1. setTimeout(func[, delay, param1, param2, ...]) :以指定的时间间隔(以毫秒计)调用一次函数的定时器
  2. setInterval(func[, delay, param1, param2, ...]) :以指定的时间间隔(以毫秒计)重复调用一个函数的定时器

setTimeout函数的参数说明:

  • 第一个参数 func , 表示定时器要执行的函数名
  • 第二个参数 delay, 表示时间间隔,默认是0,单位是毫秒
  • 第三个参数 param1, 表示定时器执行函数的第一个参数,一次类推传入多个执行函数对应的参数。
<script> function hello(){ alert('hello'); } // 执行一次函数的定时器setTimeout(hello, 500);
</script>

setInterval函数的参数说明:

  • 第一个参数 func , 表示定时器要执行的函数名
  • 第二个参数 delay, 表示时间间隔,默认是0,单位是毫秒
  • 第三个参数 param1, 表示定时器执行函数的第一个参数,一次类推传入多个执行函数对应的参数。
<script> function hello(){ alert('hello'); } // 重复执行函数的定时器setInterval(hello, 1000);
</script>

3. 清除定时器

js 清除定时器分别是:

  • clearTimeout(timeoutID) 清除只执行一次的定时器(setTimeout函数)
  • clearInterval(timeoutID) 清除反复执行的定时器(setInterval函数)

clearTimeout函数的参数说明:

  • timeoutID 为调用 setTimeout 函数时所获得的返回值,使用该返回标识符作为参数,可以取消该 setTimeout 所设定的定时执行操作。
<script>function hello(){alert('hello');// 清除只执行一次的定时器clearTimeout(t1)}// 执行一次函数的定时器t1 = setTimeout(hello, 500);
</script>

clearInterval函数的参数说明:

  • timeoutID 为调用 setInterval 函数时所获得的返回值,使用该返回标识符作为参数,可以取消该 setInterval 所设定的定时执行操作。
<script> function hello(){ alert('hello'); } // 重复执行函数的定时器var t1 = setInterval(hello, 1000);function stop(){// 清除反复执行的定时器clearInterval(t1); }  </script> <input type="button" value="停止" onclick="stop();">

七、ajax

1. ajax的介绍

ajaxAsynchronous JavaScript and XML的简写,ajax一个前后台配合的技术,它可以让 javascript 发送异步的 http 请求,与后台通信进行数据的获取,ajax 最大的优点是实现局部刷新,ajax可以发送http请求,当获取到后台数据的时候更新页面显示数据实现局部刷新,在这里大家只需要记住,当前端页面想和后台服务器进行数据交互就可以使用ajax了。

注意:在html页面使用ajax需要在web服务器环境下运行, 一般向自己的web服务器发送ajax请求。

2. ajax的使用

jquery将它封装成了一个方法$.ajax(),我们可以直接用这个方法来执行ajax请求。

示例代码:

在服务端没有开启cookie的时候,可以正常请求,如果需要cookie或者session需要配置xhrFields:{withCredentials:true}

<script>var obj = {name:'站桑'}$.ajax({// 1.url 请求地址url:'http://t.weather.sojson.com/api/weather/city/101010100',// 2.type 请求方式,默认是'GET',常用的还有'POST'type:'GET',// 3.dataType 设置返回的数据格式,常用的是'json'格式dataType:'JSON',// 4.data 设置发送给服务器的数据, 没有参数不需要设置data:obj,// 5.success 设置请求成功后的回调函数success:function (response) {console.log(response);    },// 6.error 设置请求失败后的回调函数error:function () {alert("请求失败,请稍后再试!");},// 7.async 设置是否异步,默认值是'true',表示异步,一般不用写async:true
});
</script>

ajax方法的参数说明:

  1. url 请求地址
  2. type 请求方式,默认是’GET’,常用的还有’POST’
  3. dataType 设置返回的数据格式,常用的是’json’格式
  4. data 设置发送给服务器的数据,没有参数不需要设置
  5. success 设置请求成功后的回调函数
  6. error 设置请求失败后的回调函数
  7. async 设置是否异步,默认值是’true’,表示异步,一般不用写
  8. xhrFields:{withCredentials:true}, 与后端跨域配合设置,允许携带cookie
  9. 同步和异步说明
    • 同步是一个ajax请求完成另外一个才可以请求,需要等待上一个ajax请求完成,好比线程同步。
    • 异步是多个ajax同时请求,不需要等待其它ajax请求完成, 好比线程异步。

ajax的简写方式:

$.ajax按照请求方式可以简写成$.get或者$.post方式

ajax简写方式的示例代码:

 <script>$(function(){/*1. url 请求地址2. data 设置发送给服务器的数据, 没有参数不需要设置3. success 设置请求成功后的回调函数4. dataType 设置返回的数据格式,常用的是'json'格式, 默认智能判断数据格式*/ $.get("http://t.weather.sojson.com/api/weather/city/101010100", function(dat,status){console.log(dat);console.log(status);alert(dat);}).error(function(){alert("网络异常");});/*1. url 请求地址2. data 设置发送给服务器的数据, 没有参数不需要设置3. success 设置请求成功后的回调函数4. dataType 设置返回的数据格式,常用的是'json'格式, 默认智能判断数据格式*/ $.post("test.php", {"func": "getNameAndTime"}, function(data){alert(data.name); console.log(data.time); }, "json").error(function(){alert("网络异常");}); });
</script>

$.get$.post方法的参数说明:
$.get(url,data,success(data, status, xhr),dataType).error(func)
$.post(url,data,success(data, status, xhr),dataType).error(func)

  1. url 请求地址
  2. data 设置发送给服务器的数据,没有参数不需要设置
  3. success 设置请求成功后的回调函数
    • data 请求的结果数据
    • status 请求的状态信息, 比如: “success”
    • xhr 底层发送http请求XMLHttpRequest对象
  4. dataType 设置返回的数据格式
    • “xml”
    • “html”
    • “text”
    • “json”
  5. error 表示错误异常处理
    • func 错误异常回调函数

在这里插入图片描述

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

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

相关文章

Typescript 中 tsconfig.json 无法写入文件,因为它会覆盖输入文件

先来看看问题 在开发ts项目的时候&#xff0c;包错提示无法写入文件 tsconfig.json无法写入文件"url"因为它会覆盖输入文件 这是tsconfig.json文件配置问题&#xff0c;需要加入下面的配置就好了&#xff1a; {"compilerOptions": {"outDir": …

【MySQL数据库】:MySQL索引特性

目录 索引的概念 磁盘 磁盘的基本特征 MySQL与磁盘交互的基本单位 索引的理解 建立测试表 理解单个Page 理解多个Page 页目录 单页情况 多页情况 索引的数据结构 聚簇索引 VS 非聚簇索引 索引操作 创建主键索引 创建唯一索引 创建普通索引 创建全文索引 查询…

海宁代理记账公司-专业的会计服务

随着中国经济的飞速发展&#xff0c;企业的规模和数量日益扩大&#xff0c;在这个过程中&#xff0c;如何保证企业的财务活动合规、准确无误地进行&#xff0c;成为了每个企业面临的重要问题&#xff0c;专业、可靠的代理记账公司应运而生。 海宁代理记账公司的主要职责就是为各…

Prism 入门06,发布订阅(入门完结)

本章节介绍使用 Prism 框架的消息聚合器 IEventAggregator ,实现如何进行消息发布,订阅,取消订阅的功能 继续使用上一章节使用的 Prism WPF 空模板项目 BlankApp1 1.首先,在使用 Prism 框架当中,进行事件消息的发布和订阅之前,需要定义发布事件的事件消息模型。如下所示:…

端午节景区视频监控方案:智慧景区EasyCVR视频监控系统构建与运用

端午节&#xff0c;作为中国传统节日之一&#xff0c;每年吸引着大量游客前往各地景区参观游览&#xff0c;感受浓厚的文化氛围。然而&#xff0c;随着游客数量的增多&#xff0c;景区管理也面临着越来越多的挑战&#xff0c;其中安全问题尤为突出。因此&#xff0c;实施端午节…

使用 ESPCN 模型进行超分辨率图像处理

前言 使用 ESPCN (Efficient Sub-Pixel CNN) 模型对低分辨率的图像&#xff0c;进行超分辨率处理。 效果展示 lowres 表示低分辨率图像&#xff0c;highres 表示高分辨率图像&#xff0c;prediction 表示模型预测的高分辨率图像&#xff0c;可以看出模型在生成高分辨率图像过…

力扣hot100:155. 最小栈(栈,辅助栈存储相关信息)

LeetCode&#xff1a;155. 最小栈 1、尝试单调栈 看到这题说&#xff0c;要常数时间内检索最小元素的栈&#xff0c;想到了单调栈&#xff0c;递增单调栈确实能维护最小值&#xff0c;但是这个最小值是存在一定意义的&#xff0c;即如果后面出现了最小值&#xff0c;那么前面…

光电管道液位传感器与电容式液位开关相比

如今&#xff0c;随着检测液位技术的不断发展&#xff0c;检测液位的方法也越来越多&#xff0c;比如浮球开关、电容式液位传感器、管道式液位传感器等等&#xff0c;那么光电管道液位传感器与电容式液位开关相比&#xff0c;有哪些优势&#xff1f; 光电管道液位传感器采用先…

论文高级图表绘制(Python语言,局部放大图)

本文将通过一个具体的示例,展示如何使用Python语言和Matplotlib库来绘制高级图表,包括局部放大图的制作。适用于多条曲线绘制在同一个图表中,但由于数据量过大,导致曲线的细节看不清,需要对细节进行局部放大。如下图: 环境准备 首先,确保你的Python环境中已经安装了以…

基于SSM+Jsp的高校信息资源共享平台

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

基于STM32开发的智能家居监控系统

目录 引言环境准备智能家居监控系统基础代码实现&#xff1a;实现智能家居监控系统 4.1 传感器数据读取4.2 电器设备控制4.3 实时数据监控与分析4.4 用户界面与数据可视化应用场景&#xff1a;家庭安全监控与管理问题解决方案与优化收尾与总结 1. 引言 随着智能家居技术的发…

FM151A,FM171B和利时工控

FM151A,FM171B和利时工控&#xff0c;DCS系统应该具备以下特点&#xff1a;1.系统具备开放的体系结构&#xff0c;可以提供多层的开放数据接口&#xff1b;FM151A,FM171B和利时工控。2.系统应具备强大的处理功能&#xff0c;中型分布式控制系统大型数据采集监控系统功能。FM151…

[数据集][目标检测]室内积水检测数据集VOC+YOLO格式761张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;761 标注数量(xml文件个数)&#xff1a;761 标注数量(txt文件个数)&#xff1a;761 标注类别…

使用小黄鸟(HttpCanary)、VMOS Pro虚拟机对手机APP进行抓包(附带软件)

老规矩先看&#xff0c;效果图&#xff1a; 文章很详细&#xff0c;希望可以耐心看完&#xff0c;保证可以学会抓包&#xff0c;不再走冤枉路&#xff0c;小编在之前看过太多类似文章&#xff0c;折腾了太久才搞懂的&#xff0c;写这篇文章就是不想希望你们像小编一样再花时间…

mac无法读取windows分区怎么办 苹果硬盘怎么读取

对于Mac电脑用户但有Windows系统使用需求的&#xff0c;我们可以通过Boot Camp启动转换助理安装Windows分区这个方案来解决&#xff0c;不过因为两个系统的磁盘格式不同&#xff0c;相应的也会产生一些问题&#xff0c;例如无法正常读取windows分区。下面本文就详细说明mac无法…

在Java中使用SeleniumAPI,超详细

Java中 Selenium相关操作 1 定位元素 1.1 css选择器定位元素 就是定位到页面的元素&#xff0c;本质上就是一个一个的语法 下面举几个具体的例子&#xff1a; 类选择器 按照给定的 class 属性的值&#xff0c;选择所有匹配的元素。 语法&#xff1a;.classname 例子&am…

素颜个人引导页源码

源码介绍 素颜个人引导页源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果预览 源码下载 素颜个人引导页源码

2005-2022年各省居民人均消费支出数据(无缺失)

2005-2022年各省居民人均消费支出数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;2005-2022年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;全体居民人均消费支出 4、范围&#xff1a;31省 5、缺失情况&#xff1a;无缺失 6、指标解释 居民人…

matlab(实例):滤波器(低通、带通、高通,使用butter函数、filter函数)

一、题目&#xff1a;已知一个时域信号&#xff0c;包含三个频率&#xff08;50Hz、150Hz、300Hz&#xff09;&#xff0c;分别设计并使用低通滤波器、带通滤波器、高通滤波器&#xff0c;对其进行滤波&#xff0c;画出滤波信号的时域图和频谱图。 二、解题过程&#xff1a; ①…

区块链的基本原理和优势

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…