WEB前端基础

1JavaScript中的“=、==、===”区别

=:即赋值运算;

==:判断两个变量是否相同,仅限于值,如果值相同而类型不同,那么JavaScript引擎会在内部做类型转换;

===:判断两个变量是否相同,无论是值还是类型,如果类型不同而值相同,也会返回false,而引擎不会在内部进行转换。

 

2JavaScript中的“undefined、null”区别

通俗地讲,undefined出现的原因是JavaScript引擎不知道这是个什么东西,而对于null,JavaScript引擎识别了它,但是没有被分配内存空间。

undefined的类型就是undefined,而null的类型是object。

 

3、简述javascript的作用域和闭包

js变量的作用域是指:函数内定义的局部变量只在此函数内有效,而全局变量可以全局有效。

闭包的作用就在于能够改变局部变量的作用域,将值保存下来,但是如果使用不当会造成无法回收变量,引起性能问题,甚至崩溃。

 

4、对web标准以及w3c的理解和认识

标签闭合,标签小写,不乱嵌套,提高搜索机器人搜索几率。使用外链css和js脚本,结构行为表现分离,内容能被更多广泛的设备所访问,更少的代码和组件,容易维护,改版方便,不需要变动页面内容。

 

5Html和xhtml有什么区别

html是一种基本的web网页设计语言,xhtml是一个基于XML的置标语言。

最主要的不同:

XHTML元素必须正确的被嵌套,元素必须关闭,标签必须小写,必须有根元素。

 

6、严格模式和混杂模式的区分,以及如何触发这2种模式

严格模式就是浏览器根据web标准去解析页面,是一种要求严格的DTD,不允许使用任何表现层的语法。

混杂模式是一种向后兼容的解析方法。

触发标准模式或者说严格模式很简单,就是Html前申明正确的DTD,出发混杂模式可以在html文档开始不声明DTD,或者在DOCTYPE前加入XML声明。

 

7、行内元素有哪些?块级元素有哪些CSS盒模型

行内元素: br span input a

块级元素IV P H1 H2 FORM ul

CSS盒模型内容:padding border margin

 

8css引入的方式有哪些?link和@import的区别

引入方式3种:行内添加定义style属性值,页面头部内内嵌调用和外链调用,

区别:

1.link是xhtml标签,除了加载css外,还可以定义RSS等其他事务,@import只能加载CSS

2.link引用CSS时候,页面载入的时候同时加载,@import需要页面网页完全载入后加载

3.link是XHTML标签,没有兼容问题,@import是在CSS2.1提出的,低版本的浏览器不支持。

4.link支持使用javascript控制DOM去改变样式,但是@import不支持。

 

9CSS选择符有哪些?优先级算法如何计算?内联和Important哪个优先级高

CSS选择符有类选择符,属性选择符,ID选择符,优先级算法是基于特殊性值进行计算的。分别如下:ID属性 0.1.0.0

类属性选择器,属性选择器,伪类 0.0.1.0 元素选择符,伪元素选择符 0.0.0.1

通配选择器对特殊性没有任何贡献值。

important优先级高

10、前端页面有哪三层构成,分别是什么,作用是什么?

结构层:html 表示层:css 行为层:js

 

11、页面的哪些浏览器你测试过,分别内核是什么?

IE: trident内核

Firefox:gecko内核

Safari:webkit内核

Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核

Chrome:Blink(基于webkit,Google与Opera Software共同开发)

 

12img标签上的title和alt属性区别是什么

alt是当图片不能正常显示的时候,用文字代替

title该属性提供信息

 

13、你如何对网站的文件和资源进行优化?

文件合并

文件最小化/文件压缩

使用CDN托管

缓存的使用

 

14、什么是语义化的HTML

直观的认识标签

对于搜索引擎的抓取有好处

 

15、清除浮动的几种方式,各自的优缺点?

使用空标签清除浮动 clear:both(理论上能清楚任何标签,增加无意义的标签)

使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,使用zoom:1用于兼容IE)

使用afert伪元素清除浮动(用于非IE浏览器)

 

16javascript的typeof返回哪些数据类型

