前端面试题
Posted lyx1014
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端面试题相关的知识,希望对你有一定的参考价值。
1.回答以下代码,输出alert的值
<script> var a = 100; //全局变量,代码在任何地方都可以引用 function test(){ alert(a); // a = 10; //去掉了var 就变成定义了全局变量了 alert(a); } test();//调用函数 alert(a); </script>
2.. 以下代码执行结果
var uname = ‘jack‘
function change() {
alert(uname) // ?
var uname = ‘lily‘ //加了var定义为函数变量
alert(uname) //?
}
change()
分别alert出 undefined,lily,(变量声明提前问题)
3.冒泡排序
function fun(){ var arr=[1,2,5,47,1,3,5,7,9,4,1,2]; //循环在arr中取值,i从0,同事创建空数组result for(var i=0,result=[];i<arr.length;i++){ //循环便利result,j从0 for(var j=0;j<result.length;j++){ //如果result中当前元素等于arr中当前的元素 arr的这个数在result的数组中存在了 if(arr[i]==result[j]){ break;//退出循环 } }//循环遍历结束 if(j==result.length){//如果j等于result的length 表示这个元素在新数组中不存在 result[result.length]=arr[i]; } }//遍历结束 console.log(result);//给出返回值 }
4.数组去重
function max_min(){//对于number数组中的大数据做从大到小的排序 (升序) var myarry=new Array(10); for (var i=0;i<10;i++){ myarry[i]=Number(prompt("请输入第"+(i+1)+"个数")); } document.write(myarry+"<br>"); for(var j=1;j<myarry.length;j++){//外层循环控制比较的轮数 for(var n=0;n<myarry.length-j;n++){//内层循环控制遍历每个元素 if(myarry[n]>myarry[n+1]){//如果数组中前面一个值大于后面一个值;则交换前后两个值 var temp; var temp=myarry[n]; myarry[n]=myarry[n+1]; myarry[n+1]=temp; } } } console.log(myarry) }
5 块级元素水平垂直居中的方法有哪些(三个方法)
让div等块级元素水平和垂直都居中,即永远处于屏幕的正中央,当我们做如登录块时非常有用!
实现一、原理:要让div等块级元素水平和垂直居中,必需知道该div等块级元素的宽度和高度,然后设置位置为绝对位置,距离页面窗口左边框和上边框的距离设置为50%,这个50%就是指页面窗口的宽度和高度的50%,最后将该div等块级元素分别左移和上移,左移和上移的大小就是该div等块级元素宽度和高度的一半。
.mycss{ width:300px; height:200px; position:absolute; left:50%; top:50%; margin:-100px 0 0 -150px
}
6.2.split()和join()的区别?
join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
指定分隔符方法join("#");其中#可以是任意;
var a=new Array();
a[0]="Xhtml";
a[1]="CSS";
a[2]="javascript";
a.join("-->");
"XHTML-->CSS-->JavaScript"
split()方法:用于把一个字符串分割成字符串数组.
var str="aaa,bbb,ccc,ddd";
str.split(",");
["aaa", "bbb", "ccc", "ddd"]
split,是把一串字符(根据某个分隔符)分成若干个元素存放在一个数组里。而Join是 把数组中的字符串连成一个长串,可以大体上认为是split的逆操作。
7.HTML中放入CSS样式的几种方式。
内联样式:style=”属性:属性值;”
内部样式:<style>选择器{属性:值;}</style>
外部样式:<link href="css/style.css" rel="stylesheet" type="text/css">
8.行内元素有哪些,块级元素有哪些,空元素(单标签)有哪些,请举例说明,每种至少3个?
行内元素:<a>,<span>,<i>,<em>,<strong>,<label>,<code>,
<img>,<input>,<select>,<textarea>,<button>(在一行中显示,不能设置标签的宽高,只有当一行中)的内容容纳不下的时候才会进行换行)
块级元素:<div>,<p>,<h1>...<h6>,<ol>,<ul>,<dl>,<table>,<form>(自己可以独占一行·,可以设置标签的宽高)
空元素(单标签):<br>,<hr>,<img>,<input>,<link>,<meta>
9.写出以下代码依次输出的结果:__,__,__,__;
var a=10;//全局变量
sayHi();//函数调用
function sayHi(){
var a=a+10;//函数变量的声明此时a输出的值为undefined
alert(a);//所以此时a显示为NaN
return a;//返回当前a的值,返回值为10
}
alert(a);//输出a的值为函数的值为NaN
alert(sayHi()+10);值为NaN
10.列举三种强制转换和两种隐式转换的方式。
强制转换:
Numble();Boolean();ParseInt();
隐式转换:字符串
+
数字,
==
比较
以上是关于前端面试题的主要内容,如果未能解决你的问题,请参考以下文章