1.对于未初始化和未声明的变量为输出什么:
实例:
var a;
console.log(typeof a);
console.log(typeof b);
运行结果:
undefined
undefined
2.脱离文档流之float和absolute的区别:
(1)首先需要强调脱离文档流的元素都是块级元素。
(2)区别一:-----1position:absolute是完全脱离文档流。它的定位是参考于离它最近的设置了除static之外的其他定位的父元素,如果没有,它就会以html根元素为参考。
-----2 float脱离文档流之后,还是会跟随父级(会被放置在容器中的左边或右边)
(3)区别二:在有文字时
—1文字会围绕float元素,所以float元素在文档流还是有一定存在位置的。
----2文字会被absolute的元素遮挡了,说明了absolute的元素已经完全脱离文档流,文字可以无视它的存在了
3.cookie属性有哪些:
1.name:cookie的名称。
2. value :cookie的值。
3. domain:用于访问此cookie的域名
4. path:用于访问此cookie的页面路径。
5. Size :cookie大小。
6.http :cookie的httponly属性。若该属性为true,则只有在http请求头中会带有此cookie的信息,而不能通过document.cookie来访问此cookie。
secure 字段 :设置是否只能通过https来传递此条cookie
4.什么属性用来设置当前对象的prototype对象:
__proto__属性(前后各两个下划线),用来读取或设置当前对象的prototype对象
5.试试打印undefined和null会得到什么?
console.log(undefined) //undefined
console.log(null) //null
扩展:
console.log(undefined==0) //falseconsole.log(null==0) //false
console.log(null==undefined) //true;
6.这个问题有关于面向对象
//代码一:
function Fox(run){
alert("hello");
this.run=function(){
alert("i'm run")
};
}
Fox.prototype.run=function(){
alert("i'm running");
}
var fn=new Fox();
fn.run();
运行结果:
解释:在这种情况下,由于fn继承了Fox里面原本的方法和属性,所以,调用的run()方法就是Fox构造函数中的。
//第二种情况
function Fox(){
alert("hello");
Fox.run=function(){
alert("i'm run")
};
}
Fox.prototype.run=function(){
alert("i'm running");
}
var fn=new Fox();
fn.run();
运行结果为:
解释:此时fn调用的run是原型对象上面的run()方法,而不是Fox构造函数另外附加的,fn的继承,他只继承了Fox它原本有的东西,而Fox附加的属性和方法,Fox的实例是不会继承的。
//代码三:
function Fox(){
alert("hello");
}
Fox.run=function(){
alert("i'm run")
};
Fox.prototype.run=function(){
alert("i'm running");
}
var fn=new Fox();
fn.run();
解释:
这个和第二种情况得到的结果是一样的。
最后总结:如果Fox构造函数本身没有run()方法,而他的原型对象上面有的话,它要调用run方法,可以这么做:Fox.prototype.run();
7.关于闭包:
function foo(x){
var tmp=3;
return function (y){
console.log(x+y+(++tmp));
}
}
var bar=foo(2);
bar(10);
bar(12);
运行结果为:
16
19
8.下面会输出的结果是什么:
console.log(a);
var a=1;
var a=function(){
console.log(2);
};
function a(){
console.log(3);
}
运行结果为:
function a(){ console.log(3)};
9.编程实现,将十进制的数字10转化为二进制:
代码:
<script>
let n=10;
function Cnum(n){
let num='';
while(Math.abs(Math.ceil(n/2))>0){
num+=Math.abs(n%2);
n=Math.abs(Math.floor(n/2));
}
num=num.split('');
num.reverse();
num=num.join('');
console.log(num);
};
Cnum(n);
</script>
运行结果为:1010