1、[HTML]在 input 里,name 有什么作用?
2、[CSS]块级元素和行内元素有什么区别?空(void)元素有那些?
3、[JS]JS 原型是什么?如何理解原型链?
1、在 input 里,name 有什么作用?
name属性:
规定input元素的名称,即name的取值代表为当前input元素起个名字;
用途:
(1)、name属性用于对提交到服务器后的表单数据进行标识,,或者在客户端通过 JavaScript 引用表单数据;
(2)、一些特殊元素的属性,比如input的type=“radio”分组,利用name属性控制同一组只能选一个radio;
(3)、建立页面中的锚点;
2、块级元素和行内元素有什么区别?空(void)元素有那些?
块级元素:
一般块级元素内可以包含行内元素和自身及其他块级元素;
独占一行,默认垂直向下排列;
默认宽度100%。
行内元素:
一般行内元素内只能包含自身和其他行内元素;
默认行内元素占据自身宽度空间,与其他行内元素在一条水平线上排列;
高度、宽度不可控,由内容决定。
空元素:
一般指的是无须闭合的标签:
、
、、 、、;
3、JS 原型是什么?如何理解原型链?
原型:
对象的默认属性和方法,每个对象都有原型(null
和undefined
除外)
JavaScript中,所有类型都是对象,分为普通对象和函数对象。
(1)、prototype
只有函数有,Object.prototype
中Object是一个全局对象,也是一个构造函数。
原因:
JS通过new来生成对象,如此一来,每次生成的对象都不一样,有时候需要在两个对象之间共享属性,由于JS在设计之初没有类的概念,所以JS使用函数的prototype
来处理这部分需要被共享的属性,通过函数的prototype
来模拟类,来实现共享属性。(当创建一个函数时,JS会自动为函数添加prototype
属性,值是一个有constructor
的对象)
说白了就是用来实现共享属性和继承的。
(2)、proto
对象都有,也指向构造函数的原型对象;
Object.getPrototypeOf(target)
全等于__proto__
;
__proto__
的值是它所对应的原型对象,是某个函数的prototype
。
原型链:
1、在JavaScript中,每个对象都有一个指向它的原型连对象;
2、对象的原型可能也是继承其他原型对象的prototype
,即目标对象的prototype
连接到的对象也有它自己的原型Object.prototype
;
3、一层一层连接下去的关系就是原型链。
原型链作用:
属性查找,如果想要访问对象的某个属性,会先在对象内部查找改属性,如果没有的话,会在该对象的原型里去找这个属性。