js面试后总结题

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]+"&nbsp;&nbsp;");

}

13,事件委托

单行删除 

$("table").on("click","delte,"function(){

$(this).parent().parent().remove();

});

前面是父元素 委托子元素

 

猜你喜欢

转载自www.cnblogs.com/lwxsyn/p/11199632.html