前端基础3-2——JavaScript

目录

  • 内部对象
    • Date
    • JSON
    • AJAX
  • 面向对象编程
  • 操作BOM对象(重点)
  • 操作DOM对象(重点)
  • 操作表单form
  • jQuery
  • 如何巩固前端基础

内部对象

标准对象
在这里插入图片描述

Date

基本使用
在这里插入图片描述

转换
在这里插入图片描述

JSON

JSON是什么
在这里插入图片描述

在javascript中,一切皆为对象,任何js支持的类型都可以用JSON表示
格式

  • 对象都用{}
  • 数组都用[]
  • 所有的键值对 都是用key:value

JSON字符串和js对象转化
在这里插入图片描述

很多人搞不清楚,JSON和JS对象的区别在这里插入图片描述

AJAX

(后面web详细说)

原生的js写法 xhr异步请求

jQuery封装好的方法$(#name).

ajax("")axios请求

面向对象编程

原型对象 javascript、java、c#------面向对象;但是javascript有些区别!

  • 类:模板
  • 对象:具体实例

在javascript中,需要大家转换一下思维方式! 原型:
在这里插入图片描述在这里插入图片描述

class集继承

class关键字,是在ES6引入的
1、定义一个类、属性、方法
在这里插入图片描述

2、继承

 <script>//ES6之后========================//定义一个学生的类class Student{constructor(name){this.name = name;}hello(){alert('hello');}}class XiaoStudent extends Student{constructor(name,grade){super(name);this.grade = grade;}myGrade(){alert('我是一名小学生');}}var xiaoming = new Student("xiaoming");var xiaohong = new XiaoStudent("xiaohong",1);</script>

本质:查看对象原型
在这里插入图片描述

原型链
proto:
在这里插入图片描述

操作BOM对象(重点)

BOM:浏览器对象模型

window

window代表浏览器窗口

在这里插入图片描述

Navigator(不建议使用)

Navigator封装了浏览器的信息

在这里插入图片描述

大多数时候,我们不会使用navigator对象,因为会被认为修改!
不建议使用这些属性来判断和编写代码

screen

代表屏幕尺寸

在这里插入图片描述

location(重要)
location代表当前页面的URL信息
在这里插入图片描述

document(内容DOM)

document代表当前的页面,HTML DOM文档树
在这里插入图片描述

获取具体的文档树节点
在这里插入图片描述
获取cookie
在这里插入图片描述

劫持cookie原理
在这里插入图片描述

服务器端可以设置cookie为httpOnly

history(不建议使用 )

history代表浏览器的历史记录

在这里插入图片描述

操作DOM对象(重点)

DOM:文档对象模型

核心

浏览器网页就是一个DOM树形结构!

  • 更新:更新DOM节点
  • 遍历DOM节点:得到DOM节点
  • 删除:删除一个DOM节点
  • 添加:添加一个新的节点

要操作一个DOM节点,就必须要先获得这个DOM节点

获得DOM节点
在这里插入图片描述

这是原生代码,之后我们尽量都使用jQuery()

更新节点

在这里插入图片描述

操作文本
在这里插入图片描述

操作css
在这里插入图片描述

删除节点

删除节点的步骤:先获取父节点,再通过父节点删除自己
在这里插入图片描述

注意:删除多个节点的时候,children是在时刻变化的,删除节点的时候一定要注意。

插入节点

我们获得了某个DOM节点,假设这个DOM节点是空的,我们通过innerHTML就可以增加一个元素了,但是这个DOM节点已经存在元素了,我们就不能这么干了!会产生覆盖

追加
在这里插入图片描述
在这里插入图片描述

创建一个新的标签

 <script>var js = document.getElementById('js');//已经存在的节点var list = document.getElementById('list');//通过JS创建一个新的节点var newP = document.creatElement('p');//创建一个p标签newP.id = 'newP';newP.innerText = 'Hello,Kuangshen';//创建一个标签节点var myScript = document.creatElement('script');myScript.setAttribute('type','text/javascript');//可以创建一个style标签var myStyle = document.creatElement('style');//创建了一个空style标签myStyle.setAttribute('type','text/css');myStyle.innerHTML = 'body{background-color:chartreuse;}';//设置标签内容document.getElementByTagName('head')[0].appendChild(myStyle);</script>

insertBefore

var ee = document.getElementById('ee');
var js = document.getElementById('js');
var list = document.getElementById('list');
//要包含的节点.insertBefore(newNode,targetNode)
list.insertBefore(js,ee);

操作表单form

表单是什么?form-----DOM树

  • 文本框----text
  • 下拉框----select
  • 单选框----radio
  • 多选框----checkbox
  • 隐藏域----hidden
  • 密码框----password

表单的目的:提交信息

获得要提交的信息

<body><form action = "#"><p><span>用户名:</span><input type="text" id = "username" /></p><!--多选框的值就是定义好的value--><p><span>性别:</span><input type = "radio" name = "sex" value = "man" id = "boy"/><input type = "radio" name = "sex" value = "woman" id = "girl"/></p></form><script>var input_text = document.getElementById("username");var boy_radio = document.getElementById("boy");var girl_radio = document.getElementById("girl");//得到输入框的值input_text.value //修改输入框的值input_text.value  = "value";//对于单选框,多选框等等固定的值,boy_radio.value只能取到当前的值boy_radio.checked;//查看返回的结果,是否为true,如果为true,则被选中。girl_radio.checked = true;//赋值</script>
</body>

提交表单。md5加密密码,表单优化

<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "UTF-8"><title>Title</title><!--MD5加密工具类--><script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>
</head>
<body>
<!--表达绑定提交事件οnsubmit= 绑定一个提交检测的函数,true,false将这个结果返回给表单,使用onsubmit接收
-->
<form action="https://www.baidu.com" method = "post" onsubmit = "return aaa()"><p><span>用户名:</span><input type="text" id = "username" name = "username"/></p><p><span>密码:</span><input type="password" id = "input-password" /></p><input type = "hidden" id = "md5-password" name = "password"><!--绑定事件 onclick 被点击--><button type = "submit">提交</button></form><script>function aaa(){alert(1);var username = document.getElementById("username");var pwd = document.getElementById("input-password");var md5pwd = document.getElementById("md5-password");//pwd.value = md5(pwd,value); //这行代码告诉了我们为什么有些网站一提交,密码就有一瞬间变长md5pwd.value = md5(pwd.value);//可以校验判断表单内容,true就是通过提交,false就是阻止提交return true;}
</script></body>
</html>

jQuery

jQuery库,里面存在大量的JavaScript函数
jQuery文档工具站:https://jquery.cuishifeng.cn/

公式:$(selector).action()

<!DOCTYPE html><html lang = "en"><head><meta charset = "UTF-8"><title>Title</title><script crossorigin="anonymous" integrity="sha512-n/4gHW3atM3QqRcbCn6ewmpxcLAHGaDjpEBu4xZd47N0W2oQ+6q7oc3PXstrJYXcbNU1OHdQ1T7pAP+gi5Yu8g=="src="https://lib.baomitu.com/jquery/3.6.0/jquery.js"></script></head><body><a href="" id = "test-jquery">点我</a><script>//选择器就是css选择器$('#test-jquery').click(function(){alert('hello,jQuery!');});</script></body></html>

选择器

//原生js,选择器少,麻烦不好记//标签document.getElementByTagName();//iddocument.getElementById();//classdocument.getElementByClassName();//jQuery css中的选择器它全部都能用!$('p').click();//标签选择器$('#id1').click();//id选择器$('.class1').click;//class选择器

事件
鼠标事件、键盘事件,其他事件

 mousedown()(jQuery)----按下mouseenter()(jQuery)mouseleave()(jQuery)mousemove()(jQuery)----移动mouseout()(jQuery)mouseover()(jQuery)mouseup()(jQuery)
 <!DOCTYPE html><html lang = "en"><head><meta charset = "UTF-8"><title>Title</title><script crossorigin="anonymous" integrity="sha512-n/4gHW3atM3QqRcbCn6ewmpxcLAHGaDjpEBu4xZd47N0W2oQ+6q7oc3PXstrJYXcbNU1OHdQ1T7pAP+gi5Yu8g=="src="https://lib.baomitu.com/jquery/3.6.0/jquery.js"></script><style>#divMove{width:500px;height:500px;border:1px solid red;}</style></head><body><!--要求:获取鼠标当前的一个坐标-->mouse:<span id = "mouseMove"></span><div id = "divMove">在这里移动鼠标试试</div><script>//当网页元素加载完毕之后,响应事件//$(document).ready(function(){})$(function(){$('#divMove').mousemove(function(e){$('#mouseMove').text('x:'+e.pageX+"y:"+e.pageY)})});</script></body></html>

操作DOM

节点文本操作

 $('#test-ul li[name=python]').text();//获得值$('#test-ul li[name=python]').text('设置值');//设置值$('#test-ul').html();//获得值$('#test-ul').html('<strong>123</strong>');//设置值

CSS的操作

$(’#test-ul li[name=python]’).css({“color”,“red”});

元素的显示和隐藏,:本质display:none

 $('#test-ul li[name=python]').show();$('#test-ul li[name=python]').hide();

娱乐测试

 $(window).width()$(window).height()$('#test-ul li[name=python]').toggle();

之后学的ajax();

 $('#form').ajax()​$.ajax({url:"test.html",context:document.body,success:function(){$(this).addClass("done");}})

如何巩固前端基础

1、如何巩固JS(看jQuery源码,看游戏源码!

2、巩固HTML、CSS(扒网站,全部down下来,然后对应修改看效果~)

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

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

相关文章

ltp makefile 解析

困惑于 /include/mk/automake.mk中出现了第一个目标 而makefile却任然将all当做最终目标 测试了一番后发觉&#xff1a; ifeq ($(MAKE_3_80_COMPAT),1)# Trick make 3.80 into thinking that the default goal is all..PHONY: defaultdefault: allelse #pick this.DEFAULT_GOA…

数字图像处理(拓展)

1&#xff0e;数字图像处理及特点 数字图像处理又称为计算机图像处理&#xff0c;它是指将图像信号转换成数字信号并利用计算机 对其进行处理的过程&#xff0c;以提高图像的实用性&#xff0c;从而达到人们所要求的预期结果。 数字图像处 理还有以下特点&#xff1a; ① 处理…

HDU-5532Almost Sorted Array LIS问题

题意 就是检查这个序列是否删除一个元素就能变成非严格的有序序列 表面上就是一个卡条件检查数组的问题 分析&#xff1a; 在向量中upperbound插入上界 这样能够使数组里的数列长度尽可能大 因为 我们是在不断用小数替换数列中的数 大的数直接拼接到最后 code #include…

文件和结构体

LITTLESUN本来是在学队列啊&#xff0c;在手动模拟队列的地方发现了结构体这个小怪&#xff0c;为了能赶紧打队列大BOSS就赶紧跑过来填下文件和结构体的坑鸭&#xff01; 转载于:https://www.cnblogs.com/LITTLESUNwl/p/10435877.html

电磁波谱与可见光谱

电磁波谱与可见光谱 电磁辐射波 在实际的图像处理应用中&#xff0c;最主要的图像来源于电磁 辐射成像。 电磁辐射波包括无线电波、微波、红外线、可见光、 紫外线、X射线、γ射线。 电磁辐射波的波谱范围很广&#xff0c;波长最长的是无线电波 为3102m&#xff0c;其波长是…

[Leedcode][JAVA][第9题][回文数][数学法]

【问题描述】[简单] 判断一个整数是否是回文数。回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。示例 1:输入: 121 输出: true 示例 2:输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。…

Weak Pair HDU - 5877 树状数组+离散化+DFS遍历

题意 给我们一颗有根有向树 以及每个点得权值a[1]~a[n] 需要我们求出在这颗树种有多少对满足以下两个条件的pair &#xff08;1&#xff09;u是v的祖先节点 &#xff08;2&#xff09;a[u]*a[v]< k N<1e5 a[i]<1e9 k<1e18 分析 由于需要在树中找符合要求的对…

【模板】最新空web.xml模板

<?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://xmlns.jcp.org/xml/ns/javaeehttp://x…

人眼的视觉特性

人眼的视觉特性 视觉系统基本构造 视觉过程 包括&#xff1a;光学过程&#xff1b;化学过程&#xff1b;神经处理过程 光学过程 物体在视网膜上成像 整体视觉过程 亮度适应能力 亮度适应能力 明亮较暗现象&#xff1f; 逐渐能够看清物体暗光适应(20~30s) 较暗明亮现象…

微信小程序测试的策略和注意事项

一、测试前准备&#xff08;环境搭建&#xff09; 1.前端页面 微信Web开发者工具安装、授权测试用的微信号可预览和调试小程序...可参考此文&#xff1a; 微信Web开发者工具-下载、安装和使用图解 2.管理后台 配置内网测试服务器环境&#xff0c;通过PC端Web站点管理小程序前端…

【解决问题】idea启动本地tomcat访问localhost:8080报404错误

把tomcat安装目录下webapp下的的ROOT文件夹配置到idea中 并且将/ROOT修改application context为 /

[Leedcode][第十题][剑指offer]面试题第[19]题[正则表达式][动态规划][递归][JAVA]

【问题描述】[困难] 请实现一个函数用来匹配包含. 和*的正则表达式。模式中的字符.表示任意一个字符&#xff0c;而*表示它前面的字符可以出现任意次&#xff08;含0次&#xff09;。在本题中&#xff0c;匹配是指字符串的所有字符匹配整个模式。例如&#xff0c;字符串"…

图像的采样和量化

图像的采样和量化 图像成像模型 图像的采样和量化 图像数字化 •将代表图像的连续(模拟)信号转换为离散(数字) 信号的过程称为图像数字化 •步骤&#xff1a;采样和量化 •主要技术 成像&#xff1a;光信息&#xff0d;>电信号 模数转换&#xff08;A/DConverter&…

Elegant Construction HDU-5813 构造

- 题意 给出我们从1-n城市的点能直接&#xff08;或间接&#xff09;到达的城市的数量作为这个点的权值 让我们判断并构造一个单向图 使得这个图完全契合给出的数据 special judge 任意一组结果就可以题目中给出 图中无环无回路- 分析 刚看到根据联通数目构造图 哇 这怎么做 好…

【解决问题】IDEA配置Tomcat添加Deployment时没有Artifact

下面这里别忘了把整个项目也拉到左边的output-root&#xff08;拉完之后会有个WEB-INF&#xff09;

java将数据生成csv文件

1&#xff0c;httpRequest接口触发进程[或者可以换成其他方式触发] /** * 出入库生成CSV文件 * param req * param params * return */RequestMapping(value "explanCsvFileToOrder")ResponseMessage explanCsvFileToOrder(HttpServletRequest req, RequestParam Ma…

像素间的关系

像素间的关系 像素空间的关系 图像由像素组成&#xff0c;像素在图像空间上按规 律排列&#xff0c;相互之间有一定的联系。 像素间联系 像素的邻域&#xff0d;邻接关系 •4邻域—— N 4( p )&#xff1a; p ( x , y ): ( x 1, y ); ( x -1, y) ( x , y 1); ( x , y -1) •…

Spring Cloud面试题

为什么需要学习Spring Cloud 什么是Spring Cloud 设计目标与优缺点 设计目标 优缺点 Spring Cloud发展前景 整体架构 主要项目 Spring Cloud Config Spring Cloud Netflix Spring Cloud Bus Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth Spring Cloud Stre…

HDU 5787 wolf Number 数位dp

题意 题目就是说让我们在l到r的数字中求得有多少个连续k为不相同的数 1≤L≤R≤1e18 2≤K≤5 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)分析 直接枚举必然超时 考虑数位dp 由于k最大到5 所以我们可以记录前四位的大小 通过一个c…

【发现问题】IDEA设置全局新创建文件默认换行符

今晚读《阿里Java开发手册》的代码格式部分中&#xff0c;第十条强制规约引起了我的注意。说的是&#xff0c; IDE中文件的换行符使用UNIX格式&#xff0c;不要使用Windows格式。 于是上网搜索为何如此&#xff0c;得到以下答案&#xff1a; 在开发中&#xff0c;有可能会遇到某…