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,blue

colors.splice(1, 0, "yellow", "orange");  //从第一个索引位置插入两项数据
alert(colors);  //green,yellow,organge,blue

colors.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.1

result = 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 错误异常回调函数

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RHEL - 订阅、注册系统和 Yum Repository(新版界面)

《OpenShift / RHEL / DevSecOps 汇总目录》 演示环境说明 本文需要有 redhat.com 账号以及包含 RHEL 的有效订阅。 演示环境使用了通过 minimal 方式安装的 RHEL 7.6 环境&#xff0c;RHEL 可以访问互联网。 红帽网站 access.redhat.com 针对新用户提供了新版界面&#xff0…

云原生架构:构建高可用、可伸缩的互联网应用

随着互联网技术的不断发展&#xff0c;云原生架构已经成为构建高可用、可伸缩的互联网应用的最佳实践之一。云原生架构是一种以云计算为基础的应用架构&#xff0c;旨在充分利用云平台的优势&#xff0c;实现应用的高可用性、灵活性和可扩展性。本文将介绍云原生架构的关键概念…

数据结构复习指导之外部排序

目录 外部排序 复习提示 1.外部排序的基本概念 2.外部排序的方法 2.1对大文件排序时使用的排序算法&#xff08;2016&#xff09; 3.多路平衡归并与败者树 4.置换-选择排序&#xff08;生成初始归并段&#xff09; 4.1置换-选择排序生成初始归并段的实例(2023) 5.最佳…

2. pytorch环境安装

概述 ​ 本文提供基于Anaconda环境Windows11操作系统的Pytorch深度学习环境的配置。深度学习环境分为GPU和CPU两大部分。使用GPU进行环境配置&#xff0c;需要保证电脑配有独立显卡&#xff0c;并且显卡驱动安装正常&#xff0c;详情见前文。 1. 创建新的虚拟环境用来配置Pyt…

【Rust】——面向对象设计模式的实现

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…

如何知道ZIP压缩包解压密码?有哪些解密策略?

我们在生活当中&#xff0c;经常会遇到ZIP压缩包&#xff0c;它们以其高效的文件压缩和方便的传输特性而受到广泛欢迎。然而&#xff0c;有时我们可能会遇到一些带有密码保护的ZIP文件&#xff0c;这时就需要知道解压密码才能访问其中的内容。本文将探讨如何知道ZIP压缩包的解压…

Suse Linux ssh配置免密后仍需要输入密码

【问题描述】 Suse Linux已经配置了ssh免密&#xff0c;但无法ssh到目标服务器。 对自身的ssh登陆也需要输入密码。 系统–Suse 15 SP5 【重现步骤】 1.使用ssh-keygen -t rsa生产key文件 2.使用ssh-copy-id拷贝public key到目标机器(或者自身) 3.配置成功后ssh 目标时仍需要输…

使用亮数据代理IP爬取PubMed文章链接和邮箱地址

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

Tensorflow音频分类

tensorflow https://www.tensorflow.org/lite/examples/audio_classification/overview?hlzh-cn 官方有移动端demo 前端不会 就只能找找有没有java支持 注意版本 注意JDK版本 package com.example.demo17.controller;import org.tensorflow.*; import org.tensorflow.ndarra…

【Java面试】九、微服务篇-SpringCloud(上)

文章目录 1、SpringCloud五大组件2、服务注册和发现2.1 Eurake2.2 Eurake和Nacos的区别 3、Ribbon负载均衡3.1 策略3.2 自定义负载均衡策略 4、服务雪崩与熔断降级4.1 服务雪崩4.2 服务降级4.3 服务熔断 5、服务限流5.1 Nginx限流5.2 网关限流 6、微服务监控7、面试 1、SpringC…

【Python报错】已解决ModuleNotFoundError: No module named ‘xxx‘ in Jupyter Notebook

解决Python报错&#xff1a;ModuleNotFoundError: No module named ‘xxx’ in Jupyter Notebook 在使用Jupyter Notebook进行数据分析或科学计算时&#xff0c;我们经常需要导入各种Python模块。如果你遇到了ModuleNotFoundError: No module named xxx的错误&#xff0c;这通常…

[word] word如何清除超链接 #媒体#笔记#知识分享

word如何清除超链接 办公中&#xff0c;少不了使用word&#xff0c;这个是大家必备的软件&#xff0c;今天给大家分享下word如何清除超链接的操作办法&#xff0c;一起来学习下吧&#xff01; 1、清除所有超链接 按下组合键CtrlshiftF9&#xff0c;就可以将网上复制带有超链…

Rust 标记一个属性或函数为废弃

如题&#xff0c;演示Rust 标记一个属性或函数为废弃的基本使用方法&#xff1a; 示例&#xff1a; use serde::{Deserialize, Serialize};#[derive(Clone, Debug, Serialize, Deserialize, Default)] pub struct GrpcOptions {pub addr: String,pub max_recv_message_size: u…

【JavaScript函数详解】Day04

JavaScript函数详解 JavaScript 基础 - 第4天笔记函数声明和调用声明&#xff08;定义&#xff09;调用 参数形参和实参参数默认值 返回值函数补充细节作用域全局作用域局部作用域变量的访问原则 匿名函数函数表达式立即执行函数 逻辑中断小知识&#xff08;转换为Boolean型&am…

企业应如何选择安全合规的内外网文件摆渡系统?

网络隔离是一种安全措施&#xff0c;旨在将网络划分为不同的部分&#xff0c;以减少安全风险并保护敏感信息。常见的隔离方式像物理隔离、逻辑隔离、防火墙隔离、虚拟隔离、DMZ区隔离等&#xff0c;将网络隔离成内网和外网。内外网文件摆渡通常指在内部网络&#xff08;内网&am…

【吊打面试官系列】CHAR 和 VARCHAR 的区别?

大家好&#xff0c;我是锋哥。今天分享关于 【CHAR 和 VARCHAR 的区别&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; CHAR 和 VARCHAR 的区别&#xff1f; 1、CHAR 和 VARCHAR 类型在存储和检索方面有所不同 1000道 互联网大厂Java工程师 精选面试题-Java资源…

【吊打面试官系列】MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

大家好&#xff0c;我是锋哥。今天分享关于 【MySQL 中 InnoDB 支持的四种事务隔离级别名称&#xff0c;以及逐级之间的区别&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; MySQL 中 InnoDB 支持的四种事务隔离级别名称&#xff0c;以及逐级之间的区别&#xf…

【机器学习】深度卷积生成对抗网络(DCGAN)用于图像生成

1. 引言 1.1 DGGAN是什么&#xff1f; DGGAN&#xff08;Directed Graph embedding framework based on Generative Adversarial Network&#xff09;是一种基于生成对抗网络&#xff08;GAN&#xff09;的有向图嵌入方法&#xff1a; 基本定义&#xff1a;DGGAN是一种结合了…

【中篇】从 YOLOv1 到 YOLOv8 的 YOLO 物体检测模型历史

YOLO 型号之所以闻名遐迩,主要有两个原因:其速度和准确性令人印象深刻,而且能够快速、可靠地检测图像中的物体。上回我解释了Yolo v1, 今天从Yolov2开始。 YOLOv2:更好、更快、更强 2017 年 7 月一个闷热的星期二下午,雷德蒙(Joseph Redmon, Yolo创始人)再次走上舞台。 …

【微信小程序开发】小程序中的上滑加载更多,下拉刷新是如何实现的?

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…