- 博客(30)
- 收藏
- 关注
原创 0818-几种AJAX请求实现
几种AJAX请求实现直接使用 XMLHttpRequest 对象//GET请求const xhr = new XMLHttpRequest(); //响应数据类型 xhr.responseType = "json"; // 初始化 xhr.open("GET", "http://127.0.0.1:8888/json-server"); // 发送 xhr.send(); // 事件绑定 处理返回结果 xhr.onreadystatechang
2020-08-19 01:38:33
151
原创 0817-微任务&宏任务
任务执行优先级:同步代码 -> 微任务(Promise) -> 宏任务(setTimeout)定时器模块负责计时,计时结束将任务放入任务队列,等待主线程轮询执行setTimeout(() => { console.log("宏任务里的同步代码"); new Promise(resolve => { console.log("宏任务中Promise中的同步代码"); resolve();
2020-08-18 00:32:54
164
1
原创 0818-JS实现Promise对象
利用JS实现Promise对象首先新建类MyPromise,并声明静态常量PENDING、FUFILLED、REJECTED表示promise的状态,exector函数带有resolve、reject两个函数参数,MyPromise执行构造函数时立即调用;调用resolve、reject函数时,分别将promise状态改为fulfilled、rejected。代码如下:MyPromise类:class MyPromise{ static PENDING = 'pending'; st
2020-08-18 00:27:37
157
转载 0816-前端SEO
通过网站的结构布局设计和网页代码优化,使前端页面既让浏览器用户看懂,也能让“蜘蛛”看懂网站结构布局优化:尽量简单、开门见山、提倡扁平化结构一般来说,建立网站结构层次结构层次越少,越容易被“蜘蛛”抓取,越容易被收录,加上访客的访问体验,三层目录结构体验最好控制首页连接数量网站首页是权重最高的地方,如果首页链接太少,没有“桥”,“蜘蛛”不能继续往下爬到内页,直接影响网站收录数量。但是如果首页连接太多,没有实质性的链接,很容易影响用户体验,也会降低网站首页的权重,收录效果也不好。因此,建议首页链接在10
2020-08-16 14:20:12
143
原创 0814-排序
常见排序算法冒泡排序平均时间复杂度:O(n2) 最佳情况 O(n) 最差情况 O(n2)原理:重复的从第一个元素开始,比较两个相邻的元素,如果第前个比后一个大(或小),就交换这两个元素function bubblesort (arr) { let temp; for (let i = 0; i < arr.length; i++){ for (let ii = 0; ii < arr.length; ii++){ if (arr[ii] <
2020-08-14 14:59:00
104
原创 JS-602-同源及跨域
什么是同源策略同源策略是由Netscape提出的一个著名的安全策略,现在所有支JavaScript的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。因此我们无法通过原生的XMLHttpRequest()对象获取到跨域的json数据 ,因此提出解决方案:jsonpjsonp 不是新的数据格式,只是一种跨域解决方案,通过jsonp获得到的数据格式不是json,而是JS类型的数据JSONPjsonp的原理:由于同源策略,无法通过XMLHttpRequest对象发送请求获取数据,但是HTML
2020-06-03 06:46:31
309
原创 JS-602-缓存、强缓存&协商缓存
cookies&sessionStorage&localStorage他们都是保存在浏览器端的,且是同比较cookies和local Storagecookies支持的数据内容小,一般8K左右;local Storage能支持到10M左右;cookies不能进行跨域访问,作为HTTP请求的一部分,会增加带宽local Storage本地化持久化web Storage拥有setItem,getItem,removeItem,clear等方法,不需要cookies那样,自己进行封
2020-06-03 06:44:36
230
原创 JS-602-HTTP状态码
HTTP的状态码100-199 用于指定客户端应相应的某些动作。200-299 用于表示请求成功。300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。400-499 用于指出客户端的错误。400 1、语义有误,当前请求无法被服务器理解。401 当前请求需要用户验证 403 服务器已经理解请求,但是拒绝执行它。500-599 用于支持服务器错误。 503 – 服务不可用;常用的具体状态码100 Continue 继续,一般在发送post请求时,已发送了http h
2020-06-03 06:43:04
1232
原创 JS-602-GET&POST
GET&POSTGET:一般用于信息获取,使用URL传递参数,对所发送的信息数量有限制,一般在2000个字符左右POST:一般用于修改服务器上的资源,对所发送的信息没有限制GET方式需要使用Request.QueryString 来取得变量的值,而POST方式通过Request.Form来获取变量的值GET是通过地址栏来传值,POST通过提交表单来传值HTTP请求方式get :从服务器获取post:向服务器发送put :增加delete :删除head option trac
2020-06-03 06:36:26
164
原创 JS-601-URL加载
URL到页面加载过程······浏览器向服务器发送一个HTTP请求进行DNS解析寻找浏览器缓存 --> 寻找系统缓存 --> 读取本地HOST文件 --> 发起网络DNS请求 --> 调用得到服务器IP客户端启动随机端口,三次握手浏览器发送请求服务器收到HTTP请求,解析路径和参数,经后台处理完成响应浏览器可以收到服务器的响应,渲染页面添加交互,绑定事件,执行动态行为刷新局部内容浏览器会解析HTML生成DOM Tree,根据CS
2020-06-03 06:34:18
198
原创 JS-601-DOM加载过程
DOM的加载过程解析HTML的结构加载外部脚本和样式表文件解析并执行脚本代码构造HTML、DOM模型加载图片等外部文件页面加载完毕注:如果在DOM完全加载之前使用DOM可能会发生错误;在图片、视频等加载完毕之前使用onload进行加载,会造成JS代码无法运行。...
2020-06-03 06:32:25
204
原创 JS-601-AJAX
AJAX是什么?ajax :Asynchronous Javascript And XML通过创建XMLHttpRequest对象,异步的发送请求,使用javascript 对服务器的相应进行处理,其核心是XMLHttpRequest.请求过程创建XMLHttpRequest 对象;创建一个HTTP请求,并指定该HTTP请求的方法、URL以及验证消息;设置响应HTTP请求状态变化的函数;发送HTTP请求;获取异步调用返回的数据;使用JavaScript 和DOM 实现局部刷新
2020-06-03 06:27:00
345
原创 JS-531-严格模式
严格模式的作用消除Javascript语法的一些不合理、不严谨的地方消除代码运行的一些不安全之处,保证代码安全运行禁止使用with 语句所有变量使用前必须声明函数中的this 是undefined (函数,不是方法)对象不能有重名的属性等等提高编译效率 ,增加运行速度为未来的新版本做好铺垫...
2020-05-31 23:06:30
143
原创 JS-531-内存泄露
内存泄露内存泄漏是指任何对象不再需要之后仍然存在(分配给应用的内存不能被重新分配,即使内存已经不再使用)垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量,如果一个对象的引用数量为0(没有被引用),或者该对象的唯一引用是循环的,那么该对象的内存即可回收。造成内存泄露的情况setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄露闭包内部方法保持对外部方法的引用,即使返回了内部方法,依旧可以访问外部方法中定义的变量控制台日志循环引用(两个对象彼此引用且彼
2020-05-31 23:05:26
103
原创 JS-531-eval()
JS之 eval( )eval() 函数的作用是可以把一个字符串当作是JS表达式来执行它会对字符串进行解析,变成JS代码并运行平时应该避免使用eval() 函数,不安全且耗费性能(解析并执行)
2020-05-31 23:04:40
144
原创 JS-531-arguments
JavaScript中的arguments属性在函数体内,标识符arguments 是指向实参对象的引用,实参对象是一个类数组对象arguments[] ,有length 属性arguments.lengtharguments 是收到的实参副本,在词法分析中,首先按照形参形成AO的属性,值为undefined ,当实参传来时,再修改AO的相应属性;把收到的所有实参收集起来,放到一个arguments 对象,当实际调用时传入的参数大于形参的个数时,AO属性中的属性个数不变,arguments 中会保存
2020-05-31 23:04:07
151
原创 JS-530-基本数据类型
数据类型可以分为:基本数据类型 和 引用数据类型基本数据类型:String Number Boolean Null Undefined Symbol BigInt引用数据类型:ObjectUndefined 类型只有一个值,即特殊的undefined ,所以undefined 可以当作关键字进行判断引用数据类型开辟一个空间运行,在堆内存中,founction 预解释的时候当作字符串存储在栈内存中,这时候引用仅仅只是一个内存地址,当运行时堆内存中的内容当作代码执行。栈:原始数据类型堆:引用数据类型
2020-05-31 23:02:53
188
原创 正则!!!
正则表达式创建通过对象创建let reg = new RegExp('li');let str = 'zimianliang';reg.test(str); //true字面量创建let str = 'zimianliang';/z/.test(str); //true原子组与原子表// 原子组 匹配 [] 中的任一字符,相当于 /1|2|3/let reg1 = /[123]/;let str = '23456';str. match(reg1); //true/
2020-05-26 10:50:48
484
原创 JS-this
关于this的值let people = { name: "zhangsan", activities: ["bann","football","ping","bask"], action: function() { return this.activities.map(function (value) { return ... }) }} ac
2020-05-26 10:50:09
166
1
原创 JS-函数
函数声明时两种函数声明function func() { }//此时使用window.func(),也可以调用到此函数,一次声明可能会影响到全局的函数let func = function() { }//这种方式就不会产生上述影响第一种函数声明方式还会有函数提升,即:func();function func() {};导致的结果是,先调用后声明函数,程序是可以执行的。立即执行函数(function func(){console.log('fafa');})();//此时函数会
2020-05-26 10:47:08
237
原创 JS-set类型
Set类型set类型中元素不可重复 ,但是是类型严格约束的,即1 !== '1'let set = new Set( );这种方式赋值时,括号内必须是可迭代的,即let set = new Set('abcdefg'); 此时set 中的值为{'a', 'b', 'c'...} ,而不是{'abcdefg'}。set类型可迭代基本属性//添加元素set.add('add');//判断是否包含某元素set.has('add');//删除元素set.delete('add');//查
2020-05-26 10:44:13
1311
原创 JS-Map类型
Map类型类似于对象中的键值对形式,map中也是,但map类型的键可以是函数、对象等任何类型,对象中值可以是字符类型let map = new Map([['age',21], ['name', 'zz']]);//增加、获取、删除、清空、查询map.set({}, 13);map.get('name');map.delete('age');map.clear();map.has('name');...
2020-05-26 10:42:52
657
原创 JS-5-数组创建时
##数组创建时创建数组时使用 new Array() 和 Array.of() 都可以, 但二者有略微不同let arr = new Array(1,2,3,4);let arr = Array.of(1,2,3,4);//二者均可创建数组[1,2,3,4]let arr = new Array(6);let arr = Array.of(6);//次此时,第一种创建的是 长度为6 的一个数组,第二种创建的是 [6]...
2020-05-13 17:13:44
126
原创 JS-4-Boolean类型比较和转换
JS中Boolean类型及转换##Boolean类型为false的false、null 、undefined 、NaN 、空字符串、0if ({}) 语句在执行时会隐式进行 Boolean({}) 转换引用类型,转化为布尔类型是都为真,只有上述几种情况为false ;而在比较时,[] == false ,两边的比较值会同时转换为Number( ) 类型,因此,比较和转换时两种不同的...
2020-05-03 13:03:01
230
原创 JS-3-String字符串处理
一些简单的字符串处理函数基本的var name = 'kaka kaka ';console.log(name.length);//字符串长度console.log(name.toUpperCase());//大写console.log(name.toLowerCase());//小写 console.log(name.trim().length);//去除空格(字符串...
2020-05-03 13:00:23
217
原创 JS-2-模板字面量&标签模板
模板字面量&标签模板引入标签模板之前,对字符串的使用:var name = 'kaka';var club = 'AC Milian';var info = `name: ${name} club: ${club}`;单纯的使用模板字面量,但是会有一些弊端:不能自动转义特殊字符串不能很好的和国际化库配合(不会格式化特定语言的数字,日期,文字等)没有内建循环语法参考...
2020-05-03 12:55:25
832
原创 JS-1-变量的一些
变量提升console.log(number);---------------输出:number is not defined---------------- console.lod(number); var number = 123;----------------输出:undefined 浏览器在执行前会提前对代码进行解析,所以语句var numbe...
2020-05-02 22:39:28
133
原创 HTML5的一些新特性
新特性audio和video音视频播放,抛弃了Flash<audio> :播放音乐或音频格式:.mp3 / .ogg / .wav<video>:连接视频文件格式:.mp4 / .ogg / .webmcanvas画布,进行绘画以及制作动画必须结合JS使用,单独使用无意义。具体功能通过JS来体现宽高直接使用属性实现,不通过CSS&...
2020-04-30 12:03:40
137
原创 CSS的一些使用
CSS样式的引入行间样式<p style="color: blue; margin-left: 20px">...</p>内部样式<style type="text/css"> span { font-size: large; color: blue; display: block; }...
2020-04-23 23:00:45
241
原创 HTML标签规则
标签嵌套规则块元素可以包含内联元素或某些块元素,但反之不行<div><h1></h1><p></p></div> 可<a href=""><span></span></a> 可<span><div></div></span&...
2020-04-23 00:16:52
856
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人