Object number function boolean underfind

 

17、例举3种强制类型转换和2种隐式类型转换

强制(parseInt,parseFloat,number)

隐式(== – ===)

 

18split() join() 的区别

前者是切割成数组的形式,后者是将数组转换成字符串

 

19、数组方法pop() push() unshift() shift()

Push()尾部添加 pop()尾部删除

Unshift()头部添加 shift()头部删除

 

20、闭包是什么,有什么特性,对页面有什么影响?

闭包就是能够读取其他函数内部变量的函数。

 

21、解释jsonp的原理,以及为什么不是真正的ajax

动态创建script标签,回调函数

Ajax是页面无刷新请求数据操作

 

22.javascript的本地对象,内置对象和宿主对象

本地对象为array obj regexp等可以new实例化

内置对象为gload Math 等不可以实例化的

宿主为浏览器自带的document,window 等

 

23document load 和document ready的区别

Document.onload 是在结构和样式加载完才执行js

Document.ready原生种没有这个方法,jquery中有 $().ready(function)

 

24javascript的同源策略

一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合

 

25、编写一个数组去重的方法

function oSort(arr)

{

var result ={};

var newArr=[];

for(var i=0;i<arr.length;i++)

{

if(!result[arr])

{

newArr.push(arr)

result[arr]=1

}

}

return newArr

}

 

26jQuery中有哪几种类型的选择器?

从我自己的角度来讲,可以有3种类型的选择器,如下:

基本选择器:直接根据id、css类名、元素名返回匹配的dom元素。

层次选择器:也叫做路径选择器,可以根据路径层次来选择相应的DOM元素。

过滤选择器:在前面的基础上过滤相关条件,得到匹配的dom元素。

 

 

27、请使用jQuery将页面上的所有元素边框设置为2px宽的虚线?

这正是jQuery选择器上场的时候了,代码如下:

<script language="javascript" type="text/javascript">

         $("*").css("border", "2px dotted red");

</script>

 

28、当CDN上的jQuery文件不可用时,该怎么办?

为了节省带宽和脚本引用的稳定性,我们会使用CDN上的jQuery文件,例如google的jquery cdn服务。但是如果这些CDN上的jQuery服务不可用,我们还可以通过以下代码来切换到本地服务器的jQuery版本:

<script type="text/javascript" language="Javascript" src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.4.1.min.js "></script>

<script type='text/javascript'>//<![CDATA[

if (typeof jQuery == 'undefined') {

document.write(unescape("%3Cscript src='/Script/jquery-1.4.1.min.js' type='text/javascript' %3E%3C/script%3E"));

}//]]>

</script>

 

29、怎样用jQuery编码和解码URL?

在jQuery中,我们可以使用以下方法实现URL的编码和解码。

encodeURIComponent(url) and decodeURIComponent(url)

 

30、如何用jQuery禁用浏览器的前进后退按钮?

实现代码如下:

<script type="text/javascript" language="javascript">

 

$(document).ready(function() {

     window.history.forward(1);

     //OR

     window.history.forward(-1);

});

 

</script>

 

31、你为什么要使用jquery?

因为jQuery是轻量级的框架,大小不到30kb,它有强大的选择器,出色的DOM操作的封装,有可靠的事件处理机制(jQuery在处理事件绑定的时候相当的可靠),完善的ajax(它的ajax封装的非常的好,不需要考虑复杂浏览器的兼容性和XMLHttpRequest对象的创建和使用的问题。) 出色的浏览器的兼容性。 而且支持链式操作,隐式迭代。行为层和结构层的分离,还支持丰富的插件,jquery的文档也非常的丰富。

 

32jquery对象和dom对象是怎样转换的?

jquery转DOM对象:jQuery 对象是一个数组对象,可以通过[index]的丰富得到相应的DOM对象还可以通过get[index]去得到相应的DOM对象。DOM对象转jQuery对象:$(DOM对象)

 

33、你是如何使用jquery中的ajax的?

