【前端开发学习】4.JavaScript

news2025/1/11 14:23:39

文章目录

  • 1 JavaScript
    • 1.1 代码位置
    • 1.2 存在形式
    • 1.3 注释
    • 1.4 变量
    • 1.5 字符串类型
      • 案例:走马灯
    • 1.5 数组
      • 案例:动态数据
    • 1.6 对象(字典)
      • 案例:动态表格
    • 1.7 条件语句
    • 1.8 函数
  • 2 DOM
    • 2.1 事件绑定

1 JavaScript

一门编程语言,能够实现动态效果。

案例:实现确认弹窗。

在这里插入图片描述

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css">
    <style>
         .menus{
            width: 200px;
            border: 1px solid red;
        }
        .menus .header{
            background-color: gold;
            padding: 20px 10px;
        }
    </style>

</head>
<body>
    <div class="menus">
        <div class="header" onclick="myFunc()">大标题</div>
        <div class="item">内容</div>
    </div>
    <script type="text/javascript">
        function myFunc(){
            confirm("是否要继续")
        }
    </script>
</body>
</html>

1.1 代码位置

一般都放在位置2

1.2 存在形式

  1. 当前 HTML 中:

    <script type="text/javascript">
        //编写JavaScript代码
    </script>
    
  2. 在其它 js 文件中,导入使用:

    <script src="xxx.js"></script>
    <script type="text/javascript">
            //编写JavaScript代码
    </script>
    

1.3 注释

  1. HTML :
    <!-- 注释内容 -->

  2. CSS: (只能放在 style 中)
    /* 注释内容 */

  3. JavaScript:(只能放在 script 块)
    // 注释内容
    /* 注释内容 */

1.4 变量

<body>
    <script type="text/javascript">
        var name = "rice";
        console.log(name);
    </script>
</body>

1.5 字符串类型

// 声明
var name = "rice";
var name = String("rice");
// 常见功能
var name = "rice";

var v1 = name.length; // 4
var v2 = name[0]; // r
var v3 = name.trim(); // 去除空白
var v4 = name.substring(0, 2); // 左闭右开

案例:走马灯

效果图:

在这里插入图片描述

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css">
</head>
<body>
<span id="txt">欢迎中国联通领导莅临指导</span>
<script type="text/javascript">
    function show(){
        // 1.去HTML中找到某个标签并获取它的内容 (DOM)
        var tag = document.getElementById("txt");
        var dataString = tag.innerText;

        // 2.动态起来,把文本中的第一个字符放在字符串的最后
        var firstString = dataString[0];
        var otherString = dataString.substring(1, dataString.length);
        var newText = otherString + firstString;

        // 3.在HTML标签中更新内容
        tag.innerText = newText;
    }
        // JavaScript中的定时器,如:每1s执行一次函数
        setInterval(show, 1000);
</script>
</body>
</html>

1.5 数组

// 定义
var v1 = [11, 22, 33, 44];
var v2 = Array([11, 22, 33, 44]);
// 操作
var v1 = [11, 22, 33, 44];

v1[1]
v1[0] = "rice";

v1.push("meal"); // 尾部添加
v1.unshift("meal"); // 头部添加

v1.splice(索引位置, 0, 元素);

v1.pop(); // 尾部删除
v1.shift(); // 头部删除
v1.splice(索引位置, 1); // 索引位置删除

// 循环
for(var idx in v1){
	// idx = 0/1/2... data = v1[data]
}

for(var i=0; i<v1.length; i++){
}

案例:动态数据

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css">
</head>
<body>
    <ul id="city"></ul>
    <script type="text/javascript">
        // 发送网络请求,获取数据
        var cityList = ["北京", "上海", "深圳"];
        for(var idx in cityList){
            var text = cityList[idx];
    
            // 创建<li></li>
            var tag = document.createElement("li");
            // 在li标签中写入内容
            tag.innerText = text;
    
            // 添加到id=city标签中 DOM
            var parentTag = document.getElementById("city");
            parentTag.appendChild(tag);
        }
    </script>
</body>
</html>

1.6 对象(字典)

info = {
	"name": "rice";
	"age": 18;
}

info = {
	"name": "rice";
	age: 18;
}

info.age
info.name = "candy"
info["age"]

delete info["age"]

案例:动态表格

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css">
</head>
<body>
    <table border="2">
        <thead>
            <th>id</th>
            <th>name</th>
            <th>age</th>
        </thead>
        <tbody id="body"></tbody>
    </table>
    <script type="text/javascript">
        var info = {id: 1, name: "rice", age: 19};

        var tr = document.createElement("tr");
        for(var key in info){
            var text = info[key];
            var td = document.createElement("td");
            td.innerText = text;
            tr.appendChild(td);
        }
        var bodyTag = document.getElementById("body");
        bodyTag.appendChild(tr);
    </script>
</body>
</html>

1.7 条件语句

if(条件){

}else{

}

