【前端开发学习】4.JavaScript

news/2024/11/28 0:33:42/

文章目录

  • 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标签中 DOMvar 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.ppmy.cn/news/4064.html

相关文章

五个月学完软件测试,现在分享以前自学的测试笔记

以前学习手抄的linux命令哈哈哈 定义 在规定的条件下对程序进行操作&#xff0c;以发现程序错误&#xff0c;衡量软件质量&#xff0c;并对其是否能满足设计要求进行评估的过程。 测试就是发现错误而执行程序的过程。 原则 保证测试的覆盖度&#xff0c;但是穷举测试是不可能…

深度理解取模

深度理解取模一.取模概念二.负数取模三.进一步的解释四.取模和取余是一样的吗&#xff1f;一.取模概念 二.负数取模 上面的代码一目了然就不再多少啦&#xff0c;但如果是负数取模又该怎么办呢&#xff1f; 以上a/b-3是很好理解的&#xff0c;那为什么取模后的值是-1呢&#xf…

Java容器源码重点回顾——CopyOnWriteArrayList

1. CopyOnWriteArrayList概述 之前介绍过ArrayList&#xff0c;但是我们知道ArrayList是线程不安全的。如果多个线程同时写数据&#xff0c;就会抛出ConcurrentModificationException。然后我们又学过Vector&#xff0c;它的实现方式是在方法中都加入synchronized关键字&#…

Redis——好友关注、共同关注、Feed流推送

1. 好友关注 在探店图文的详情页面中&#xff0c;可以关注发布笔记的作者&#xff1a; 进到探店笔记详情页&#xff0c;会发出两个请求&#xff0c;1是判断是否已经关注&#xff0c;2是尝试关注用户的请求。 关注是User之间的关系&#xff0c;是博主与粉丝的关系&#xff0c;…

Java也可以轻松编写并发程序

如今&#xff0c;多核处理器在服务器&#xff0c;台式机及笔记本电脑上已经很普遍了&#xff0c;同时也被应用在更小的设备上&#xff0c;比如智能手机和平板电脑。这就开启了并发编程新的潜力&#xff0c;因为多个线程可以在多个内核上并发执行。在应用中要实现最大性能的一个…

深入剖析Linux RCU原理(一)初窥门径

说明&#xff1a; Kernel版本&#xff1a;4.14ARM64处理器&#xff0c;Contex-A53&#xff0c;双核使用工具&#xff1a;Source Insight 3.5&#xff0c; Visio 1. 概述 RCU, Read-Copy-Update&#xff0c;是Linux内核中的一种同步机制。RCU常被描述为读写锁的替代品&#xf…

【Java笔记】 深入理解序列化和反序列化

深入理解序列化和反序列化 文章目录深入理解序列化和反序列化1.是什么2.为什么3.怎么做3.1 实现Serializable接口3.2 实现Externalizable接口3.3 注意知识点3.4 serialVersionUID的作用4 扩展1.是什么 序列化&#xff1a;就是讲对象转化成字节序列的过程。 反序列化&#xff…

Redis框架(十五):大众点评项目 共同关注方案实现?双指针筛选DB数据:Redis取交集

大众点评项目 好友关注 共同关注需求&#xff1a;好友关注 共同关注业务逻辑展示点击关注功能实现判断当前用户是否关注了此博主共同好友列表查询业务逻辑实现双指针筛选DB数据Redis取交集总结SpringCloud章节复习已经过去&#xff0c;新的章节Redis开始了&#xff0c;这个章节…