1,不定宽高的元素垂直水平居中:flex布局 当display: flex时,表示该容器内部的元素将按照flex进行布局 justify-content:center (水平对齐方式) align-items:center (垂直对齐方式)。
CSS 不定宽高 :position:absolute;
left:50%;
margin-left:-50%;
top:50%;
margin-top:-50%;
2,css中一共有三种手段,使一个元素脱离标准文档流 :浮动 绝对定位 固定定位。
3,js对数组的操作: push: 向数组的末尾项增加一项 返回值是数组的新长度 pop:删除数组的末尾项 返回值是删除的数组项 sort:根据匿名函数 冒泡排序 concat:把一个数组和另一个拼接到一起。
4,js数组去重 重复的元素只保留一个 1.遍历数组法(indexOf方法) 思路:新建一个数组,遍历去要重的数组,当值不在新数组的时候(indexOf为-1)就加入该新数组中;
function unip (array){
var temp = [ ];//一个新的临时数组
for(var i=0; i<array.length; i++){
if(temp.indexOf(array[ i ])==-1){
temp.push(array[ i ]);
}
}
return temp:
}
var aa = [1,2,31,3,3,2,23,11,3,5,6];
console.log(uniq(aa));
5,清楚浮动常用:1:父级div定义高度 2:最后一个浮动元素后加一个空div标签 并添加clear:both 清除浮动
6,html5:比如图形的绘制 多媒体内容 更好的页面结构和形式处理HTML5的一大革新就是语义化标签的完善 article定义可以独立于内容其余部分的完整独立内容块,article元素就是专门为摘要设计的,比如一篇文章 header 一个内容区块或整个页面的头部部分 nav 页面中导航链接的部分 新的表单控件 :date time email url search css3:实先圆角(border-radius) 阴影(box-shadow) 旋转(transform)
7,js闭包:闭包就是一个函数 两个函数彼此嵌套 内部函数就是闭包形成 闭包条件是内部函数通过return给返回出来 闭包有权调用上下级环境的变量信息 同一个闭包机制可以创建多个 闭包函数出来 彼此没有关联 都是独立的 正常函数执行完毕后,里面声明的变量被垃圾回收处理掉,但是闭包可以让作用域里的 变量,在函数执行完之后依旧保持没有被垃圾回收处理掉 内部函数访问外部变量
function add1(){
count1 = count1+1;
console.log(count1);
}
add1();//确实实现了需求
8,浅拷贝和深拷贝 :浅, 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用 说白了就是浅拷贝都是相同的内存地址,你的值变了 我也跟着变。
componentDidMount(){
/*let a={age:25}
let b=a
b.age=30
console.log(a);
}
深,创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”深拷贝呢就是你变你的,我们地址都不一样的,你变了关我屁事
9,什么是作用域:浏览器给js的生存环境叫作用域。它是指对某一变量和方法具有访问权限的代码空间, 在JS中, 作用域是在函数中维护的。表示变量或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下文执行环境。Javascript的作用域只有两种:全局作用域和本地作用域,本地作用域是按照函数来区分的。查找量的过程。先找自己局部环境有没有声明或者是函数,如果有,则查看声明有无赋值或者是函数的内容,如果没有,则向上一级查找。通俗来说就是变量所能起到作用的范围,也就是变量能被访问到的范围。
10,
Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true
var html = $.ajax({ ajax==异步js加xml
url: "some.PHP",
async: false
}).responseText;
或者在全局设置Ajax属性
$.ajaxSetup({
async: false
});
再用post,get就是同步的了
11,For和foreach有什么区别::for语句在循环语句 中有着重要的位置,首先它计算一个初始化序列,然后当某个条件为真时,重复执行嵌套语句并计算一个迭代表达式序列;如果为 False,则退出 for循环, for语句常用于遍历数组集合 foreach循环专门用来遍历数组和集合的元素,foreach的工作原理是逐个枚举出数组或集合中的每一个元素,只要枚举一个元素就执行一次语句块中的内容,在使用 foreach变量循环的过程中要注意不可以更改遍历中的集合
12,js冒泡排序
var arr=[12,53,31,11,31,111,44,80];
var temp=0;
//外层循环控制比较的趟数
for(var i=0; i<arr.length-1;i++){
//内层循环比较每趟比较的次数
for(var j=0; j<arr.length-i-1; j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//遍历排序后的数组
for(var i=0; i<arr.length; i++){
document.write(arr[i]+" ");
}
13,事件委托
单行删除
$("table").on("click","delte,"function(){
$(this).parent().parent().remove();
});
前面是父元素 委托子元素