javascript
文章平均质量分 56
一如既往的坚持
这个作者很懒,什么都没留下…
展开
-
javascript网络请求
1.所有现代浏览器都通过 XMLHttpRequest 构造函数原生支持 XHR 对象:let xhr = new XMLHttpRequest();2.使用 XHR 对象首先要调用 open()方法。调用 open()不会实际发送请求,只是为发送请求做好准备// 1.请求方式// 2.url// 3.是否异步xhr.open("get", "example.php", false);3.要发送定义好的请求,必须像下面这样调用 send()方法:send()方法接收一个参数,是作为请求体发原创 2022-01-09 17:54:49 · 1925 阅读 · 1 评论 -
用户界面事件
用户界面事件1.load:在 window 上当页面加载完成后触发,在窗套frameset上当所有窗格frame都加载完成后触发,在img元素上当图片加载完成后触发,在object元素上当相应对象加载完成后触发2.unload:在 window 上当页面完全卸载后触发,在窗套上当所有窗格都卸载完成后触发,在object元素上当相应对象卸载完成后触发3.abort:在object元素上当相应对象加载完成前被用户提前终止下载时触发4.error:在 window 上当 JavaScript 报错时触发,原创 2021-12-25 19:39:12 · 336 阅读 · 0 评论 -
事件处理程序
事件意味着用户或浏览器执行的某种动作。比如,单击( click)、加载( load)、鼠标悬停。为响应事件而调用的函数被称为事件处理程序(或事件监听器)。1.HTML事件处理程序方式一:<input type="button" value="点击" onclick="alert('HTML事件处理程序')"/>方式二:调用在其他地方定义的脚本<input type="button" value="点击" onclick="showMessage()"/><sc原创 2021-12-22 20:31:53 · 757 阅读 · 0 评论 -
javascript中json解析和序列化
JSON.stringify()把一个 JavaScript 对象序列化为一个 JSON 字符串。第一个参数是过滤器,可以是数组或函数;第二个参数是用于格式化缩进结果let book = { title: "Professional JavaScript", authors: [ "Nicholas C. Zakas", "Matt Frisbie" ], edition: 4, year: 2017};let jsonText原创 2021-12-19 21:05:43 · 564 阅读 · 0 评论 -
BOM用法详解
因为 window 对象被复用为 ECMAScript 的 Global 对象,所以通过 var 声明的所有全局变量和函数都会变成 window 对象的属性和方法。var age=29;var sayAge=function(){ alert("我是window方法")}alert(window.age);window.sayAge()如果在这里使用 let 或 const 替代 var,则不会把变量添加给全局对象:let age = 29;const sayAge = fun原创 2021-12-16 21:05:24 · 359 阅读 · 0 评论 -
javascript迭代器
迭代器(Iterator)是一种机制(接口):为各种不同的数据结构提供统一的访问机制,任何数据结构只要部署Iterator接口,就可以完成遍历操作[for of 循环]1.拥有next方法用于依次遍历数据结构的成员2.每次遍历返回的结果是一个对象{done:false,value:xxx}done:记录遍历是否完成value:当前遍历的结果必须暴露一个属性作为“默认迭代器”,而且这个属性必须使用特殊的 Symbol.iterator 作为键。这个默认迭代器属性必须引用一个迭代器工厂函数,调用这个工原创 2021-12-08 20:09:41 · 3319 阅读 · 1 评论 -
经典的闭包问题
这里使用 var 关键字声明了循环迭代变量 i,但这个变量并不会被限制在 for 循环的块级作用域内。因此,渲染到页面上之后,点击每个div都会弹出元素总数。这是因为在执行单击处理程序时,迭代变量的值是循环结束时的最终值,即元素的个数。而且,这个变量 i 存在于循环体外部,随时可以访问。<html> <body> <div style="width: 100px; height: 100px; background-color: red;">原创 2021-12-07 19:00:42 · 315 阅读 · 0 评论 -
Promise的介绍
异步处理方案回调处理未来值function add(getX, getY, cb) { var x, y; getX(function (xVal) { console.log('xxxxxxxx',x,y,xVal) x = xVal; // 两个都准备好了? if (y != undefined) { cb(x + y); // 发送和 } }); getY(function (yVal) {原创 2021-11-30 16:22:44 · 633 阅读 · 0 评论 -
JS中的事件循环
javascript 单线程指的是浏览器中负责解释和执行 javascript 代码的只有一个线程,即为 js 引擎线程,但是浏览器的渲染进程是提供多个线程的,如下:js 引擎线程事件触发线程定时器触发线程异步 http 请求线程GUI 渲染线程事件循环和事件队列的维护是由事件触发线程控制的。事件触发线程线程同样是由浏览器渲染引擎提供的,它会维护一个事件队列。js 引擎遇到上文所列的异步任务后,会交个相应的线程去维护异步任务,等待某个时机,然后由事件触发线程将异步任务对应的回调函数加入到原创 2021-11-21 12:48:25 · 315 阅读 · 0 评论 -
原型链机制
js中的对象有一个特殊的Prototype内置属性,其实就是对于其他对象的引用。var anotherObject={ a:2}//创建一个关联到 anotherObject 的对象var myObject=Object.create(anotherObject);console.log(myObject.a) // 2当你试图引用对象的属性时会触发[[Get]]操作,首先是检查对象本身是否有这个属性。如果有的话就使用它。但如果属性不在对象中,就会继续访问对象的[[Prototype原创 2021-11-18 19:01:06 · 485 阅读 · 0 评论 -
js对象介绍
对象可以通过两种形式表示1.声明文字形式var myObj={ key:value}2.构造形式var myObj=new Object();myObj.key=value;类型简单基本类型string,boolean,number, null,undefined内置对象 String,Number,Boolean,Object,Function,Array,Date,RegExp,Errorvar str='i am a string';console.log(typeof s原创 2021-11-18 10:10:24 · 523 阅读 · 0 评论 -
this绑定规则
默认绑定function foo(){ console.log(this.a)}var a=2;foo(); // 2声明在全局作用域中的变量(var a=2)就是全局对象的一个同名属性。在调用foo()时,this.a被解析成了全局变量a。因为在本例中,函数调用时应用了this的默认绑定,因此this指向全局对象。在代码中,foo()是直接使用不带任何修饰的函数引用进行调用的,因此只能是默认绑定function foo(){ console.log(this.a)}va原创 2021-11-09 16:51:30 · 257 阅读 · 0 评论 -
作用域闭包
闭包有3个特性:①函数嵌套函数②函数内部可以引用函数外部的参数和变量③参数和变量不会被垃圾回收机制回收function outter(){ var name='dov' function innter(){ return name; } return innter}var innter=outter();console.log(innter())outter()返回了一个具名函数inner,这个函数在outter()作用域内部,所以它可以获取原创 2021-11-08 19:31:19 · 379 阅读 · 0 评论 -
变量和函数声明提升
引擎会在解释javascript代码之前首先对其进行编译,编译阶段中的一部分就是找到所用的声明,并用合适的作用域将它们关联起来。因此,包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理。a=2;var a;console.log(a); // 2很多人会认为是undefinedvar a;这个声明是在编译阶段进行的,a=2会被留在原地等待执行阶段console.log(a)var a=2; // undefined只有声明本身会被提升,而赋值或其他运行逻辑会留在原地。f原创 2021-11-08 18:12:18 · 364 阅读 · 0 评论 -
函数和块作用域
函数声明和函数表达式最重要的区别是它们的名称标识符将会绑定在何处函数声明var a=2;// 具名函数声明function foo(){ var a=3; console.log(a) // 3}// 具名函数调用foo();console.log(a) // 2上面的片段foo被绑定在作用域中,直接通过foo()来调用var a=2;(function foo(){ var a=3; console.log(a)})();// ()原创 2021-11-06 13:47:06 · 152 阅读 · 0 评论