1.8 函数

function func(){
	...
}

// 执行
func()

2 DOM

一个模块,它可以对 HTML 页面中的标签进行操作。

// 根据 ID 获取标签
var tag = document.getElementById("xx")

// 获取标签中的文本
tag.innerText

// 修改标签中的文本
tag.innerText = "xxx"

// 创建标签 <div>xxx</div>
var tag = document.createElement("div");

2.1 事件绑定

效果图:

在这里插入图片描述

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css">
</head>
<body>
<input type="text" placeholder="请输入内容" id="txtUser" />
<input type="button" value="点击添加" onclick="addCityInfo()">
<ul id="city"></ul>
<script type="text/javascript">
        function addCityInfo(){
        // 1.找到输入标签
        var txtTag = document.getElementById("txtUser");

        // 2.获取input输入框中用户输入的内容
        var newString = txtTag.value;

        // 判断用户输入是否为空,只有不为空才能继续
        if(newString.length > 0){
            // 3.创建标签 <li></li> 中间的文本信息就是用户输入的内容
            var newTag = document.createElement("li");
            newTag.innerText = newString;

            // 4.标签添加到ul中
            var parentTag = document.getElementById("city");
            parentTag.appendChild(newTag);

            // 5.清空input内容
            txtTag.value = "";
        }else{
            alert("输入不能为空");
        }
    }
</script>
</body>
</html>

注意, DOM 还有很多操作,但是比较繁琐,因此通常使用 JQuery 来实现。

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

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

相关文章

第二证券|主力加仓电子、电气设备等行业 北向资金连续2日净流入

沪深两市股市涨跌互现&#xff0c;上证指数早盘震动下探&#xff0c;午后一度回升&#xff0c;尾盘再度回落&#xff1b;深证成指早盘探底回升&#xff0c;午后震动上扬&#xff0c;尾盘有所回落&#xff1b;创业板指早盘窄幅震动&#xff0c;午后震动上扬&#xff1b;科创50指…

D. Say No to Palindromes(构造 + 前缀和)

Problem - 1555D - Codeforces 如果这个字符串不包含一个长度至少为2的子串&#xff0c;我们就称它为美丽的字符串&#xff0c;这是一个回文。回顾一下&#xff0c;回文是指从第一个字符到最后一个字符以及从最后一个字符到第一个字符的读法相同的字符串。例如&#xff0c;字符…

京东物流 × StarRocks : 打造服务分析一体化平台Udata

作者&#xff1a;张栋&#xff0c;京东物流集团数据专家 京东集团 2007 年开始自建物流&#xff0c;2017 年 4 月正式成立京东物流集团&#xff0c;2021 年 5 月&#xff0c;京东物流于香港联交所主板上市。京东物流是中国领先的技术驱动的供应链解决方案及物流服务商&#xff…

Linux内核

内核属于操作系统的核心部分&#xff0c;它具有操作系统基本的功能&#xff0c;主要负责管理系统的内存、进程、设备驱动程序、文件系统和网络接口&#xff0c;因此&#xff0c;操作系统的性能和稳定性由内核决定。 1、内存管理 进程对内存的使用 计算机中所有要执行的程序都必…

大厂10年经验,我对Java高并发问题方案的总结,堪称教科书级

作为一个 Java 开发人员&#xff0c;多线程是一个逃不掉的话题&#xff0c;不管是工作还是面试&#xff0c;但理解起来比较模糊难懂&#xff0c;因为多线程程序在跑起来的时候比较难于观察和跟踪。 搞懂多线程并发知识&#xff0c;可以在面试的时候和周围人拉开差距&#xff0…

流媒体:依托于声网的连麦解决方案

一、背景 近些年&#xff0c;直播连麦这把火在流媒体领域整整燃烧了 6 年。从刚开始的简单探索&#xff0c;到现在的成熟全链路方案&#xff0c;不得不说日益增长的激烈竞争&#xff0c;已将让原本的蓝海领域变成了深海互搏。在这样的大环境下&#xff0c;是否意味着小厂将再也…

分布式系统(P2P Lookup)

文章目录P2P 系统NapsterBitTorrentGnutellaChordConsistent HashingSimple Key LocationScalable Key LocationKademliaRouting TableKademlia’s RPCAdaptabilityDistributed Hash TableP2P 系统 Peer to peer 系统&#xff1a; 每个结点在连接上是互联的&#xff0c;在功能…

Spring MVC: 一种简洁且强大的Web应用框架

⭐️前言⭐️ 这篇文章介绍Spring MVC&#xff0c;Spring MVC是现在基本所有Java程序的主流开发框架&#xff0c;这篇文章主要介绍三部分内容&#xff1a; 实现用户和程序的映射(在浏览器输入URL地址之后&#xff0c;能够在程序中匹配到相应方法)。服务器端得到用户的请求参数…

c语言笔记1 输入和输出注意事项,常量 变量 static

