1.浏览器在一次 HTTP 请求中,需要传输一个 4097 字节的文本数据给服务端,可以采用那些方式?
-
存入 IndexdDB
-
写入 COOKIE
-
放在 URL 参数
-
写入 Session
-
使用 POST(这是正确的)
-
放在 Local Storage
附:IndexdDB 是 HTML5 的本地存储,把一些数据存储到浏览器(客户端)中,当与网络断开时,可以从浏览器中读取数据,用来做一些离线应用。
Cookie 通过在客户端 ( 浏览器 ) 记录信息确定用户身份,最大为 4 kb 。
url 参数用的是 get 方法,从服务器上获取数据,大小不能大于 2 kb 。
Session 是服务器端使用的一种记录客户端状态的机制 。
post 是向服务器传送数据,数据量较大。
local Storage 也是 HTML5 的本地存储,将数据保存在客户端中(一般是永久的)。
2.css 中可继承的属性有哪些
附:肯定有很多人不知道什么是继承,继承就是指子节点默认使用父节点的样式属性。
不可继承的属性太多了不要背,记住可以继承的属性有哪些就行了。可以继承的属性很少,只有颜色,文字,字体间距行高对齐方式,和列表的样式可以继承。这么来记很轻松的呀!不要被下边的吓到了哦~
所有元素可继承:visibility和cursor。 内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction。 终端块状元素可继承:text-indent和text-align。 列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。
3.HTML5 提供两种新对象,通过 javascript API 来存储本地数据,这两种对象是()。
-
localStorage和sessionStorage
附:Web Storage分类
Web Storage实际上由两部分组成:sessionStorage与localStorage。
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。
localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
4.下列全部属于css单位的是
附:PX
px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。
PX特点
-
1. IE无法调整那些使用px作为单位的字体大小;
-
2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位;
-
3. Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核)。
EM
em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。
EM特点
-
1. em的值并不是固定的;
-
2. em会继承父级元素的字体大小。
注意:任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。
所以我们在写CSS的时候,需要注意两点:
1. body选择器中声明Font-size=62.5%;
2. 将你的原来的px数值除以10,然后换上em作为单位;
3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明。
也就是避免1.2 * 1.2= 1.44的现象。比如说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px。
REM
rem是CSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。下面就是一个例子:
1 |
|
注意: 选择使用什么字体单位主要由你的项目来决定,如果你的用户群都使用最新版的浏览器,那推荐使用rem,如果要考虑兼容性,那就使用px,或者两者同时使用。
px 与 rem 的选择?
对于只需要适配少部分手机设备,且分辨率对页面影响不大的,使用px即可 。
对于需要适配各种移动设备,使用rem,例如只需要适配iPhone和iPad等分辨率差别比较挺大的设备。
5.如果需要匹配包含文本的元素,用下面哪种方法来实现?
-
text()
-
contains()(这个是正确的)
-
input()
-
attr(name)
附:都是jquery的方法:text()是设置或返回被选元素的文本内容
:contains选择器,选取包含指定字符串的元素,字符串也可以是文本
:input()选择器,选取表单元素
attr(name,value)属性操作,设置或返回被选元素的属性和属性值
6.javascirpt中的数字在计算机内存储为多少Byte?
-
8Byte
附:关于Javascript中数字的部分知识总结:
1.Javascript中,由于其变量内容不同,变量被分为基本数据类型变量和引用数据类型变量。基本类型变量用八字节内存,存储基本数据类型(数值、布尔值、null和未定义)的值,引用类型变量则只保存对对象、数组和函数等引用类型的值的引用(即内存地址)。
2. JS中的数字是不分类型的,也就是没有byte/int/float/double等的差异。
7.关于跨域问题下面说法正确的是?()
-
可以利用flash的http请求,来处理跨域问题
-
通过iframe设置document.domain可以实现跨域(这是正确的)
-
一般情况下,m.toutiao.com可以ajax请求www.toutiao.com域名下的接口并获得响应
-
通过jsonp方式可以发出post请求其他域名下的接口
附:1.flash,不会
2.正确
3.域名不同不能使用ajax
4.jsonp方式不可以发出post请求其他域名下的接口。
JSONP的优点是:它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制;它
的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支
持;并且在请求完毕后可以通过调用callback的方式回传结果。
JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨域
HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。
8.关于 this 的工作原理,下面 4 种情况的描述哪一个是错误的?()
-
在全局范围内,this指向全局对象(浏览器下指window)
-
对象函数调用时,this指向当前对象
-
全局函数调用时,this指向全局函数(这是正确的)
-
使用new实例化对象时,this指向新创建的对象
附:this有四种情况!
1)当在函数调用的时候指向widow
2)当方法调用的时候指向调用对象
3)当用apply和call上下文调用的时候指向传入的第一个参数
4)构造函数调用指向实例对象
9.
附:$.post(url)是ajax请求; ajax的事件是: ajaxComplete(callback) ajaxError(callback) ajaxSend(callback) ajaxStart(callback) ajaxStop(callback) ajaxSuccess(callback)
10.下面属于javascript基本数据类型的有?
ECMAScript
中有5中简单数据类型(也称为基本数据类型): Undefined
、Null
、Boolean
、Number
和String
。还有1中复杂的数据类型————Object
,Object
本质上是由一组无序的名值对组成的。
其中Undefined
、Null
、Boolean
、Number
都属于基本类型。Object
、Array
和Function
则属于引用类型,String
有些特殊。
typeof六种返回格式:(1)、"undefined"——未申明,或者变量的值即为undefined或者未初始化;
(2)、"boolean" ——如果这变量的值是布尔类型;
(3)、"string" ——值是字符串类型;
(4)、"number" ——值是数字类型;
(5)、"object" ——对象或者值为null;
(6)、"function" ——函数。
11.假设val已经声明,可定义为任何值。则下面js代码有可能输出的结果为:
console.log('Value is ' + (val != '0') ? 'define' : 'undefine');
-
define
附: 加号优先级高于 三目运算。低于括号。 所以括号中无论真假 加上前边的字符串都为 TRUE 三目运算为TRUE是 输出 define
12.javascript中document.getElementById的返回值的类型为()
-
Object
附:getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用。
13.假设有如下代码,那么a(10)的返回结果是?( )
function a(a)
{
a^=(1<<4)-1;
return a;
}
-
5
附:1<<4 左移相当于1*2^4=16
a^=16-1=15
a=a^15=10^15
^ 异或运算:
10的二进制00001010
15的二进制00001111
========>00000101 转成十进制:5
(按位异或运算,同为1或同为0取0,不同取1)
14.要在10秒后调用checkState,下列哪个是正确的
-
window.setTimeout(checkState, 10000);
附:
|
|
|
|
|
|
|
|
|
|
|
15.下面有关javascript内部对象的描述,正确的有?
-
History 对象包含用户(在浏览器窗口中)访问过的 URL
-
Location 对象包含有关当前 URL 的信息
-
Window 对象表示浏览器中打开的窗口
-
Navigator 对象包含有关浏览器的信息
附:Navaigator:提供有关浏览器的信息
Window:Window对象处于对象层次的最顶层,它提供了处理Navagator窗口的方法和属性
Location:提供了与当前打开的URL一起工作的方法和属性,是一个静态的对象
History:提供了与历史清单有关的信息
Document:包含与文档元素一起工作的对象,它将这些元素封装起来供编程人员使用