之所以单独拿出来说这,其实是给自己一个提醒。前两天去了“汽车某某”的公司面试,一开始问我是否知道RAF这个简称,是做性能优化的时候用到的,我说是requestAnimationFrame吗,巴拉巴拉说了一些,然后问我RIF,我猜测跟RAF同类型吧,但是我没用过。回来后我查了一下,其实是这个,so it is“RIC” window.req……
标签目录:jQuery/Js
以下是与标签 “jQuery/Js” 相关联的文章js获取屏幕宽度
先来看一下js常见的方法 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的……
神烦的__proto__、prototype、constructor
三个东西真的很常见,但是看到就烦,为了让自己心情好点,索性好好琢磨一下。 __proto__ 是为了找对象的原型,继续找原型的原型,最终为null,是真正的原型链。里面会有js默认的对象属性和方法,普通函数和构造函数都可以直接用。可以把它理解为一种结构形式的链式关系。看下图 prototype 是构造函数继承链,也就是说只有在构造函数中才……
web存储
Cookie: 生命期为只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 存放数据大小为4K左右 。有个数限制(各浏览器不同),一般不能超过20个。与服务器端通信:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。 Session: 是存在服务器的一种用来存放用户数据的类HashTable结构。……
Js中的连等赋值
1 2 |
var a=1,b=1; var a=b=1; |
以上两种定义方式有什么不同
1 2 3 4 5 6 |
function test1() { var a=b=1111; } test1(); console.log(a); //a is not defined console.log(b); //1111 |
b成为了全局变量。下面再看一个:
1 2 3 4 5 6 7 |
var a=1,b=2,c=3; (function(){ var a=b=1; })(); console.log(a); //1 console.log(b); //1 |
同样这个例子其实考察到闭包的问题,b=1进行了全局更改,所以最后输出了1 上面都……
浏览器Request Header和Response Header
请求(客户端->服务端[request]) Accept:*/* (客户端能接收的资源类型) Accept-Encoding:gzip, deflate, br (客户端能接收的压缩数据的类型) Accept-Language:zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7 (客户端接收的语言类型) Cache-C……
js闭包
js的闭包,简单来说就是提供了一个在外部访问另一个函数内部局部变量的方式。 先写一个常见的例子:
1 2 3 4 5 6 7 8 9 10 |
var add = (function () { var counter = 0; return function () {return counter += 1;} })(); add(); add(); add(); // 计数器为 3 |
注意: 为什么上面这段代码没有直接写的 function add (){…} 而是把function赋值给了变量add呢? 我们通常会想当然的认为每次调用 add(……
常见js兼容问题
1、获取屏幕滚动高度 document.body.scrollTop:firefox可识别 document.documentElement.scrollTop:chrome可识别 浏览器不识别,得到的是0。但是两者在同一浏览器中只有一个生效,所以平时用的时候,可以
1 |
var wid = document.documentElement.scrollTop || document.body.scrollTop |
2、获……
ES6-Promise获取错误
promise是ES中一个异步操作对象,它把操作放到堆栈中按照先进先出的原则进行处理。这里我只说两种捕获错误的方法作记录。 1、最常用的,在then的末尾加上catch,跳过then,直接进入catch(返回错误)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
new Promise(resolve=>{ setTimeout(()=>{ throw new Error('错误') },1000) }) .then(value => { console.log('hello') }) .catch(e=>{ console.log('this is a '+e.message) }) //Uncaught Error: 错误 //at setTimeout (<anonymous>:3:15)` |
2、参数方法,同样跳过then(返回错误信息而已) [cr……
原生JS操作DOM
通过html dom可以访问javascript html文档的所有元素。 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。 通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。 JavaScript 能够改变页面中的所有 HTML 元素 JavaScript ……