输出&#xff1a;printf c的编译器不会检测格式串中转换说明的数量和数据类型是否和后面的变量一致。转换说明的数据类型与实际数据类型不一致时&#xff0c;产生无意义的值。 int 类型的变量length&#xff0c;值为9&#xff0c;输出时将类型写为float或double&#xff0c;输…

【自然语言处理】【ChatGPT系列】InstructGPT:遵循人类反馈指令来训练语言模型

InstructGPT&#xff1a;遵循人类反馈指令来训练语言模型《Training language models to follow instructions with human feedback》论文地址&#xff1a;https://arxiv.org/pdf/2203.02155.pdf 相关博客 【自然语言处理】【ChatGPT系列】InstructGPT&#xff1a;遵循人类反馈…

联想小新pro13 卡顿解决办法

问题 本人电脑型号是 联想小新 pro13 2020 i7 才用了两年多&#xff0c;变得巨卡无比 ctlshiftesc打开任务管理器 cpu利用率才30%多 打字就一顿一顿的出结果 浏览网页也卡的掉帧&#xff0c;更不用说打游戏了 真的很无语&#xff0c;重装了系统也没啥用 思路 在网上搜了一圈…

Linux 网络基础

目录 一.网络 1.重新看待计算机结构 2.几种网络 二.协议 1.协议分层 2.OSI七层模式 3.TCI/IP五层(或四层)模型 三.网络传输 1.网络和操作系统之间的关系 2.网络传输流程图 3.数据包封装和应用 前言&#xff1a;这一篇大体介绍一下网络的一些基础知识。 一.网络 1.重…

do while语句

上次讲了while语句&#xff0c;这次讲一下do while语句。 do...while 循环是 while 循环的变体。在检查while()条件是否为真之前&#xff0c;该循环首先会执行一次do{}之内的语句&#xff0c;然后在while()内检查条件是否为真&#xff0c;如果条件为真的话&#xff0c;就会重复…

王卫点赞友商?北京快递保卫战,顺丰彰显大格局大气度

当下&#xff0c;随着全面放开&#xff0c;国内新冠疫情到了另一个严峻的拐点时刻&#xff0c;特别是北京&#xff0c;正日益逼近感染高峰期。 作为社会生活的毛细血管&#xff0c;快递物流企业们在当下的新冠疫情大背景下上演了一幕幕的鲜活的画面&#xff0c;快递行业市场新…

如何磁盘格式化?分享格式化U盘的3个方法

格式化可以有效管理硬盘&#xff0c;在一定程度上能保证磁盘的性能和使用寿命。尤其是我们遇到一些情况&#xff0c;必须要把U盘进行格式化才行。那么磁盘格式化怎么操作&#xff1f;遇到无法格式化的情况怎么办&#xff1f;别急&#xff0c;下面有3个关于格式化U盘的方法&…

通信协议综述-第3讲 | ifconfig:最熟悉又陌生的命令行

上一节结尾给你留的一个思考题是,你知道怎么查看 IP 地址吗? 当面试听到这个问题的时候,面试者常常会觉得走错了房间。我面试的是技术岗位啊,怎么问这么简单的问题? 的确,即便没有专业学过计算机的人,只要倒腾过电脑,重装过系统,大多也会知道这个问题的答案:在 Win…

图片跟随鼠标移动效果的抖动问题

场景 图片跟随鼠标移动效果的实现思路&#xff1a; 触发mousemove事件响应时&#xff0c;通过e.offsetX,e.offsetY获取到当前鼠标的位置。再修改图片的css样式中的top, left属性&#xff08;图片采用绝对定位&#xff09;。 代码如下&#xff1a; <div id"angel&quo…

车载TBOX嵌入式设备软件的功能测试

作者 | 李伟 上海控安安全测评中心安全测评部总监 来源 | 鉴源实验室 01 Tbox简介 Tbox(Telematics Box)是汽车座舱系统中的一个ECU&#xff0c;物理外观上是一个方正的盒子&#xff0c;通常会有线束接口、HSD接口、通讯和导航天线接口等。软件上Tbox一般会基于Linux操作系统…

音视频面试涨知识(二)

1.YUV知识点 1.1 为什么要有YUV YUV的亮度信号Y和色度信号U/V是分离的&#xff0c;如果只有Y信号分量而没有U/V分量&#xff0c;这样的图像就是黑白灰度图像&#xff0c;从黑白到彩色的兼容方案。 相对RGB&#xff0c;YUV的最大优点是只占用较小的频宽&#xff0c;RGB需要至少…

EasyPytest测试平台开发日志之系统设计

EasyPytest测试平台&#xff0c;帮你高效管理Pytest测试用例。 EP平台的定位是Pytest测试用例管理平台&#xff0c;80%的自动化用例开发在PyCharm等专业的IDE中进行&#xff0c;20%的用例调度和结果查看就交给EP平台来管理。 EP平台是对teprunner测试平台的一次全新升级&#x…