regexp对象、math对象、dom、bom、事件
JS定义正则的两种方式
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}"); 第一种定义方式
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,11}/ 第二种定义方式
正则数据校验
.test(‘数据’):匹配数据是否正确,匹配的位数超过正则的位数或者等于正则位数为ture,没有到达正则匹配的位数则是flase
案列
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,11}/ var res = reg2.test('js88888888888888') console.log(res);
全局匹配
.match(正则表达式)只配一个 ,以数组形式返回
.match(/正则表达式/gi)g:global全局搜索,i:ignore忽略大小写,全部匹配以数组形式返回
案列
var res='hahahhAhah' var reg=res.match(/a/)[0] var reg1=res.match(/a/gi) console.log(reg1)
math对象
abs(x) 返回数的绝对值。 exp(x) 返回 e 的指数。 floor(x) 对数进行下舍入。 log(x) 返回数的自然对数(底为e)。 max(x,y) 返回 x 和 y 中的最高值。 min(x,y) 返回 x 和 y 中的最低值。 pow(x,y) 返回 x 的 y 次幂。 random() 返回 0 ~ 1 之间的随机数。 round(x) 把数四舍五入为最接近的整数。 sin(x) 返回数的正弦。 sqrt(x) 返回数的平方根。 tan(x) 返回角的正切。
案例
var m='-18' console.log(Math.abs(m)) console.log(Math.exp(3)) console.log(Math.floor(4.9)) console.log(Math.pow(4,9))
前端基础DOM和BOM
js的三部分组成:
ECMAScript、BOM(浏览器对象模型,就是js操作浏览器)、DOM(文档对象模型,js操作html文档、css样式等)
BOM:大部分内容作为了解
DOM:需要熟练掌握
window对象常用方法:
window.innerHeight - 浏览器窗口的内部高度
window.innerWidth - 浏览器窗口的内部宽度
window.open() - 打开新窗口
window.close() - 关闭当前窗口
案列
var res=window.innerHeight console.log(res) var res1=window.innerWidth console.log(res1) window.open('http://www.baidu.com') window.close()
navigator对象(了解即可)
navigator.appName // Web浏览器全称
navigator.appVersion // Web浏览器厂商和版本的详细字符串
navigator.userAgent // 客户端绝大部分信息
navigator.platform // 浏览器运行所在的操作系统
案例
<script>
console.log(navigator.appName)
console.log(navigator.appVersion)
console.log(navigator.userAgent)
console.log(navigator.platform)
</script>
history对象(了解即可)
history.forward() // 前进一页
history.back() // 后退一页
location对象------------------->掌握重要
location.href: 获取URL
location.href="地址" // 跳转到指定页面
location.reload() 重新加载页面
弹出框
alert("你看到了吗?");
confirm("你确定吗?")
prompt("请在下方输入","你的答案")
计时相关(定时器)
var t=setTimeout(JS代码, 毫秒)
var t=setInterval(JS代码, 毫秒)
function f1(){ console.log('123') } var t1 = setTimeout(f1, 3000); // 单位是毫秒,意思是3秒之后开始执行任务, 只执行一次
var t=setInterval(f1, 3000);// 单位是毫秒,意思是3秒之后开始执行任务, 每隔三秒执行一次
clearTimeout(t1)//清除定时器
案例
<script> function f(){ alert('123') } function f2(){ var t=setInterval(f,3000)//制作定时器 function innr(){ clearInterval(t)//清除定时器 } setTimeout(innr,9000) //9秒后执行清除定时器 } f2() </script>
DOM(重点)
DOM标准规定HTML文档中的每个成分都是一个节点(node):
文档节点(document对象):代表整个文档
元素节点(element 对象):代表一个元素(标签)
文本节点(text对象):代表元素(标签)中的文本
属性节点(attribute对象):代表一个属性,元素(标签)才有属性
注释是注释节点(comment对象)
JavaScript 可以通过DOM创建动态的 HTML:
JavaScript 能够改变页面中的所有 HTML 元素
JavaScript 能够改变页面中的所有 HTML 属性
JavaScript 能够改变页面中的所有 CSS 样式
JavaScript 能够对页面中的所有事件做出反应
js如何学习
1. 先学习如何查找标签
2. 找到标签之后再对其做一些操作
先学习如何查找标签
直接查找
id、class、标签
js如何查找标签、
<script>
var d=document.getElementById('d1')//通过id属性查找
console.log(d)
var d1=document.getElementsByClassName('c1')//通过class属性查找
console.log(d1[1])
console.log(d1[0])
console.log(d1[2])
var d2=document.getElementsByTagName('div') //通过标签来查找
console.log(d2[0])
var div3 = document.getElementsByName('username');//通过name属性查找 例如input标签
</script>
间接查找
parentElement 父节点标签元素
children 所有子标签
firstElementChild 第一个子标签元素
lastElementChild 最后一个子标签元素
nextElementSibling 下一个兄弟标签元素
previousElementSibling 上一个兄弟标签元素
案例
<div id="d1"> <span id="s1">1</span> <span id="s2">2</span> <span id="s3">3</span> <span id="s4">4</span> </div> <script> var d=document.getElementById('d1') var p=d.children console.log(p[1]) console.log(d.firstElementChild) </script>
节点操作
问题1:动态创建一个img标签出来
步骤:
1 先创建出来一个img空元素: <img>
2 设置img标签的src属性
3 把创建出来的img标签显示在网页上
<div id="d1"> </div> <!-- 1 先创建出来一个img空元素: <img>--> <!-- 2 设置img标签的src属性--> <!-- 3 把创建出来的img标签显示在网页上--> <script> var img = document.createElement('img'); var div=document.getElementById('d1') img.src = 'img.png'; img.alt = 'sb'; img.setAttribute('username','k1');//设置自定义属性 img.removeAttribute('username')//删除属性 console.log(img); div.appendChild(img); </script>
问题2:动态创建一个a标签出来
步骤:
1. 先创建一个空元素a
2. 设置a标签的属性:href、target、title
3. 给a标签添加文本内容
4. 把a标签显示在网页上
案例
<div id="d1"> </div> <script> // 1. 先创建一个空元素a // 2. 设置a标签的属性:href、target、title // 3. 给a标签添加文本内容 // 4. 把a标签显示在网页上 var a = document.createElement('a'); a.href='http://www.baidu.com'; a.target=''; a.title='双击'; a.innerText='点击看美女'; console.log(a); var div=document.getElementById('d1'); div.appendChild(a); </script>
获取值操作
语法:
elementNode.value
适用于以下标签:
●.input
●.select
●.textarea
●value不能获取文件数据,获取文件数据要用files
<body>
<!--data设置日期、text设置文本框-->
<input type="text" id="i1" value="老板走去消费">
<!--设置单选框-->
<select name="" id="s1">
<option value="shanghai" selected>shanghai</option>
<option value="beijing" >beijing</option>
</select>
<textarea name="" id="t1" cols="30" rows="10">dasdasd</textarea>
<script>
var iEle = document.getElementById("i1");
console.log(iEle.value);
var sEle = document.getElementById("s1");
console.log(sEle.value);
var tEle = document.getElementById("t1");
console.log(tEle.value);
</script>
</body>
class操作
className 获取所有样式类名(字符串)
classList.remove(cls) 删除指定类
classList.add(cls) 添加类
classList.contains(cls) 存在返回true,否则返回false
classList.toggle(cls) 存在就删除,否则添加
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 分享4款.NET开源、免费、实用的商城系统