发表于: 2018-07-03 21:22:22
2 438
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
明天计划的事情:(一定要写非常细致的内容)
遇到的问题:(遇到什么困难,怎么解决的)
收获:
一.不定宽高水平垂直居中
方法1:
position:absolute;
top:50%;
left:50%;
-webkit-transform:translate(-50%,-50%);
方法2:
父:display:table
子:
display:table-cell;
vertical-align:middle;
text-align:centent
二.this对象的指向
全局函数中this指向window
当函数被作为某个对象的方法调用时,this指向那个对象
匿名函数具有全局性,一般指向window
var object = {
name: 123,
getName: function() {
console.log(this.name) //返回123
}
}
object.getName()
三.检测数据的类型
1.typeof检查函数和基本类型,null会显示为object
var a=123
(typeof a) //number|字符串
2instanceof检查对象类型|
var a=123
(a instanceof Number) //false|布尔值
因为只能判断对象:Object/Function/Array
3.constructor,不能用于null和undefined会报错
var a=123;
(a.constructor==Number) //true
四.事件委托
事件委托就是利用子元素的事件冒泡,给父元素一个事件处理程序管理所有事件。
目的:减少内存和性能
例子:
<ul id = "lists">
<li>列表1</li>
<li>列表2</li>
<li>列表3</li>
<li>列表4</li>
<li>列表5</li>
<li>列表6</li>
</ul>
var lists = document.getElementById("lists");
lists.addEventListener("click",function(event){ //取到id添加事件监听
var target = event.target; //获取事件的目标
//防止父元素ul也触发事件
if(target.nodeName == "LI"){ //如果是li标签加红背景
target.style.backgroundColor = "red";
}
})
五.JQuery常用选择器
基本
$(“#id”)$(".class") $("div")
$(*)匹配所有
层次选择器
$("p,li,span")选中多个
$("div p")后代选择器
基本过滤选择器
$("p:first") 第一个p 同理:last :even :odd
$("p:eq(1)")选中index为1的元素
六.链式调用
Obj().init().setFlag();
obj=obj()
obj.init()
obj.setFlag()
- Obj.prototype = {
- init: function() {
- ...
- return this;
- },
- setFlag: function() {
- ...
- return this;
- }
- }
- 因为他每个结果都是返回this的所以可以继续返回他的原型
- 好处:节省代码量,代码优雅
- 问题:方法没有返回值
数组去重方法:
var aa = [1, 2, 3, 44, 44, 44];
function arr(a){
var result = []
for (var i = 0; i < a.length; i++) {
if (result.indexOf(a[i]) == -1) {
result.push(a[i])
}
}
console.log(result)
}
arr(aa)
评论