JavaScript
文章平均质量分 65
小k铁柱
铁柱在努力
展开
-
clientHeight、offsetHeight、innerHeight、ouerHeight 区别
innerHeight 和 outerHeight 是window 对象的只读属性, clientHeight 和 offsetHeight 是DOM 元素属性,接下来看看他们之间的有什么区别。clientHeight vs offsetHeightElement.clientHeight 是元素的只读属性,对于没有定义CSS或者内联布局盒子的元素为0,否则,它是元素内部的高度(单位像素),包含内边距,但不包括水平滚动条、边框和外边距HTMLElement.offsetHeight 也是一个只读属性,原创 2021-12-19 00:06:49 · 3665 阅读 · 0 评论 -
js 数组和对象的深拷贝
数组的深拷贝直接赋值复制的是浅拷贝,一旦修改就会修改到原来的数组,所以深拷贝是很有必要的。ES6 扩展运算符let arr=[1,2,3,4,5,6];let arr1=[...arr];arr1[0]=8;console.log(arr);//[1,2,3,4,5,6]console.log(arr1);//[8,2,3,4,5,6]concat 和 slicelet arr=[1,2,3,4,5,6];let arr1=arr.concat();arr1[0]=8;consol原创 2020-10-21 09:15:12 · 186 阅读 · 0 评论 -
js 同步任务、异步任务、宏任务、微任务、事件循环
同步任务:立即执行的任务异步任务:就是不立即执行的任务(好像是在讲废话),比如ajax、setTimeout定时函数等都属于异步任务,异步任务会通过任务队列的机制(先进先出的机制)来依次执行宏任务:除了微任务以外的所有任务微任务:process.nextTick和 Promise后的then语句和catch语句等js是单线程已经是老生常谈了,任务分了同步任务和异步任务,同步任务和异步任务里又可以分为宏任务和微任务。关系如下:同步和异步任务分别进入不同的执行环境,同步的进入主线程,即.原创 2020-10-16 14:57:10 · 534 阅读 · 1 评论 -
js 数组去重和对象数组去重
数组去重:Set 结构不会添加重复的值。Array.from把set 结构转换为数组map.has(property)判断属性是否存在 ,map的键Array.includes(value) 判断值是否存在于数组中遍历两次,使用===全等运算符判断是否相等使用filter过滤数组,hasOwnProperty判断对象是否存在某属性,将数据类型和数据作为对象的属性,如果存在相同的就返回false,表示过滤。let originalArray = [1,2,3,4,5,3,2,4,1];//转载 2020-10-16 11:13:36 · 147 阅读 · 0 评论 -
原生JS AJAX请求
请求的步骤创建请求对象xhr(XMLHttpRequest 构造函数)xhr.open() 初始化一个请求。xhr.send(method,url,isAsync) 发送请求。method: String 表示请求方式,url: String 表示请求地址,isAsync : true/false,表示是否异步,默认true。异步请求需要通过回调函数获取返回的结果,同步可直接在send后获取到。接收数据,访问xhr对象AJAX的核心对象是XMLHttpRequest 对象,但这个对象在IE5/原创 2020-10-13 13:42:17 · 95 阅读 · 0 评论 -
Js call apply bind
用途对象的属性可以是函数,一般是指向该对象,但有时候我们希望其他对象也可以调用此函数,这时候就需要使用 call 、apply 或 bind简而言之,这三个函数的作用都是用于重定义this 对象的。例如:下面这个实例obj.myFun() this 指向 objvar name='klaus',age=23;var obj = { name:'klaus1', objAge:this.age, myFun:function(){ console.log(this.name+'年龄:'+t原创 2020-09-07 10:27:18 · 103 阅读 · 0 评论 -
js 事件委托和事件冒泡
事件委托和事件冒泡主要是利用冒泡原理,何为冒泡?就是子元素的事件传播到父元素,比如说子元素的点击事件同时也会触发父元素的点击事件;何为委托?当子元素比较多的时候,我不想一个一个地去阻止冒泡,或者一个一个地监听它们的事件,所以我直接利用冒泡原理,将事件监听委托给父级去做;网上有一个取快递的举例比较好理解,也就是说,在公司里张三李四王二麻子都有快递要取,但是他们不想自己站在公司门口干等,所以他们就拜托前台小姐姐帮忙接收,前台小姐姐拿到快递以后就会根据他们的名字分发给相应的人。<ul>原创 2020-08-28 17:11:53 · 224 阅读 · 0 评论 -
AJAX、Fetch 和 axios
做了一个小练习,利用axios 初始化动态绑定复选框/下拉框/单选框 表单上传文件和其他数据到后台,然后原创 2020-08-25 16:42:14 · 241 阅读 · 0 评论 -
前端基础知识
刚刚的面试题赶紧拿小本本记起来。css3新特性有哪些?参考新选择器:nth-child(n) 选择器的第n个子元素nth-of-type(n) 选择器的“特定类型” 的第n个子元素这两个的区别:p:nth-child(2) 父元素的第二个子元素,且是p元素p:nth-of-type(2) 父元素的第二个p元素:frist-child 选择器的第一个子元素:frist-of-type 相当于 :nth-of-type(1)E:empty 选择没有子元素的每个E元素文本:tex原创 2020-08-10 17:05:14 · 126 阅读 · 0 评论 -
网络请求--Fetch
以前都是用jQuery.ajax() 来请求资源,而fetch 是现代通用的方法。个人觉得用法和AJAX 相差无几。它和 AJAX 的区别是当接收到一个代表错误的 HTTP 状态码时,从 fetch() 返回的 Promise 不会被标记为 reject, 即使响应的 HTTP 状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve (但是会将 resolve 的返回值的ok 属性设置为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。fe原创 2020-08-03 00:47:02 · 169 阅读 · 0 评论 -
使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。
被这个问题困扰了两天,终于被我找出来了前期我只知道ajax 请求一直返回parseerror 的错误,但不知道如何去捕获具体原因直到我在global.asax 文件里加入下面这些去捕获错误信息最终发现是json 字符串超出了最大限制, void Application_Error(Object sender, EventArgs e) { Exception lastError = Server.GetLastError();//在这里捕获错误信息原创 2020-07-31 14:10:39 · 1647 阅读 · 0 评论 -
js 基础学习 遍历DOM
DOM这块知识很重要,做个总结吧!DOM 表示文档对象模型,每个HTML标签都是一个对象,标签内的文本也是对象,所有这些对象都可以使用 js 来访问和修改。js 共有12 种节点类型通常用到的有四种:document — DOM 的“入口点”。元素节点 — HTML 标签,树构建块。文本节点 — 包含文本。注释 — 有时我们可以将一些信息放入其中,它不会显示,但 JS 可以从 DOM 中读取它。自动修正如果浏览器遇到格式不正确的HTML,它会在形成DOM的时候修正它。例如,顶级标签永原创 2020-07-23 23:57:16 · 928 阅读 · 0 评论 -
js 运算符--加减乘除幂、相等运算符
常见运算符有 + - * / %(加减乘除求余),其中求幂是 **例如:let num= 2**4; alert(num); //16+ 如果被应用于字符串则表示拼接字符串,如果其中一个运算元是字符串,那么另一个运算元也将会被转换为字符串alert( '1' + 2 ); // "12"alert( 2 + '1' ); // "21"并且+运算符是唯一以这种方式支持字符串的运算符。 其他算术运算符仅使用数字,并且始终将其操作数转换为数字。当 + 运算符只有一个运算元时,如果运算元不是数原创 2020-07-05 22:23:33 · 416 阅读 · 0 评论 -
js 数据类型
Javascript 中有 8 种数据类型( 7 种原始类型和 1 种引用类型),本篇文章只记录数据类型中的特殊情况。number 用于任何类型的数字:整数或浮点数,在 ±253 范围内的整数。bigint 用于任意长度的整数。string 用于字符串:一个字符串可以包含 0 个或多个字符,所以没有单独的单字符类型。boolean 用于 true 和 false。null 用于未知的值 —— 只有一个 null 值的独立类型。undefined 用于未定义的值 —— 只有一个 undefine转载 2020-07-05 19:46:46 · 94 阅读 · 0 评论 -
js var、let、const
JavaScript 中声明变量有三种方式,分别是var、let、const本篇文章主要内容记录 var 与 let 和 const 的区别let现代的变量声明方式constconst声明常量,它们不能被修改,一旦修改就会报错,var1. var没有块级作用域if (true) { var test = true; // 使用 "var" 而不是 "let"}alert(test); // true,变量在 if 结束后仍存在如果使用let声明test变量if (true)原创 2020-07-05 18:51:03 · 169 阅读 · 0 评论