一、HTML标签书写有哪些规范?
- 页面编码。
- 文档声明。
- 关键字与描述。
- 行内元素不能包含块级元素。
- a标签不能嵌套a标签。
- 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必须闭合。
- 页面中不要用 进行缩进,如需缩进,用css控制。
- html标签使用必须语义化。
- 要为img标签填写alt和title属性。
二、HTML静态页面出现中文乱码如何解决?
引入<meta charset="UTF-8">
三、通常情况下块属性标签和行内属性标签各自都具有什么特点?
块属性标签:在没有设置css样式的情况下默认宽度占满整行,可以设置宽高。
多个行内属性标签在没有设置css样式的情况下会排列在一行,不可设置宽高。
四、css有几种引入方式?每一种具有哪些特点?
- 标签内引入:优先级最高,冗余代码多,代码量大,不易维护。
- 头部引入:加载速度快,没有服务器请求压力,相对于单页代码量少。代码量大,不易前后台沟通,不易改版与维护。
- 外部引入:一个css文件可控制多个页面,代码简洁,易于分工协作。有效利用缓存机制,外部引入中的href属性会给服务器造成请求的压力。
五、你如何理解绝对定位和相对定位?都用在什么地方?
当页面当中出现叠加时,可以使用绝对定位,或是解决多图浮动时,也可用绝对定位。
相对定位为绝对定位提供定位的原点,单独使用没有效果。
六、js和java的关系
java是一种严格的面向对象的程序设计语言,常用于开发基于Internet的应用程序。javascript是一种脚本语言,常用语网页中增强交互性和页面效果,以及进行数据校验等。java是sun公司的产品,而javascript是NetScape公司推出的,二者没有任何联系。
七、什么规范规定了js的语法
ECMAscript
八、js引入方式
- 使用<script></script>标签直接嵌入网页,一般放在head标签内,亦可以放在body标签内,只要保证这些代码在被调用前已读取并加载到内存即可。
- 使用外部的js文件,这样的好处是实现表现行为的分离、w3c非常提倡页面、样式、行为都分离,这样页面结构清晰,方便维护和团队的开发。在外部js文件中直接写js代码,引入方式是:<script type="text/javascript" src="a.js"></script>
- 直接作为某个标签的事件代码:<input type="button" value="确定" onclick="documet.write(‘hello‘)"/>
九、js命名规范
- 区别大小写。
- 首字符必须是字母、下划线或美元符号。
- 除了首字符以外的字符,可以由数字、字母、下划线、美元符号等组成。
- 不允许包含空格。
- 不能以关键字或保留字命名。
- 变量名必须为小写字母。
- 类的命名使用骆驼命名规则。
- 简写单词不能使用大写名称作为变量名。
- 方法的命名必须为动词或动词短语。
- 公有类的命名必须使用混合名称命名。
- css变量的命名必须使用其对应的相同的公共类变量。
- 私有类的变量属性成员必须使用混合名称命名,并在前面划下划线。
- 变量如果设置为私有,则前面必须添加下划线。
- 通用的变量必须使用与其名字一致的类型命名。
- 所有的变量名必须使用英文名称。
- 变量如有较广的作用域,必须使用全局变量,此时可以设计成一个类的成员。相对的如作用域较小或为私有变量则使用简洁的单词命名。
- 如果变量有其隐含的返回值,则避免使用其相似的方法。
- 公有变量必须清楚的表达其自身的属性,避免字义含糊不清。
- 类构造函数可以使用扩展其基类的名称命名,这样可以正确、迅速的找到其基类的名称。
十、js书写规范
- 文件编码统一为UTF-8。
- 书写过程中,每行代码结束必须有分号。
- 库引入,原则上仅引入jQuery库。
- 代码结构明了化,加适量注释,提高函数重用率。
- 注重与html分离,减少reflow,注重性能。
- 把外部js文件放在html底部,</body>前面。
- 优化循环。循环体中若有DOM操作,应该把DOM操作提到循环体外,在同一作用域内,DOM选择赋值给一局部变量。
- 避免混乱,建议在html中使用双引号,在js中使用单引号。
- 使用更简单的格式写innerscript。
- 避免混入其它技术,js不直接控制css样式的设置,控制classname。
- 避免全局变量。
- 声明变量总是用var。
- 获取对象属性的时候用方括号。
- 避免使用eval()方法。
- 不要省略 " 和 {}。
十一、js数据类型有哪些
Number 数字类型
String 字符串类型
Boolean 布尔类型
Function 函数
Object 对象
Null 空值
Undefined 没有定义类型
十二、i++ 和 ++i 的区别
++i 是先自增1后再参加运算,i++是参与运算后再加1。
十三、变量在js中进行==和===判断的区别是?
==是值相等
===是完全相等,包括类型
十四、break和continue的区别
break和continue语句用于在循环中精确的控制代码的执行。
break语句会立即退出循环,强制继续执行循环后的语句。
continue语句虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行。
十五、什么事全局变量,什么事局部变量。
将函数理解为盒子。
在函数内声明的变量,就是局部变量,在函数外部不能访问。
在函数外部声明的变量,就是全局变量,在函数内部可以访问。
十六、解释下作用域。
所有变量都存在于一个执行环境中(也称作用域),这个执行环境决定了变量的生命周期,以及那一部分代码可以访问其中的变量。总结:
- 执行环境有全局执行环境和函数执行环境。
- 每次进入一个新执行环境,都会创建一个用于搜索变量和函数的作用域。
- 函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其父环境,乃至全局环境。
- 全局环境只能访问在全局环境中定义的变量和函数,而不能直接访问局部环境中的任何数据。
- 变量的执行环境有利于确定应该何时释放内存。
十七、什么叫做页面重构。
页面重构可以理解为“将设计稿转换成web页面”,它可以简单到把pad图片直接做成网页,也可以复杂到需要考虑页面中每个标签的使用,考虑页面性能。工作内容一般是“设计稿-切图-写html和css”。页面重构和前端的关系可理解为:页面重构是前端工作的细化。
十八、标签的隐藏(display:none;和visibility:hidden;)的区别
display:none; 将元素设为none即没有,浏览器在解析none时,是不会作渲染动作的,即不占内存值。
visibility:hidden; 将元素设为隐藏,虽然在页面上看不出来,但是该占的位置还占着,浏览器依旧会对其作渲染动作,即会占用内存值。
欢迎留言~