今天金蝶笔试,没有算法 全是javascript ajax 的题 知识点好小啊 额 是我学艺不精罢了。
好好反省 自己最近在干什么!!! 额额额额额额 。不多说了 把不会的总结一下:
1.不确定答案的:
var result='true';
result=result===true?'true that':'sad panda';
result?
sad panda
原因:看一下result的类型:string “===”是全等:是类型和值都相等 而“==”是相等 是需要 值相等就可以了 所以result===true是false 则 result是false 然后的计算就很简答了 结果就是sad panda
2.不确定答案的
var x="hello";
(function(){
x="goodbye";
}());
x=?
goodbye
原因:
(function(){
x=”goodbye”;
}());
这是一个立即执行函数,(懵逼了吧~~傻逼了吧??一会好好看,好好学!总结一下。)是在定以后立即 执行,不需要调用。(我会在这篇 之后 写一篇立即执行函数和匿名函数的的帖子,让自己脑子清晰点。)
3.不会
感觉我一次错了俩 不过没关系 下次不会了
var myArr=[1,2,3,4,5];
var arr=myArr.shift();
console.log(arr);
1
我很清楚shift()函数的方法 但是我当时是真没有找到答案 晕死 我觉得是我记错了 可是 回来运行了一下 对着呢啊 为什么? 一定是我看错了。
4.有疑问
parseInt(1.5);//取整,直接舍弃小数部分!!! 结果:1
JS取整方式:
1.丢弃小数部分,保留整数部分
js:parseInt(7/2)
2.向上取整,有小数就整数部分加1
js: Math.ceil(7/2)
3,四舍五入.
js: Math.round(7/2)
4,向下取整
js: Math.floor(7/2)
函数测试:
//向上取整
var x=1.0,y=1.2;z=1.5;s=1.8;
x=Math.ceil(x);
y=Math.ceil(y);
z=Math.ceil(z);
s=Math.ceil(s);
console.log(x,y,z,s);
结果:1,2,2,2
//四舍五入
var x=1.0,y=1.2;z=1.5;s=1.8;
x=Math.round(x);
y=Math.round(y);
z=Math.round(z);
s=Math.round(s);
console.log(x,y,z,s);
结果:1,1,2,2
var x=1.0,y=1.2;z=1.5;s=1.8;
x=Math.floor(x);
y=Math.floor(y);
z=Math.floor(z);
s=Math.floor(s);
console.log(x,y,z,s);
结果:1,1,1,1
6.这个应该是错了的,实话说 这个题很简单 我脑子 有问题。。。。。。。。。
function test(){
console.log(a);
var a=1;
console.log(a);
}
undefined
1
6.如何手工放弃正在执行的ajax请求?
(实话说我是真的没有遇到过这个。经验不足一下子就出来了。)
我总是这样,永远懵不对:
(1)定时器:
$(document).ready(
var fn = function(){
$.ajax({
url: 'ajax/progress.ftl',
success: function(data) {
//do something
}
});
};
var interval = setInterval(fn, 500);
);
就是用定时器控制ajax请求,在不需要的时候,可以取消定时器。
(2) XMLHttpRequest对象有abort()方法
可以自己手动去调用abort方法:
<script src = "jquery-1.7.2.js"></script>
<script>
var xhr = $.ajax({type:'POST',
url:'b.php',
data:'',
success:function(){
alert('ok');
}
})
</script>
<button id="song">abort</button>
<script>
$(function(){
$("#song").click(function(){
alert('click');
xhr.abort();
})
})
</script>
直接对xhr对象进行xhr.abort();
以下都是有印象的题,但是记不住名字,不过,知识点都是不清晰的。
7.同源策略:
同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。
就是限制跨域的一个 东西! 疯了!!!
8.这是第一个题,老实说 对于ajax的只会用jquery简单的实现,更多的我真的没有遇到过 没想到全是关于跨域的问题 :
cros在请求xhr 的response头???
第一个题啊 我是真的不知道。
CROS传送门:
https://developer.mozilla.org/zh-CN/docs/tag/CORS
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
好好看 好好学!
答案:Access-Control-Allow-Origin (这个吧,真的没有找到精确的答案)
觉得下次见了,还是不会 因为我记不住 真的。。。。。。
9.https 采用什么实现安全网站的访问?
SSL
10.能够将客户端http头加入到ajax请求吗?
我……没找到答案 不过我和舍友都觉得,可以。。。。。
11.不会.。。。。。。
检验对象是否有一个以自身定义的属性?
答案:o.hasOwnProperty(“x”);
不知道应该 也选错了。
检测对象中属性的存在与否可以通过几种方法来判断。
- 1.使用in关键字。
该方法可以判断对象的自有属性和继承来的属性是否存在。
var o={x:1};
"x" in o; //true,自有属性存在
"y" in o; //false
"toString" in o; //true,是一个继承属性
- 2.使用对象的hasOwnProperty()方法。
该方法只能判断自有属性是否存在,对于继承属性会返回false。
var o={x:1};
o.hasOwnProperty("x"); //true,自有属性中有x
o.hasOwnProperty("y"); //false,自有属性中不存在y
o.hasOwnProperty("toString"); //false,这是一个继承属性,但不是自有属性
- 3.用undefined判断
自有属性和继承属性均可判断。
var o={x:1};
o.x!==undefined; //true
o.y!==undefined; //false
o.toString!==undefined //true
该方法存在一个问题,如果属性的值就是undefined的话,该方法不能返回想要的结果,如下。
var o={x:undefined};
o.x!==undefined; //false,属性存在,但值是undefined
o.y!==undefined; //false
o.toString!==undefined //true
- 4.在条件语句中直接判断
var o={};
if(o.x) o.x+=1; //如果x是undefine,null,false," ",0或NaN,它将保持不变
12.堆的形状?
完全二叉树!
13.XSS
跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
写在最后:美丽的一天又 结束了,明天要 加油啊!