前端一些面试问题3

DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
DOM操作——怎样添加、移除、移动、复制、创建和查找节点。

1.创建新节点

  createDocumentFragment()

  createElement()

  createTextNode()

2.添加、移除、替换

  appendChild()

  removeChild()

  replaceChild()

  insertBefore()

3.查找

  getElementsByTagName()

  getElementsByName()

  getElementById()

---------------------------------------------------------------------
事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。

1.冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。

  IE 5.5: div -> body -> document

  IE 6.0: div -> body -> html -> document

  Mozilla 1.0: div -> body -> html -> document -> window

2.捕获型事件(event capturing):事件从最不精确的对象(document 对象)开始触发,然后到最精确(也可以在窗口级别捕获事件,不过必须由开发人员特别指定)。

3.DOM事件流:同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生。两种事件流会触及DOM中的所有对象,从document对象开始,也在document对象结束。

  DOM事件模型最独特的性质是,文本节点也触发事件(在IE中不会)。

------------------------------------------------------------------------

事件处理函数/监听函数

IE:

在IE中,每个元素和window对象都有两个方法:attachEvent()和detachEvent()。事件处理函数总是按照添加它们的顺序进行调用。

DOM:

DOM方法addEventListener()和removeEventListener()用来分配和移除事件处理函数。与IE不同,这些方法需要三个参数:事件名称,要分配的函数和处理函数是用于冒泡阶段还是捕获阶段。如果事件处理函数是用于捕获阶段,第三个参数为true;用于冒泡阶段,则为false。

如果使用addEventListener()将事件处理函数加入到捕获阶段,则必须在removeEventListener()中指明是捕获阶段,才能正确的将这个事件处理函数删除。

-------------------------------------------------------------------------------

事件对象

在IE中,事件对象是window对象的一个属性event,event对象只能在事件发生时访问。所有的事件处理函数执行完毕后,事件对象就被销毁。

DOM标准,event对象必须作为唯一的参数传递给事件处理函数。

区别:

1.获取目标:位于事件中心的对象称为目标

  在IE中,目标包含在event对象的srcElement属性中:var oTarget = oEvent.srcElement;

  在DOM兼容的浏览器中,目标包含在target属性中:var oTarget = oEvent.target;

2.获取字符代码

3.阻止某个事件的默认行为

  在IE中要阻止某个事件的默认行为,必须将returnValue属性设置为false:oEvent.returnValue = false;

  在Mozilla中,只要调用preventDefault()方法:oEvent.preventDefault();

 4.停止事件复制(冒泡)

  IE:oEvent.cancelBubble = true;

  mozilla: oEvent.stopPropagation();
------------------------------------------------------------------------------------------

XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。

XMLHttpRequest 对象提供了在网页加载后与服务器进行通信的方法。

 

<script type="text/javascript">
var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp
=null;
if (window.XMLHttpRequest)
{
// code for all new browsers
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
// code for IE5 and IE6
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange
=state_Change;
xmlhttp.open(
"GET",url,true);
xmlhttp.send(
null);
}
else
{
alert(
"Your browser does not support XMLHTTP.");
}
}

function state_Change()
{
if (xmlhttp.readyState==4)
{
// 4 = "loaded"
if (xmlhttp.status==200)
{
// 200 = OK
// ...our code here...
}
else
{
alert(
"Problem retrieving XML data");
}
}
}
</script>

 

 

------------------------------------------------------------------------------------------- 
严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。

在标准模式中,浏览器根据规范呈现页面;

在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。

浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。如果XHTML文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。对于HTML 4.01文档,包含严格DTD的DOCTYPE常常导致页面以标准模式呈现。包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。

-------------------------------------------------------------------------------------------
盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。

 
块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。

 


浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。

 


HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。

 
JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。

JSON建构于两种结构:
“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

转载于:https://www.cnblogs.com/sweetie/archive/2010/12/08/1900578.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server安全(6/11):执行上下文与代码签名(Execution Context and Code Signing)

在保密你的服务器和数据&#xff0c;防备当前复杂的攻击&#xff0c;SQL Server有你需要的一切。但在你能有效使用这些安全功能前&#xff0c;你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础&#xff0c;因此你可以对SQL Server里的安全功能充分利用&#xf…

索引超出数组界限是什么意思_从V8源码分析一个JS 数组的内存占用问题

前段时间&#xff0c;在排查一个问题的时候&#xff0c;遇到了一个有点令人困惑的情况&#xff0c;有下面这两段代码&#xff1a;const a new Array(99999); a[99998] undefined;const b new Array(99999); b[99999] undefined;我们通过 node --inspect-brk 来分别运行这两…

浅谈PVID和VID区别

PVID和VID彻底研究&#xff08;上&#xff09;——PVID的作用及和VID的区别Pvid和Vid经常出现于二、三层交换机里&#xff0c;由于PVID和VID的设置不合理&#xff0c;造成VLAN划分变得混乱。本文就对PVID和VID进行了彻底研究。pvid是交换机上的概念,说的是进入该端口的报文如果…

C语言打印九九乘法口诀

一.代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {int i 0;int j 0;for (i 1; i < 10; i){for (j 1; j < i; j){printf("%d*%d%-2d", i, j, i * j);}printf("\n");}return 0; }二.运行结果

设计模式系列之十二:单例模式

前言 1.描述 Singleton(单例)是设计模式的一种,为了保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 2.主要特点 1)单例类确保自己只有一个实例(构造函数私有:不被外部实例化,也不被继承)。 2)单例类必须自己创建自己的实例。 3)单例类必须为其他对象提供唯…

python double free_python错误:double free或corruption(out):0x0000000001e4b030

