
js
从誩从羊
这个作者很懒,什么都没留下…
展开
-
js获取浏览器默认语言
<script type="text/javascript"> var type = navigator.appName; if (type == "Netscape"){ var lang = navigator.language;//获取浏览器配置语言,支持非IE浏览器 }else{ var lang = navigator.userLanguage;//获取浏览器配置语言,支持IE5+ == navigator.systemLanguage ...原创 2020-12-24 09:55:02 · 448 阅读 · 0 评论 -
js ajax的执行过程
1、创建XMLHTTPRequest2、使用open方法设置和服务器的交互信息3、设置发送数据,开始交互4、注册时间5.更新界面function ajax(json) {json.type = json.type ? json.type : 'get';json.async = json.async == false ? false : true;json.contentType = json.contentType ? json.contentType : 'applic原创 2020-10-20 20:35:40 · 275 阅读 · 0 评论 -
关于js中this的理解
this存储任何地方,不同环境代表不同的含义,取决于调用时的环境。(与es6中箭头函数的this不同)A.事件处理函数中的this---触发事件的对象document.onclick = function(){ alert(this) }B.普通函数中的this---windowfunction sum(){ alert(this)} sum()...原创 2020-10-20 20:22:42 · 140 阅读 · 0 评论 -
new操作符具体干了什么
1.先创建了一个新的空对象2.然后让这个空对象的__proto__指向函数的原型prototype(改变作用域,将this作用域指向该函数)3.将对象作为函数的this传进去,如果return 出来东西是对象的话就直接返回 return 的内容,没有的话就返回创建的这个对象...原创 2020-10-20 20:17:03 · 244 阅读 · 0 评论 -
null和undefined的区别
1、null 使用typeof输出的是object, undefined是undefined2、null表示变量定义了但是赋值为空,undefined表示变量定义了但是未赋值3、null可以转为数字0,undefined不可以转为数字0,但是null==undefined为true原创 2020-10-20 20:14:26 · 446 阅读 · 0 评论 -
async解决回调地狱问题
Async 函数是Generator函数语法糖;语法:在function前面加async关键字; 箭头函数async关键字放在形参的前面;返回的是一个promise对象;await 等待;1.await后面的值,不会返回到函数的外部;2.async函数内可以有多个await3.await等待的是后面表达式的结果值;注意,如果是promise对象,默认情况下只返回成功状态值;4.await有阻塞后面代码执行作用,await后面的表达式有结果之后,下面的代码才可以执行;...原创 2020-10-20 20:02:01 · 240 阅读 · 0 评论 -
js原型和原型链
函数的原型对象: 在Js中,我们创建一个函数A时, 那么浏览器就会在内存中创建一个对象B,而且每个函数都默认会有一个属性 prototype 指向了这个对象( 即:prototype的属性的值是这个对象 )。这个对象B就是函数A的原型对象,简称函数的原型。这个原型对象B 默认会有一个属性 constructor 指向了这个函数A 。原型链:对象的__proto__它的是原型,而原型也是一个对象,也有__proto__属性,原型的__proto__又...原创 2020-10-20 19:57:17 · 302 阅读 · 0 评论 -
js 继承的几种方式
父类:<script> function Parent(name){ this.name=name }//原型上面的方法: Parent.prototype.eat = function(food) { console.log(this.name + '正在吃:' + food); }</script>1、原型继承function Children(){.原创 2020-10-20 19:25:54 · 225 阅读 · 0 评论 -
js判断变量数据类型以及伪数组转真数组
1、typeof var a=1; console.log(typeof a) //number 但是null、对象、数组返回的都是object类型;接下来就有一个问题,如何判断是否为数组2、instanceof 用于判断一个变量是否某个对象的实例var a=[];console.log(a instanceof Array) //返回true3、Array.isArray()var a=[];console.log(Array....原创 2020-10-16 09:32:50 · 200 阅读 · 0 评论 -
伪数组转为真数组
伪数组:像数组但是不是数组,没有数组的方法 1、 [].slice.call(obj) 这个等于Array.protype.slice.call(obj) slice会把通过索引位置获取新的数组,该方法不会修改原数组,只是返回一个新的子数组.call会把this的指向改为传进去的objvar newArr=[].slice.call(obj)2、Arrary.form (obj) ES6新语法var newArr=Array.from(obj)3. 使用...原创 2020-10-13 15:59:04 · 134 阅读 · 0 评论 -
关于promise的一些东西
promise是解决异步编程的方法,需要new 实例化;resolve返回的是成功状态值;reject返回的是失败状态值; 1、 特点: 1. 三种状态:进行时,已成功,已失败 2. 两种状态转换:进行时=》已成功;进行时=》已失败 2、 promise一旦创建就会立即执行(同步任务); 调用resolve或reject执行异步任务;状态也会发生改变:由进行中=》已成功或者是已失败; 返回成功状...原创 2020-10-12 20:18:41 · 304 阅读 · 0 评论 -
有关箭头函数的特点以及适用场景
特点:this指向的是定义时所在的对象(跟着爹走); Call,apply,bind不能够改变箭头函数的this指向; 箭头函数中没有prototype原型 箭头函数没有constrcutor没有构造器 不能够使用new进行实例化 箭头函数中不能够使用arguments对象,用剩余参数来代替;不适用场景:对象函数简写不推荐使用箭头函数; 事件的绑定要分情况使用...原创 2020-10-12 19:52:46 · 269 阅读 · 0 评论 -
有关深拷贝和浅拷贝
深拷贝和浅拷贝的区分主要体现在引用数据类型,因为引用数据类型是存放在堆中的(有关引用数据类型和基本数据类型的区别看这里:https://www.cnblogs.com/focusxxxxy/p/6390536.html),在引用数据类型中浅拷贝只能拷贝一维数据,而深拷贝可以拷贝多维数据关于浅拷贝的实现:1、利用slice实现 letarr1=['a','b','c',[10,20]]; letarr2=arr1.slice();...原创 2020-10-12 19:50:28 · 313 阅读 · 0 评论 -
es6中let和const
let声明变量let特点: 1.没有变量提升的过程,必须先声明再使用2.不可以重新声明,可以重新赋值;3.会产生块级作用域4.暂时性死区(因为会产生块级作用域和必须先声明再使用)const声明常量const特点: 1.没有变量提升的过程,必须先声明再使用2...原创 2020-10-12 19:23:38 · 89 阅读 · 0 评论 -
jq和其他库冲突解决
jQuery.noConflict();//将$的控制权让出来(function($){ //利用闭包,把jQuery传给$,闭包内的$和外面的无关 $(function(){ s})})(jQuery)原创 2020-09-27 21:04:46 · 109 阅读 · 0 评论 -
关于js的预解析和逐行解读
浏览器在解析js代码的时候,会进行一个预解析的操作,会有一个js解析器,里面会执行其中的两步操作:1、预解析,找一些东西(varfunction参数)2、逐步解读代码-1、找var的时候,如果存在var关键字,则会将这个变量先存储下来,存储的形式为:vara=undefined,预解析的时候变量中存的都是undefined,等到逐行解析遇到表达式即=+-*/%++--等操作才会改变变量的值。-2、找function的时候,会将整个函数都保存下来。-...原创 2020-09-07 15:03:50 · 287 阅读 · 1 评论