如果是一些常规的ajax程序的话,使用load(),$.get(),$.post(),就可以搞定了,一般我会使用的是$.post() 方法。如果需要设定beforeSend(提交前回调函数),error(失败后处理),success(成功后处理)及complete(请求完成后处理)回调函数等,这个时候我会使用$.ajax()

 

34、你觉得jquery中的ajax好用吗,为什么?

好用的。 因为jQuery提供了一些日常开发中的快捷操作,例 load,ajax,get,post等等,所以使用jQuery开发ajax将变得极其简单,我们就可以集中精力在业务和用户的体验上,不需要去理会那些繁琐的XMLHttpRequest对象了。

 

35jquery中$.get()提交和$.post()提交有区别吗?

$.get() 方法使用GET方法来进行异步请求的。$.post() 方法使用POST方法来进行异步请求的。

get请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给Web服务器的,这种传递是对用户不可见的。

get方式传输的数据大小不能超过2KB 而POST要大的多

GET 方式请求的数据会被浏览器缓存起来,因此有安全问题。

 

36在jquery中你是如何去操作样式的?

addClass() 来追加样式 ,removeClass() 来删除样式,toggle() 来切换样式

 

37、你使用过jquery中的动画吗,是怎样用的?

使用过。

hide() 和 show() 同时修改多个样式属性。像高度,宽度,不透明度。 fadeIn() 和fadeOut() fadeTo() 只改变不透明度

slideUp() 和 slideDown() slideToggle() 只改变高度

animate() 属于自定义动画的方法

 

38jQuery是如何处理缓存的?

要处理缓存就是禁用缓存。

通过$.post() 方法来获取数据,那么默认就是禁用缓存的。

通过$.get()方法 来获取数据,可以通过设置时间戳来避免缓存。可以在URL后面加上+(+new Date)例 $.get('ajax.xml?'+(+new Date),function () { //内容 }); 3 通过$.ajax 方法来获取数据,只要设置cache:false即可。

 

39$.getScript()方法 和 $.getJson() 方法有什么区别?

$.getScript() 方法可以直接加载.js文件,并且不需要对javascript文件进行处理,javascript文件会自动执行。

$.getJson() 是用于加载JSON 文件的 ,用法和$.getScript()

 

40、你使用过哪些数据格式,它们各有什么特点?

HTML格式 ,,JSON格式,javascript格式,XML格式

HTML片段提供外部数据一般来说是最简单的。

如果数据需要重用,而且其他应用程序也可能一次受到影响,那么在性能和文件大小方面具有优势的JSON通常是不错的选择。

而当远程应用程序未知时,XML则能够为良好的互操作性提供最可靠的保证。

 

41jQuery 能做什么?

获取页面的元素 

修改页面的外观

改变页面大的内容

响应用户的页面操作

为页面添加动态效果

无需刷新页面,即可以从服务器获取信息

简化常见的javascript任务

 

42、在ajax中data主要有几种方式?

三种,html拼接的,json数组,form表单经serialize()序列化的。

 

43、你知道jQuery中的事件冒泡吗,它是怎么执行的,如何来停止冒泡事件?

知道,事件冒泡是从里面的往外面开始触发。在jQuery中提供了stopPropagation()方法可以停止冒泡。

 

44、Ajax原理

简述: Ajax的原理就是:通过javascript的方式,将前台数据通过xmlhttp对象传递到后台,后台在接收到请求后,将需要的结果,再传回到前台,这样就可以实现不需要页面的回发,页是数据实现来回传递,从页实现无刷新。

Ajax的原理简单来说,实际上就是通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。

这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。

总结:我们可以看出,XMLHttpRequest对象完全用来向服务器发出一个请求的,它的作用也局限于此,但它的作用是整个ajax实现的关键,我们可以把服务器端看成一个数据接口,它返回的是一个纯文本流,当然,这个文本流可以是XML格式,可以是Html,可以是Javascript代码,也可以只是一个字符串。这时候,XMLHttpRequest向服务器端请求这个页面,服务器端将文本的结果写入页面,这和普通的web开发流程是一样的,不同的是,客户端在异步获取这个结果后,不是直接显示在页面,而是先由javascript来处理,然后再显示在页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值