面试题
来源:互联网 发布:飞思卡尔arm编程软件 编辑:程序博客网 时间:2024/05/20 00:49
1简述一下src与href的区别
href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。
src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。
2简述同步和异步的区别
同步是阻塞模式,异步是非阻塞模式。
同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;
异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率
JS部分
1、怎样添加、移除、移动、复制、创建和查找节点?
1)创建新节点
createDocumentFragment() //创建一个DOM片段
createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点
2)添加、移除、替换、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替换
insertBefore() //插入
3)查找
getElementsByTagName() //通过标签名称
getElementsByName() //通过元素的Name属性的值
getElementById() //通过元素Id,唯一性
document.querySelector("选择器")//这个比较通用
2、实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。 递归
<script>
function clone(obj){
var o;
switch(typeof obj){
case "undefined":break;
case "string":o=obj+"";break;
case "number":o=obj-0;break;
case "boolean":o=obj;break;
case "object":if(obj===null){
obj=null
}else{
if(Object.prototype.toString.call(obj).slice(8, -1)==="Array"){
o=[];
for (var i = 0; i < obj.length; i++) {
o.push(clone(obj[i]));
};
}else{
o={};
for(key in obj){
o[key]=clone(obj[key]);
}
}
};break;
default :o=obj;break;
}return o;
}
console.log(clone(["1","2"]));
</script>
写一个function,清除字符串前后的空格。(兼容所有浏览器)
function trim(str) {
if (str & typeof str === "string") {
return str.replace(/(^s*)|(s*)$/g,""); //去除前后空白符
}
href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。
src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。
2简述同步和异步的区别
同步是阻塞模式,异步是非阻塞模式。
同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;
异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率
JS部分
1、怎样添加、移除、移动、复制、创建和查找节点?
1)创建新节点
createDocumentFragment() //创建一个DOM片段
createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点
2)添加、移除、替换、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替换
insertBefore() //插入
3)查找
getElementsByTagName() //通过标签名称
getElementsByName() //通过元素的Name属性的值
getElementById() //通过元素Id,唯一性
document.querySelector("选择器")//这个比较通用
2、实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。 递归
<script>
function clone(obj){
var o;
switch(typeof obj){
case "undefined":break;
case "string":o=obj+"";break;
case "number":o=obj-0;break;
case "boolean":o=obj;break;
case "object":if(obj===null){
obj=null
}else{
if(Object.prototype.toString.call(obj).slice(8, -1)==="Array"){
o=[];
for (var i = 0; i < obj.length; i++) {
o.push(clone(obj[i]));
};
}else{
o={};
for(key in obj){
o[key]=clone(obj[key]);
}
}
};break;
default :o=obj;break;
}return o;
}
console.log(clone(["1","2"]));
</script>
写一个function,清除字符串前后的空格。(兼容所有浏览器)
function trim(str) {
if (str & typeof str === "string") {
return str.replace(/(^s*)|(s*)$/g,""); //去除前后空白符
}
}
WEB前端学习交流群21 598399936
阅读全文
0 0
- 面试题....
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- Java多线程工具包java.util.concurrent---ReadWriteLock
- Qt中按照逆时针给一组坐标排序
- win7删除不了打印机该怎么办?win7删除打印机后刷新又出来的解决方法
- Ubuntu16.04 安装tensorflow+Fast-RCNN+cuda+cudnn过程
- AJAX参数介绍
- 面试题
- Android按钮按下的时候改变颜色实现方法
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-1)-- 卷积神经网络基础
- Maven学习
- AjaxDemo
- 【转】微服务MySQL分库分表数据到MongoDB同步方案
- Go实战--golang中使用echo框架、MongoDB、JWT搭建REST API(labstack/echo、gopkg.in/mgo.v2、dgrijalva/jwt-go)
- 程序员如何打造属于自己的云笔记服务
- CentOS搭建SVN服务器