dataset" rel"nofollow noreferrer">Code &sourceubuntu 16.04GNU收音机3.7.12UHD 3.10.1.1数字1.13.1压缩比0.19.1当我用Gnuradio生成一个数据集时&#xff0c;我遇到了这个问题&#xff0c;这些代码在我换另一台计算机之前一直运行良好&#xff0c;我搜…

myeclipse 8.5最新注册码(过期时间到2016年)

转自&#xff1a;http://hi.baidu.com/bagewell/item/c68cd0c4251d661f515058d4 Subscriber:huazai Subscription Code:uLR8ZC-855550-61565856301609203 Subscriber:feifei Subscription Code:sLR8ZC-855550-61565856701742177 Subscriber:kobe …

python 多线程读写文件错误_python多线程老是报错。大神帮忙看看哈?

以下是代码&#xff1a;importthreadingimporttimeproducts[]conditionthreading.Condition()classConsumer(threading.Thread):defconsume(self):globalconditionglobalproductsconditon.acqu...以下是代码&#xff1a;import threadingimport timeproducts[]condition threa…

内向的人很难成为群体程序员吗?

Aaron Griffith是一名来自Hunter Industries的程序员分析师。近日&#xff0c;他在博文“群体编程之于内向的人”中分享了他作为群体编程团队成员的经验。根据高级顾问Woody Zuill&#xff08;敏捷专家\u0026amp;教练&#xff09;的定义&#xff0c;“群体编程&#xff08;Mob …

自动机理论、形式语言和计算导论提纲

我真的是觉得这门课太虚了。。这个总结基于名教材《自动机理论、语言和计算导论》&#xff08;机械工业&#xff09;&#xff0c;也可以说是这本书的总结。由于这门课里很多罗马字母&#xff0c;打字很困难所以能省略的公式都不写了&#xff0c;可以算是入门介绍了。这里省略的…

C语言函数实现交换两个整型变量

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> void Swap(int* pa, int* pb) {int temp 0;temp *pb;*pb *pa;*pa temp; }int main() {int a 20;int b 30;printf("交换前a%d b%d\n", a, b);Swap(&a,&b);printf…

每日英语:Why Sit Up Straight?

Stop for a second and notice the way you are sitting. Back curved, shoulders slumped, maybe legs crossed? For people who spend the day staring at a computer screen, this position is fairly typical. But what is it doing to your spine, if anything? Do we n…

python如何跳出外层循环_失去循环标签的Python,我这样实现跳出外层循环

不完美的Python自从各类Python大火&#xff0c;感觉天上地下哪儿都有Python的一席之地&#xff0c;Python功夫好啊…但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。跳出外层循环大家都知道&#xff0c;在Java中存在标签的概念&#xff0c;当我们存在多层循环…

Spring装配Bean的过程

首先说一个概念&#xff1a;“懒加载” 懒加载&#xff1a;就是我们在spring容器启动的是先不把所有的bean都加载到spring的容器中去&#xff0c;而是在当需要用的时候&#xff0c;才把这个对象实例化到容器中。 spring配置文件中bean默认是lazy-init“false”为非懒加载。下面…

Oracle 中间件云服务器系统 ExaLogic X2 - 2 和 T3-1B概述

甲骨文公司宣布推出Oracle中间件云服务器 T3-1B&#xff0c;该新模式可为Oracle 中间件云服务器的集成系统提供SPARC Solaris服务器业界领先的性能、扩展性和可用性。 旨在为大型和关键任务部署而设计&#xff0c;Oracle 中间件云服务器是一个由甲骨文测试和调试而专门设计的软…

几个常用的Linux操作系统监控脚本

为大家提供五个常用Linux监控脚本(查看主机网卡流量、系统状况监控、监控主机的磁盘空间,当使用空间超过90&#xff05;就通过发mail来发警告、监控CPU和内存的使用情况、全方位监控主机)&#xff0c;有需要的朋友不妨看看哦 1、查看主机网卡流量 #!/bin/bash#network#Mike.Xuw…

linux下面的查找

locate&#xff1a;速度快不是实时的&#xff0c;每天定时执行把结果导入数据库模糊匹配updatedb --手动生成文件数据库&#xff0c;执行时间较长find&#xff1a;实时查找精确速度慢支持众多查找标准find 查找路径 查找标准 处理动作查找路径&#xff1a;默认当前目录查找标…

python常用数学符号_数学菜鸟的AI学习攻略-AI学习常用数学符号 - 老牛博客

[ 导读 ]自学AI的过程中&#xff0c;我们非常需要理解这些数学符号。它可以让你用一种非常简洁的方式来表达一个复杂的想法。你是否跟我一样&#xff0c;自幼恨透数学。现在&#xff0c;我终于发现了我对数学绝缘的最主要原因&#xff1a;我的老师从来不去回答最重要的问题&…

输入法智能化发展历程

技术发展周期一般会持续十年的时间&#xff0c;我们现在已经进入移动互联网周期的早期阶段&#xff0c;这是过去的50 年来的第5 个发展周期&#xff1a;20世纪60 年代&#xff0c;大型机时代&#xff1b;20世纪70年代&#xff0c;小型机时代&#xff1b;20世纪80 年代&#xff…

线程类C++多线程框架(一)--------- new一下就启动一个线程

之前笔者几篇文章介绍了改线程类的文章. 关联文章的地址 几年前写过一个C的多线程框架&#xff0c;虽然写完了&#xff0c;但是人一懒做了一次说明以后就没影了&#xff0c;最近把代码整顿了一下&#xff0c;预备发到github上&#xff0c;在这里&#xff0c;再把这个框架总结一…