| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> JavaScript知识库 -> js阶段总结 -> 正文阅读 |
|
|
[JavaScript知识库]js阶段总结 |
什么是jsJavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码,是一种弱类型语言。 js组成部分: (1)核心:这一部分主要是js的基本语法。 (2)BOM:(浏览器对象模型),主要是获取浏览器信息或操作浏览器的,例如:浏览器的前进与后退、浏览器弹出提示框、浏览器地址栏输入网址跳转等操作等。 (3)DOM:(文档对象模型),此处的文档暂且理解为html,html加载到浏览器的内存中,可以使用js的DOM技术对内存中的html节点进行修改,用户从浏览器看到的是js动态修改后的页面。(增删改查) 一 同步和异步同步:按照顺序执行,会阻塞 异步:不一定按照顺序,不会阻塞 注意:同步和异步同时出现,先执行同步 ?
? ? ? ?//异步
? ? ? ?// setTimeout(function () {
? ? ? ?// ? ? console.log(1);
? ? ? ?// }, 100)
?
? ? ? ?// setTimeout(function () {
? ? ? ?// ? ? console.log(2);
? ? ? ?// }, 50)
?
?
? ? ? ?// setTimeout(function () {
? ? ? ?// ? ? console.log(1);
? ? ? ?// }, 0)
?
? ? ? ?// console.log('2');
?
?
? ? ? ?function getData(fn) {
? ? ? ? ? ?let a;
? ? ? ? ? ?setTimeout(function () {
? ? ? ? ? ? ? ?a = 10 ? ? ?//服务器给的一份数据 10
? ? ? ? ? ? ? ?fn(a)
? ? ? ? ? },1000)
? ? ? ? ? ?// return a;
? ? ? }
?
? ? ? ?// var num = getData()
? ? ? ?// console.log(num);//?? undefined
? ? ? ?//10???
?
? ? ? ?getData(function(num){ ? ? ?//回调函数
? ? ? ? ? ?console.log(num);
? ? ? })
?
? ? ? ?//解决异步传参问题 :回调函数
?二 数组方法1.concat 合并数组 2.push 数组末尾添加元素 3.splice 删除、添加、替换 4.slice 截取数组 5.pop 删除数组末尾元素 6.shift 删除数组头部元素 7.unshift 头部添加元素 8.indexOf 获取元素在数组中的索引 10.sort 排序 三 数组的迭代方法some????????若数组中的有一个元素满足条件,则返回true,若都不满足,则返回false ?var datas = [ ? ? ? ? var ps=datas.filter(function (item) {
四 正则表达式表单校验和字符串处理 定义正则: new RegExp() /规则/修饰符 修饰符: g、i、m i 忽略大小写 g 全局匹配 | 或 元字符
[] ? ? 任意一个 ? ? 范围: [0-9] [a-z] [A-Z] [0-9a-zA-Z]
^ ?
[^] ? 取反
^ ? ? 开头
$ ? 结尾
\ ? 转义字符
?
?
\d ? ? ? 数字 ? ? [0-9]
\w ? ? ? 单词 ? ? [0-9a-zA-Z_]
\s ? ? ? 空格、换行、制表符
\D ? ? ? 非数字
\W
\S
?量词? ? ? ? ? ? ? ? 零或一个{0,1}
+ 至少一个 {1,}
* ? ? ? ? ? ? ? 零或多个 {0,}
{m} ? ? ? ? ? ? 出现m次
{m,n} ? ? ? ? ? 大于等于m,小于等于n
{m,} ? ? ? ? ? 大于等于m
?正则对象的方法
事件委托 :又可以称为事件代理
? ? ? ?box.οnclick=function(e){
? ? ? ? ? ?// console.log(e.target.nodeName);
? ? ? ? ? ?if(e.target.nodeName=='BUTTON'){// 判断点击的是什么 ? ? ? e.target //返回目标节点元素节点
? ? ? ? ? ? ? ?alert("哈哈哈哈,终于知道")
? ? ? ? ? }
? ? ? ? ? ?// alert("我是一个按钮")
? ? ? }
?
? ? ? ?document.querySelector('button').onclick = function () {
? ? ? ? ? ?// box.innerHTML =box.innerHTML+ "<button>按钮</button>";
? ? ? ? ? ?var btn = document.createElement('button')
? ? ? ? ? ?btn.innerHTML = '按钮'
? ? ? ?box.appendChild(btn)
? ? }
?拖拽效果 ?var o = document.querySelector('div');
?
? ? ? ?//鼠标按下
? ? ? ?o.onmousedown = function (e) {
? ? ? ? ? ?if (o.setCapture) { ? //IE低版本
? ? ? ? ? ? ? ?o.setCapture()
? ? ? ? ? }
? ? ? ? ? ?e = e || window.event
? ? ? ? ? ?//鼠标相对于盒子的位置
? ? ? ? ? ?var offsetX = e.clientX - o.offsetLeft;
? ? ? ? ? ?var offsetY = e.clientY - o.offsetTop;
? ? ? ? ? ?//鼠标移动
? ? ? ? ? ?document.onmousemove = function (e) {
? ? ? ? ? ? ? ?e = e || window.event
? ? ? ? ? ? ? ?o.style.left = e.clientX - offsetX + "px";
? ? ? ? ? ? ? ?o.style.top = e.clientY - offsetY + "px";
? ? ? ? ? }
? ? ? ? ? ?//鼠标抬起
? ? ? ? ? ?document.onmouseup = function () {
? ? ? ? ? ? ? ?document.onmousemove = null;
? ? ? ? ? ? ? ?document.onmouseup = null;
? ? ? ? ? ? ? ?if (o.releaseCapture) {
? ? ? ? ? ? ? ? ? ?o.releaseCapture();//释放全局捕获 ?
? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ? ?return false;//标准浏览器的默认行为
? ? ? }
闭包闭包:有权在一个函数内访问另一个函数作用域中的变量(返回该函数) 闭包是连通函数内外的一个桥梁,可以实现局部变量常驻内存。 闭包常见面试题: ? ? ? ?var arr = [];
?
? ? ? ?for (var i = 0; i < 3; i++) {
? ? ? ? ? (function (i) {
? ? ? ? ? ? ? ?arr.push(function () {
? ? ? ? ? ? ? ? ? ?console.log(i);
? ? ? ? ? ? ? })
? ? ? ? ? })(i)
? ? ? }
?
? ? ? ?// console.log(arr);
? ? ? ?arr[0]()
? ? ? ?arr[1]()
? ? ? ?arr[2]() var lis = document.querySelectorAll("ul li")
? ? ?
?
? ? ? ?for (var i = 0; i < lis.length; i++) {
? ? ? ? ? (function (a) {
? ? ? ? ? ? ? ?lis[a].onclick = function () {
? ? ? ? ? ? ? ? ? ?console.log(a);
? ? ? ? ? ? ? }
? ? ? ? ? })(i);
? ? ? ? ?
? |
|
|
| JavaScript知识库 最新文章 |
| ES6的相关知识点 |
| react 函数式组件 & react其他一些总结 |
| Vue基础超详细 |
| 前端JS也可以连点成线(Vue中运用 AntVG6) |
| Vue事件处理的基本使用 |
| Vue后台项目的记录 (一) |
| 前后端分离vue跨域,devServer配置proxy代理 |
| TypeScript |
| 初识vuex |
| vue项目安装包指令收集 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/4 5:13:54- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |