第二篇
1.伪类与伪元素的区别?
1)定义区别
伪类:伪类用于选择dom树之外的信息,或是不能用简单选择器进行表示的信息。前者包含那些匹配指定状态的元素,比如
:visited,:active;后者包含那些满足一定逻辑条件的dom树中的元素,比如:firstr-child, :first-of-type,:target
伪元素:伪元素伪dom树没有定义的虚拟元素。不同于其他选择器,它不以元素为最小选择单位,它选择的是元素指定内容,比如
::before表示选择元素内容的之前内容。
2)语法区别
在css3中,伪类与伪元素在语法上也有区别,伪元素修改以::开头
3)伪类/伪元素一览表
【1】伪类
:active =>选择正在被激活的元素
:hover => 选择被鼠标悬浮着的元素
:link => 选择未被访问的元素
:visited => 选择已被访问的元素
:first-child => 选择满足是其父元素的第一个子元素的元素
:lang => 选择带有指定lang属性的元素
:focus => 选择拥有键盘输入焦点的元素
:enable => 选择每个已启动的元素
:disable => 选择每个已禁止的元素
:checked => 选择每个被选中的元素
:target => 选择当前的锚点元素
【2】伪元素如下:
::first-letter => 选择指定元素的第一个单词
::first-line => 选择指定元素的第一行
::after => 在指定元素的内容后面插入内容
::before => 在指定元素的内容前面插入内容
::selection => 选择指定元素中被用户选中的内容
2.css样式优先级,各自的权重
优先级:
important > 内联样式 > id选择器 >伪类、属性选择器、类选择器>元素(类型)选择器>通用选择器(*)
权重:
1.第一等:代表内联样式,如:style="",权值为1000。
2.第二等:代表id选择器,如:#content,权值为100。
3.第三等:代表伪类和属性选择器,如.content,权值为10
4.第四等:代表类型选择器和伪元素选择器,如div p,权值为1。
3.常见的dom操作有哪些?
主要操作包括:查找节点、新建节点、添加节点、删除节点、修改节点;
1)dom常用操作举例
// 查找节点
document.getelementbyid('id属性值'); //返回拥有指定id的第一个对象的引用
document.getelementbyclassname('class属性值');// 返回拥有指定class的对象集合
2)新建节点:
// 创建新的元素节点
document.createelement('元素名');
// 创建新的属性节点
document.createattribute('属性名');
var h1 = document.getelementsbytagname("h1")[0];
var att = document.createattribute("class");
att.value = "democlass";
h1.setattributenode(att);
// 创建新的文本节点
document.createtextnode('文本内容');
var t = document.createtextnode("hello world");
document.body.appendchild(t);
// 创建新的注释节点
document.createcomment('注释节点');
3)添加节点
var element = document.getelementsbytagname('p')[0];
element.innerhtml = ‘新增文本内容’; //插入文本内容
4)删除节点
parentnode.removechild( existingchild ); // 删除已有的子节点,返回值为删除节点
element.removeattribute( ' 属性名' ); // 删除具有指定属性名称的属性,无返回值
element.removeattributenode( attrnode ); // 删除指定属性,返回值为删除的属性
// given:<div id="top" align="center" />
var d = document.getelementbyid("top");
var d_align = d.getattributenode("align");
d.removeattributenode(d_align);
// align is now removed: <div id="top" />
5)修改节点
// 添加属性节点,修改属性值
element.setattribute( attributename, attributevalue );
6) 属性节点
// 增添id属性,并修改class属性值
var element = document.getelementsbytagname('p')[0];
// 添加属性节点
var attr = document.createattribute('id');
attr.value = 'idvalue';
element.setattributenode(attr);
// 修改属性值
var attr = document.createattribute('class');
attr.value = 'classnewvalue';
element.setattributenode(attr);
7)dom事件
允许javascript对html事件作出反应,主要包括
onclick => 当用户点击时
onload => 用户进入
onmouseover => 鼠标移入
onmouseout => 鼠标移出
onmousedown => 鼠标按下
onmouseup => 鼠标抬起
8)判断数据类型有哪些方法?
1)typeof
typeof是一个操作符,其右侧跟一个一元表达式,并返回这个表达式的数据类型。返回的结果用该类型的字符串(全小写字母)形式表示
,包括以下7种:number、boolean、symbol、string、object、undefined、function等。
2)instanceof
instanceof是用来判断a是否为b的实例,表达式为:a instanceof b,如果a是b的实例,则返回true。否则返回false。在这里需要特别注意的是
:instanceof检测的是原型
3)constructor
当一个函数f被定义时,js引擎会为f添加prototype原型,然后再在prototype上添加一个constructor属性,并让其指向f的引用。
4)tostring
tostring() 是 object 的原型方法,调用该方法,默认返回当前对象的 [[class]]点击并拖拽以移动 。这是一个内部属性,其格式为 [object xxx] ,其中 xxx 就是对象的类型。对于 object 对象,直接调用 tostring() 就能返回 [object object] 。而对于其他对象,则需要通过 call / apply 来调用才能返回正确的类型信息。
5.介绍一下js的基本数据类型
undefined、null、boolean、number、string
6.介绍一下js有哪些内置对象?
object是javascript中所有对象的父对象
数据封装类对象:object、array、boolean、number、string
其他对象:function、argument、math、date、regexp、error
7.push()-pop()-shift()-unshift()分别是什么功能?
// push 方法 // 将新元素添加到一个数组中,并返回数组的新长度值 var a = [1,2,3,4]; a.push(5); // pop 方法 // 移除数组中的最后一个元素并返回该元素 var a = [1,2,3,4]; a.pop(); // shift 方法 // 移除数组中的第一个元素并返回该元素 var a = [1,2]; a.shift(); // unshift 方法 // 将指定的元素插入数组开始位置并返回该数组的长度 var a = [1,2]; a.unshift(0);
8.null和undefined有何却别?
1)null 表示一个对象被定义了,值为“空值”;undefined表示不存在这个值。
2)undfined:是一个表示“无”的原始值或者说表示“缺少值”,就是此处应该有一个值,但是还没有定义。当尝试读取时会返回undfined;例如变量被声明了,但没有赋值
,就等于undefined。
3)注意:在验证null时,一定要使用 ===,因为 == 无法分别null和undefined
9.new操作符具体干了什么?
(1)创建一个新对象;
(2)将构造函数的作用域赋给新对象(因此this就指向了这个新对象);
(3)执行构造函数中的代码(为这个新对象添加属性);
(4)返回新对象
10.你对json了解吗?
1)json(javascript object notation)是一种轻量级的数据交换格式。
2)它是基于javascript的一个子集对象。数据格式简单,易于读写,占用宽带小。
3)2个api。json.parse() => 将对象转换成字符串。json.stringify() => 将字符串转换成对象。
转自:http://www.itlike.com/article
上一篇: STL之deque用法