摘要:做一个在设定的时间间隔之后来执行代码,称为计时事件 两个关键字: setInterval()-间隔指定的毫秒数不停地执行指定的代码 setTimeout() - 在指定的毫秒数后执行指定代码。 注意: setInterval() 和 setTimeout() 是 HTML DOM Window对象的
阅读全文
摘要:JavaScript中有三种消息框:警告框、确认框、提示框 警告框: 用于确保用户可以得到某些信息 语法: window.alert("****"); 确认框: 用于验证是否接受用户操作 语法: window.confirm("sometext"); 提示框: 用于提示用户在进入页面前输入某个值 语
阅读全文
摘要:window.navigator对象包含有关访问者浏览器的信息 Window.Navigator 次对象也可不写前缀 navigator不应该用来检测浏览器的版本: navigator数据可被浏览器使用者更改 一些浏览器对测试站点会识别错误 浏览器无法报告晚于浏览器发布的新操作系统
阅读全文
摘要:window.history对象包含浏览器的历史 Window History 该对象在编写时可以不写window前缀 访问对象的方法做出了限制: history.back()——与浏览器点击后退按钮相同 history.forward()——与在浏览器中点击向前按钮相同 除此之外可以用 histo
阅读全文
摘要:用于获取当前页面的地址(URL),并把浏览器重定向到新的页面 Window Location 此对象在编写时不写window前缀 如: location.hostname返回web主机的域名 location.pathname返回当前页面的路径和文件名 location.port返回web主机的端口
阅读全文
摘要:window.screen 对象包含有关用户屏幕的信息。 Window Screen 可用宽度: screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。 Window Screen 可用高度 screen.availHeight 属性返回访问者屏幕的高
阅读全文
摘要:浏览器对象模型 (BOM): 现代浏览器已经实现了JavaScript交互性的相同方法和属性,所以常被认为是BOM的方法和属性 Window 对象: 所有浏览器都支持window对象,表示浏览器的窗口 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。 全局变量
阅读全文
摘要:Boolean 对象: 用于转换一个不是 Boolean 类型的值转换为 Boolean 类型值 (true 或者false). Boolean对象属性: constructor:返回对创建此对象的Boolean函数的引用 prototype:向对象添加属性和方法 Boolean 对象方法: toS
阅读全文
摘要:数组: 数组对象是使用单独的变量名来存储一系列的值 数组可以用一个变量名存储所有的值,并可以用变量名访问任何一个值 数组中每一个元素都有自己的id,方便访问 创建数组: 三种方法: 一个数组中可以有不同的对象: 数组中可以包含对象元素、函数、数组
阅读全文
摘要:字符串可以使用单引号或者双引号 使用位置索引可以访问字符串中的任何字符,字符第一个字符为【0】,依次等 可在字符串中使用引号 var answer="He is called 'Johnny'"; 也可以使用转义字符(\)使用引号: var answer="He is called \"Johnny
阅读全文
摘要:JavaScript 数字: 可以使用也可以不使用小数点来书写 极大或极小的数字可通过科学(指数)计数法来写 JavaScript 数字均为 64 位: 所有的数字都是由 浮点型类型 精度: 整数(不使用小数点或指数计数法)最多为 15 位 小数的最大位数是 17,但是浮点运算并不总是 100% 准
阅读全文
摘要:对象都会从一个 prototype(原型对象)中继承属性和方法。 添加属性和方法: 想要在对象的构造函数中添加属性或方法 使用 prototype 属性就可以给对象的构造函数添加新的属性
阅读全文
摘要:所有事物都是对象: 布尔型可以是一个对象。 数字型可以是一个对象。 字符串也可以是一个对象 日期是一个对象 数学和正则表达式也是对象 数组是一个对象 甚至函数也可以是对象 JavaScript 对象: 对象只是一种特殊的数据。对象拥有属性和方法。 访问对象的属性: objectName.proper
阅读全文
摘要:NodeList 对象是一个从文档中获取的节点列表 (集合) 。 所有浏览器的 childNodes 属性返回的是 NodeList 对象。 大部分浏览器的 querySelectorAll() 返回 NodeList 对象。 HTMLCollection 与 NodeList 的区别: HTMLC
阅读全文
摘要:Collection 对象: getElementsByTagName() 方法返回 htmlCollection对象。 此对象包含html元素的一个数组 length属性:元素的数量。 此属性常用于遍历集合中的元素使用 item():返回 HTMLCollection 中指定索引的元素。 name
阅读全文
摘要:创建新的元素节点-appendChild(): appendChild()方法:将元素添加到尾部 创建新的元素节点-insertBefore(): insertBefore()方法,将元素添加到开始位置 移除已存在的元素: 需要知道该元素的父元素: 替换HTML元素-replaceChild():
阅读全文
摘要:可向指定元素添加事件句柄 添加的句柄不会覆盖已存在的事件句柄 可向一个元素添加多个事件句柄 可向同个元素添加多个同类型的事件句柄,如两个“click”事件 向DOM对象添加监听 此方法可以更简单的控制事件(冒泡与捕获) removeEventListener()方法可以移除事件的监听 语法: ele
阅读全文
摘要:对事件做出反应: 当用户点击鼠标时 当网页已加载时 当图像已加载时 当鼠标移动到元素上时 当输入字段被改变时 当提交 HTML 表单时 当用户触发按键时 用户点击改变内容: 事件处理器调用一个函数: HTML事件属性: 如果需要向HTML元素分配事件,可以使用事件属性: <button onclic
阅读全文
摘要:改变HTML样式: 语法: document.getElementById(id).style.property=新样式 使用事件: HTMLDOM允许通过触发事件来执行代码: 比如: 元素被点击。 页面加载完成。 输入框被修改。。。。
阅读全文
摘要:js可以创建动态的html内容: document.write()可以直接向html输出流写内容 改变HTML内容: innerHTML属性:修改内容 语法: document.getElementById(id).innerHTML=新的 HTML 改变HTML属性: 语法:document.ge
阅读全文
摘要:DOM(文档对象模型) 文档 -文档表示的就是整个的html网页文档 对象 -对象表示将网页中的每一个部分都转换为一个对象 模型 -使用模型来表示对象之间的关系,这样方便我们获取对象 查找 HTML 元素: 通过 id 找到 HTML 元素 通过标签名找到 HTML 元素 通过类名找到 HTML 元
阅读全文
摘要:静态方法:static关键字(类方法),可在实例化对象之前通过类名.方法名调用静态方法 静态方法不能在对象上调用,只能在类中调用 如果想在noob中使用静态方法,可以作为一个参数传递给它 document.getElementById("demo").innerHTML = Runoob.hello
阅读全文
摘要:使用 extends 关键字。 super() 方法用于调用父类的构造函数。 已有的类称为基类(父类),新建的类称为派生类(子类)。 通过在构造方法中调用 super() 方法,我们调用了父类的构造方法,这样就可以访问父类的属性和方法。 getter 和 setter: getter 是一种获得属性
阅读全文
摘要:使用class关键字关键一个类, 每个类中包含了一个特殊的方法 constructor(),它是类的构造函数 创建类 class ClassName{constructor(name,url) { this.name=name; this,url=url; } } 以上ClassName为类,类中初
阅读全文
摘要:私有变量可以用到闭包。 闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。 直观的说就是形成一个不销毁的栈环境 闭包就是一个函数引用另一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量。这是优点也是缺点,不必要的闭包只会增加内存消耗
阅读全文
摘要:JavaScript 函数有 4 种调用方式。 每种方式的不同在于 this 的初始化。 this关键字: this指向函数执行时的当前对象 全局对象: 当函数没有被自身的对象调用时this的值就会变成全局对象 在web浏览器中全局对象是浏览器窗口(window对象) 函数作为全局对象调用,会使 t
阅读全文
摘要:函数显式参数(Parameters)与隐式参数(Arguments) 显式参数: functionName(parameter1, parameter2, parameter3) { // 要执行的代码…… } 函数显式参数在函数定义时列出。 显式参数时没有指定数据类型。 隐示参数: 函数调用时传递
阅读全文
摘要:JavaScript 使用关键字 function 定义函数。 函数可以通过声明定义,也可以是一个表达式。 函数声明: 函数声明后不会立即执行,会在我们需要的时候调用到。 function myFunction(a, b) { return a * b;} 函数表达式: JavaScript 函数可
阅读全文
摘要:Promise 只不过是一种更良好的编程风格。 当需要多次顺序执行异步操作的时候,例如,如果想通过异步方法先后检测用户名和密码,需要先异步检测用户名,然后再异步检测密码的情况下就很适合 Promise: 构造 Promise: Promise 构造函数只有一个参数,是一个函数,这个函数在构造之后会直
阅读全文
摘要:异步是与同步相对的概念。 同步按你的代码顺序执行,异步不按照代码顺序执行,异步的执行效率更高。 因为子线程独立于主线程,所以即使出现阻塞也不会影响主线程的运行。但是子线程有一个局限:一旦发射了以后就会与主线程失去同步,我们无法确定它的结束,如果结束之后需要处理一些事情,比如处理来自服务器的信息,我们
阅读全文
摘要:void 关键字: 该操作符指定要计算一个表达式但是不返回值。 href="#"与href="javascript:void(0)"的区别 # 包含了一个位置信息,默认的锚是#top 也就是网页的上端。 而javascript:void(0), 仅仅表示一个死链接。 在页面很长的时候会使用 # 来定
阅读全文
摘要:JSON 是用于存储和传输数据的格式。 JSON 通常用于服务端向网页传递数据 。 JSON 是一种轻量级的数据交换格式。 JSON 语法规则 数据为 键/值 对。 数据由逗号分隔。 大括号保存对象 方括号保存数组 {"name":"Runoob", "url":"www.runoob.com"}
阅读全文
摘要:面向对象语言中 this 表示当前对象的一个引用。 但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。 在方法中,this 表示该方法所属的对象。 如果单独使用,this 表示全局对象。 在函数中,this 表示全局对象。 在函数中,在严格模式下,this 是未
阅读全文
摘要:函数及变量的声明都将被提升到函数的最顶部。 变量可以在使用后声明,也就是变量可以先使用再声明。 声明提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。 JavaScript 只有声明的变量会提升,初始化的不会。
阅读全文
摘要:try 语句测试代码块的错误。 catch 语句处理错误。 throw 语句创建自定义错误。 finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。 语法 try { ... //异常的抛出 } catch(e) { ... //异常的捕获与处理 } fina
阅读全文
摘要:正则表达式: -admin@atguigu.com -正则表达式用于定义一些字符串的规则, 计算机可以根据正则表达式,来检查一个字符串是否符合规则 获取字符串中符合规则的内容提取出来 语法: var 变量=new ReExp("正则表达式","匹配模式”); 使用typeof检查正则对象,会返回ob
阅读全文
摘要:强制类型转换 -指将一个数据类型强制转换为其他的数据类型 -类型转换主要指,将其他的数据类型,转换为 string number Boolean 将其他的数据类型转换成string 方式一: -调用被转换数据类型的tostring()方法 -该方法不会影响到原变量,它会将转换的结果返回 -但是要注意
阅读全文
摘要:typeof 操作符 可以使用 typeof 操作符来检测变量的数据类型。 在JavaScript中,数组是一种特殊的对象类型。 因此 typeof [1,2,3,4] 返回 object。 null 在 JavaScript 中 null 表示 "什么都没有"。 null是一个只有一个值的特殊类型
阅读全文
摘要:break 语句用于跳出循环。 continue 用于跳过循环中的一个迭代。 break 语句 break 语句可用于跳出循环。 break 语句跳出循环后,会继续执行该循环之后的代码 continue 语句 continue 语句中断当前的循环中的迭代,然后继续循环下一个迭代 continue 语
阅读全文
摘要:只要指定条件为 true,循环就可以一直执行代码块。 while 循环 while 循环会在指定条件为真时循环执行代码块。 while (条件){ 需要执行的代码} do/while 循环 do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为
阅读全文
摘要:循环可以将代码块执行指定的次数。 for循环:如果向多次运行相同代码,且每次的值都是不同,那就使用循环 不同类型的循环 JavaScript 支持不同类型的循环: for - 循环代码块一定的次数 for/in - 循环遍历对象的属性 while - 当指定的条件为 true 时循环指定的代码块 d
阅读全文
摘要:语法 switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: 与 case 1 和 case 2 不同时执行的代码 } n通常为变量,随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关
阅读全文
摘要:if语句 语法二: if(条件表达式){ 语句…… }else{ 语句…… } if……else……语句 当该语句执行,会先对if后的条件表达式进行求值判断, 如果该值为true,则执行if后的语句 如果该值为false,则执行else后的语句 语法三: if(条件表达式){ 语句…… }else
阅读全文
摘要:比较运算符 相等运算符用来比较两个值是否相等 如果相等会返回true,否则返回false == 做相等运算 - 但使用==比较两个值时,如果值的类型不同, 则会自动进行转换,将其转换为相同的类型 然后再比较 不相等 不相等用来判断哪两个值是否不相等,如果不相等返回true,否则返回false - 使
阅读全文
摘要:运算符也叫操作符 通过运算符可以对一个或多个值进行运算 比如:typeof就是运算符,可以来获得一个值得类型 它会将该值得类型以字符串的形式返回 number string Boolean undefined object 算数运算符 当对非number类型的值进行运算时,会将这些值转换为numbe
阅读全文
摘要:JavaScript 作用域 在 JavaScript 中, 对象和函数同样也是变量。 在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。 JavaScript 函数作用域: 作用域在函数内修改。 -作用域指一个变量的作用的范围 -在JS中一共分为两种作用域: 1.全局作用域 -
阅读全文
摘要:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. 函数function -函数也是一个对象 -函数中可以封装一些功能(代码),在需要时可以执行这些功能代码) -函数中可以保存一些代码在需要的时候调用 -使用typeof检查一个函数对象时,会返回function 封装到函数中的代码不会立即
阅读全文
摘要:JavaScript 对象 JavaScript 对象是拥有属性和方法的数据。 在 JavaScript中,几乎所有的事物都是对象。 对象也是一个变量,但对象可以包含多个值(多个变量),每个值以 name:value 对呈现 对象属性 可以说 "JavaScript 对象是变量的容器"。 但是,我们
阅读全文
摘要:JavaScript数据类型 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。 引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则
阅读全文
摘要:JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14。 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。 字符串(String)字面量 可以使用单引号或双引号: 表达式字面量 用于计算: 数组(Array)字面量 定义一个数组: 对象(Object)
阅读全文
摘要:JavaScript语法: JavaScript 是一个程序语言。语法规则定义了语言结构。 JavaScript 是一个脚本语言。 它是一个轻量级,但功能强大的编程语言。 JavaScript 可以通过不同的方式来输出数据: 使用 window.alert() 弹出警告框。 使用 document.
阅读全文
摘要:模块化是指将一个大的程序文件,拆分成许多小的文件,然后将小文件组合起来。 1. 模块化的好处 模块化的优势有以下几点: 1) 防止命名冲突 2) 代码复用 3) 高维护性 2.模块功能主要由两个命令构成:export 和 import。 export 命令用于规定模块的对外接口 import 命令用
阅读全文
摘要:1.Array.prototype.includes Includes 方法用来检测数组中是否包含某个元素,返回布尔类型值 2.指数操作符 在 ES7 中引入指数运算符「**」,用来实现幂运算,功能与 Math.pow 结果相同
阅读全文
摘要:一.String.prototype.matchAll 二.类的私有属性 三.Promise.allSettled 四.可选链操作符 五.动态 import 导入 六.BigInt 最大数值max+2这种就加不上去了,这时就需要使用BigInt
阅读全文
摘要:一.Object.fromEntries:可将二维数组转换为对象 代码演示: Object.entries:将对象转换为二维数组 ES8中的特性 二.trimStart 和 trimEnd:去除前后空格 三.Array.prototype.flat 与 flatMap 四.Symbol.protot
阅读全文
摘要:一.rest与spread Rest参数与spread扩展运算符在ES6中已经引入,不过ES6中只针对数组, 在ES9中对对象提供了像数组一样的rest参数和扩展运算符 二.正则表达式--命名捕获分组 ES9 允许命名捕获组使用符号『?<name>』,这样获取捕获结果可读性更强 首先演示没有命名的正
阅读全文
摘要:一.async 和 await async 和 await 两种语法结合可以让异步代码像同步代码一样 1.1.async函数 1.async 函数的返回值为 promise 对象 2. promise 对象的结果由 async 函数执行的返回值决定 1.2.await 表达式 1. await 必须
阅读全文
摘要:使用var关键字声明的全局作用域变量属于window对象。 使用let关键字声明的全局作用域变量不属于window对象。 使用var关键字声明的变量在任何地方都可以修改。 在相同的作用域或块级作用域中,不能使用let关键字来重置var关键字声明的变量。 在相同的作用域或块级作用域中,不能使用let关
阅读全文
摘要:一.Fragment 在Vue2中: 组件必须有一个根标签 在Vue3中: 组件可以没有根标签, 内部会将多个标签包含在一个Fragment虚拟元素中 好处: 减少标签层级, 减小内存占用 二.Teleport 什么是Teleport?—— Teleport 是一种能够将我们的组件html结构移动到
阅读全文
摘要:isRef: 检查一个值是否为一个 ref 对象 isReactive: 检查一个对象是否是由 reactive 创建的响应式代理 isReadonly: 检查一个对象是否是由 readonly 创建的只读代理 isProxy: 检查一个对象是否是由 reactive 或者 readonly 方法创
阅读全文
摘要:作用:实现祖与后代组件间通信 套路:父组件有一个 provide 选项来提供数据,后代组件有一个 inject 选项来开始使用这些数据,两个函数联合起来能实现祖孙组件间通信 具体写法 组组件 后代组件
阅读全文
摘要:作用:创建一个自定义的 ref,并对其依赖项跟踪和更新触发进行显式控制 代码演示: 1.自定义一个ref名为:myRef 需要实现从文本框改变内容,h3也会发生变化: 2.使用customRef(track,tigger){...}实现功能 两个参数分别是用于追踪的 track 与用于触发响应的 t
阅读全文
摘要:toRaw: 作用:将一个由reactive生成的响应式对象转为普通对象。 使用场景:用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新。 markRaw: 作用:标记一个对象,使其永远不会再成为响应式对象。 应用场景: 有些值不应被设置为响应式的,例如复杂的第三方类库等。
阅读全文
摘要:readonly: 让一个响应式数据变为只读的(深只读)。 shallowReadonly:让一个响应式数据变为只读的(浅只读,只读第一层)。 isReadonly:判断一个数据是不是只读数据 应用场景: 不希望数据被修改时,或者用到的数据是从外部传进的。 代码演示: readonly: 上述代码中
阅读全文
摘要:shallowReactive:只处理对象最外层属性的响应式(浅响应式)。 shallowRef:只处理基本数据类型的响应式, 不进行对象的响应式处理。 什么时候使用? 如果有一个对象数据,结构比较深, 但变化时只是外层属性变化 > shallowReactive。 如果有一个对象数据,后续功能不会
阅读全文
摘要:一.ref与toRef的区别: ref:复制,修改响应式数据不会影响原始数据 toRef引用,修改响应式数据会影响原始数据 ref:数据发生改变,界面会自动更新 toRef:数据发生改变,界面也不会自动更新 toRef应用场景: 如果想让响应式数据和以前的数据关联起来,并且更新响应数据之后不想更界面
阅读全文
摘要:什么是hook?—— 本质是一个函数,把setup函数中使用的Composition API进行了封装。 类似于vue2.x中的mixin。 自定义hook的优势: 复用代码, 让setup中的逻辑更清楚易懂。 代码演示: 1.创建一个文件夹,自定义文件用来存放复用代码 2.复用代码写入js文件中
阅读全文
摘要:vue2.x的生命周期: Vue3.0中可以继续使用Vue2.x中的生命周期钩子,但有有两个被更名: beforeDestroy改名为 beforeUnmount destroyed改名为 unmounted Vue3.0也提供了 Composition API 形式的生命周期钩子,与Vue2.x中
阅读全文
摘要:watch的套路是:既要指明监视的属性,也要指明监视的回调。 watchEffect的套路是:不用指明监视哪个属性,监视的回调中用到哪个属性,那就监视哪个属性 watchEffect有点像computed: 但computed注重的计算出来的值(回调函数的返回值),所以必须要写返回值。 而watch
阅读全文
摘要:一.computed函数 与Vue2.x中computed配置功能一致 写法: 以上是两种写法: 第一种简写形式:如果在显示界面更改了fullname,会有警告:计算属性不能更改,因为简写的形式是只读的 第一种完整写法:可读可写 二.watch函数 与Vue2.x中watch配置功能一致 有6种情况
阅读全文
摘要:setup执行的时机 在beforeCreate之前执行一次,this是undefined。 setup的参数 props:值为对象,包含:组件外部传递过来,且组件内部声明接收了的属性。 context:上下文对象 attrs: 值为对象,包含:组件外部传递过来,但没有在props配置中声明的属性,
阅读全文
摘要:一.回顾vue2的响应式 实现原理: 对象类型:通过Object.defineProperty()对属性的读取、修改进行拦截(数据劫持)。 数组类型:通过重写更新数组的一系列方法来实现拦截。(对数组的变更方法进行了包裹)。 存在问题: 新增属性、删除属性, 界面不会更新。 直接通过下标修改数组, 界
阅读全文
摘要:一.ref函数 作用:定义一个响应式数据 语法:const xxx = ref(initValue) 创建一个包含响应式数据的引用对象(reference对象,简称ref对象) JS中操作数据: xxx.value 模板中读取数据: 不需要.value,直接:<div>{{xxx}}</div> 返
阅读全文
摘要:1.理解:Vue3中一个新的配置项,值为一个函数。 2.setup是所有Composition API(组合API)表演的舞台 3.组件中所用到的:数据、方法等等,均要配置在setup中。 4.setup函数的两种返回值: 若返回一个对象,则对象中的属性、方法, 在模板中均可以直接使用,不需要再写t
阅读全文
摘要:一.使用vue-cli创建 官方文档:https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create 二.使用vite创建 官方文档:https://v3.cn.vuejs.org/guide/installation.html#v
阅读全文
摘要:今天学习vue3中的ref,运行代码就报这种错误,网上各种方法试了不行,后面发现是返回对象中没返回定义的名字,但是报错是不会直接报名字没定义,我写的对象类型ref,其中定义了个type,结果报的错是报的type没定义,所以这种细节问题一定要谨慎
阅读全文
摘要:一.什么是路由: 1.理解: 一个路由(route)就是一组映射关系(key - value),多个路由需要路由器(router)进行管理。 2.前端路由:key是路径,value是组件。 二.基本使用: 1.安装vue-router,命令:npm i vue-router 2.应用插件:Vue.u
阅读全文