JS遗漏点

1.offsetTop、offsetLeft:只是值,没有单位,所以设置的时候一定加上px
2.getComputedStyle(obj).属性值:是一个可以获取当前元素所有最终使用的CSS属性值
IE8以下:使用对象.currentStyle.属性
举例 function getStyle(obj,attr){
return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
}
3.◎Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;
◎Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;
◎Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数
4.document.getElementsByClassName(“类名”)得到的是一个数组
5.border-radius:一共有八个属性值。例如50% 50% 50% 40%/20% 30% 40% 60%
斜线前面代表水平方向,后面代表竖直方向,顺时针方向:左上,右上,右下,左下
6.animation:rot 10s linear infinite;//css自定义动画:动画名称 时间 匀速运动 无限重复;
7.讲一下display还有position的位置问题
例如span{
width:25px;
height:25px;
display:block;//先按照行内元素解析宽高,再按照块级元素来解析元素,需要解析两次。所以应该把display:block放在最前面
}
8.outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用
9.text-indent属性,定义文本首行的缩进(在首行文字之前插入指定的长度)
1. <select name="tabletype">
<option value="">邮箱</option>
<option value="">用户名</option>
<option value="">密码</option>
<option value="">手机号</option>
</select>
中,如果想知道选中第几个,利用var tType=document.getElementsByName(“tabletype”)[0];
tType.selectedIndex:会显示选出的第几个
tType.options[tType.selectedIndex]:会显示出选中的元素
2. querySelector() 方法仅仅返回匹配指定选择器的第一个元素。如果你需要返回所有的元素,请使用 querySelectorAll() 方法替代。例如:获取文档中第一个< p >元素:document.querySelector(“p”);
3. element.addEventListener(event, function, useCapture):最后一个选项比较重要
true - 事件句柄在捕获阶段执行
false- 默认。事件句柄在冒泡阶段执行
13.js操作数据最快。比操作dom快好几多倍
14.当前浏览器的窗口大小为innerHeight、innerWidth
15.canvas.beginPath();重新画出一条路径
16.onmousemove 属性在鼠标指针移动到元素上时触发
17.图片标签的四要素: src=”” alt=”” width=”” height=””
18.在异步请求时的状态方面:xhr.status—-xhr.readyState
state:
0:未初始化
1:调用了send方法 正在发送请求
2:send载入完成 发送完成
3:解析响应内容
4:响应内容解析完成 数据可以使用
status:404 403 304 500
19.JSON
Javascript字符串与JSON字符串的最大区别在于,JSON字符串必须使用双引号(单引号会导致语法错误);JSON中的对象要求给属性加双引号。
与JavaScript的对象字面量相比,JSON对象有两个地方不一样。首先,没有声明变量(JSON中没有变量的概念)。其次,没有末尾的分号(因为这不是Javascript语句,所以不需要分号)。
JSON对象有两个方法:stringify()和parse()。这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生Javascript。
20.关于ajax:
需求分析:
4. 获取api接口数据
1.ajax
1.URL 2.参数 3.open建立数据信道 4. send发送数据null兼容性 5.监听信道 6.格式化数据
2.数据渲染
1.DOM模板
2.es6文本域 ` ${}
3.循环渲染
**3**.数据分页操作 优化 &&DOM桥接
1.获取DOM元素
2.事件委托
**4**.数据缓存代理
**5**.完善业务模型
21.数组可以使用forEach,但是伪数组不能使用forEach()。怎么让伪数组使用forEach
使用call。
Array.prototype.forEach.call(oli,function(el){
console.log(el)
})
5. String对象中的concat方法,它将处理两个字符串,把第二个字符串连接到第一个字符串后面作为结果返回。然而很少使用这一方法,大部分更喜欢用字符串运算符,比如字符串连接运算符。
6. JS隐式转换 弱类型 字符串(变成数字)*数字 字符串+数字(字符串)
7. timeupdate 事件通常与 Audio/Video 对象的 currentTime 属性一起使用,该属性返回音频/视频(audio/video)的播放位置(以秒计)。
8. cssText 属性设置或返回作为字符串的样式声明的内容。例如: document.getElementById(“x”).style.cssText
9. parseInt很重要。字符串转换成数字
10. box-shadow水平偏移 竖直偏移 大小羽化程度 颜色
11. 栈方法:数组提供一种让数组的行为类似于其他数据结构的方法,栈是一种LIFO
12. push方法实现concat方法:
var arr1 = [1,2,3,4];
var arr2 = [‘a’,’b’,’c’];
function concat(a,b){
var arr = a;
arr.push.apply(arr,b);//一个一个传参
return arr;
}
var arr = concat(arr1,arr2);
console.log(arr1);
高级做法,分析第5行代码为什么不直接用arr.push(b),因为这样会直接把b数组当做a数组的一项来对待,所以是不可以的。
30.数组方法
push()方法:可向数组的末尾添加一个或多个元素,并返回新的长度
unshift()方法:可向数组的开头添加一个或更多的元素,并返回新的长度。
pop()方法:用于删除并返回数组的最后一个元素
shift()方法:用于把数组的第一个元素从其中删除,并返回第一个元素的值。
reverse()方法:用于颠倒数组中元素的顺序。
concat()方法:用于连接来能个或多个数组,该方法不会改变现有数组,而仅仅返回连接数组的一个副本。
slice()方法:可从已有的数组中返回选定的元素。该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法Array.splice()。
sort()方法:用于对数组的元素进行排序。sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串。
31.XMLHttpRequest对象的创建要考虑兼容问题。
HTTP请求
1.HTTP请求的方法或动作,比如是GET还是POST请求
2.正在请求的URL,总得知道请求的地址是什么吧
3。请求头,包含一些客户端环境信息,身份验证信息等
4.请求体,也就是请求正文,请求正文中可以包含客户提交的查询字符串信息,表单信息等
GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符
POST:一般用于修改服务器上的资源。对所发送信息的数量无限制
HTTP响应一般由三部分组成:
1.一个数字和文字组成的状态码,用来显示请求是成功还是失败
2.响应头,响应头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等
3.响应体,也就是响应正文
HTTP状态码
HTTP状态码由3位数字构成,其中首尾数字定义了状态码的类型:
1XX:信息类,表示收到Web浏览器请求,正在进一步的处理中
2XX:成功,表示用户请求被正确接受,理解和处理例如:200 OK
3XX:重定向,表示请求没有成功,客户必须采取进一步的动作
4XX:客户端错误,表示客户端提交的请求有错误,例如:404 NOT FOUND,意味着请求中所引用的文档不存在
5XX:服务器错误,表示服务器不能完成对请求的处理:如500
32. XMLHttpRequest发送请求
open(method,url,async):第一个参数是方法,第二个参数是请求的地址,第三个参数是请求同步/异步
send(string):
33.responseText : 获得字符串形式的响应数据
responseXML : 获得XML形式的响应数据
status和statusText:以数字和文本形式返回HTTP状态码
getAllResponseHeader() :获取所有的响应报头
getResponseHeader() :查询响应中的某个字段的值
34.解决跨域比较好的办法就是在服务器端进行小小的改造。
HTML5提供的XMLH逃脱Request Level2已经实现了跨域访问以及其他的一些新功能。
IE10以下的版本都不支持
在服务器端做一些小小的改造即可:
header(‘Access-Control-Allow-Origin’);
header(‘Access-Control-Allow-Methods:POST,GET’);
35.function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.hi=function(){
console.log(‘Hi,my name is ‘+this.name+’,I am’+this.age+’years old now’)
}
var bson=new Person(“xiaoming”,28);
Student.prototype.x=10;
bson.x;//10
但是如果
Student.prototype={y:2};
bson.y;//undefinded
bosn.x;//101
表明已经创建好的实例化,如果是对原型链全部重新设定,是不起作用、
var m=new Person(“xiaoming”,24);
m.x;//undefined
m.y;//2
36.如果构造函数内部有return语句,而且return后面跟着一个对象,new命令会返回return语句指定的对象;否则,就会不管return语句,返回this对象。
例如构造函数确实有return语句,但是其return一个数值。这时,new命令就会忽略这个return语句,返回“构造”后的this对象。
但是,如果return语句返回的是一个跟this无关的新对象,new明令回返回这个新对象,而不是this对象。这一点需要特别注意。
37.如果对普通函数(内部没有this关键字的函数)使用new明令,则会返回一个空对象。
38.函数内部可以使用new.target属性。如果当前函数是new命令调用,new.target指向当前函数,否则为undefined。
39.构造函数作为模板,可以生成实例对象。但是,有时只能拿到实例对象,而该对象根本就不是由构造函数生成的,这时可以使用Object.create()方法,直接以某个实例对象作为模板,生成一个新的实例对象。
40.Object.getOwnPropertyNames方法返回一个数组,成员是对象本身的所有属性的键名,不包含继承的属性键名。
41.对象实例的hasOwnProperty方法返回一个布尔值,用于判断某个属性定义在对象自身,还是定义在原型链上。
42.in运算符返回一个布尔值,表示一个对象是否具有某个属性。它不区分该属性是对象自身的属性,还是继承的属性
获得对象的所有可枚举属性(不管是自身的还是继承的),可以使用for…in循环。
43.Object.getPrototypeOf方法返回一个对象的原型。这是获取原型对象的标准方法。
44.JavaScript提供了call、apply、bind这三个方法,来切换/固定this的指向。通过apply方法,利用Array构造函数将数组的空元素变成undefined。
45.空元素与undefined的差别在于,数组的forEach方法会跳过空元素,但是不会跳过undefined。因此,遍历内部元素的时候,会得到不同的结果。
46.apply的用途
找出数组中最大元素
将数组的空元素变为undefined
绑定回调函数的对象
47.熟悉动画:
旋转效果transform的属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值