前端面试----------Day1

前端面试----------Day1

第一次面试超级垃圾,垃圾到我想把它记录下来,奇怪的脑思路~~~~~

  1. 选择题
select 下拉列表的使用,完全不会, hahahahh
<select name="" id="mySelect">
			<option value="1">北京</option>
			<option value="2">上海</option>
			<option value="3">广州</option>
</select>
var mySelect = document.getElementById("mySelect");
//下拉列表的长度就是他的选项数
mySelect.length;
//添加option
//new Option(text, value)
mySelect.add(new Option("深圳","4"));
mySelect.options.add(new Option("天津","5"));
//替换新的值
var index = mySelect.selectedIndex;
mySelect.options[index] = new Option("芜湖",index);
//获取选中项的值和文本
var val = mySelect.options[index].value;
var text = mySelect.options[index].text;
//删除
mySelect.options.remove(index);
//全删
mySelect.options.length = 0;
//删除select
mySelect.parentNode.removeChild(mySelect);

javascript

//获取value
console.log(mySelect.value);

for(var i = 0;i<mySelect.length;i++)
{
	if(mySelect[i].selected = true)
	{
		var val = mySelect[i].value;
	}
}

//获取text
//无效
//mySelect.text
var index = mySelect.selectedIndex;
var text = mySelect.options[index].text;
text = mySelected.options[index].innerHTML;

jquery

$("#mySelect").val();

var option = $("#mySelect option:selected");
option.val();	

//无效
//$("#mySelect").text();
var option = $("#mySelect option:selected");
option.text();
option.innerHTML();
String的函数

1.length属性
说明:获取字符串的长度
实例:
var str=“abc”;
var i=str.length;//output:3

2.charAt()方法
说明:从字符串中找出一个指定索引(位置)的字符
实例:
var str=“abc”;
var str1=str.charAt(2);//output:c
//字符串索引从0开始

3.indexOf()方法
说明:得到子字符串在母字符串中第一次出现的位置(下标),如找不到则输出"-1";
格式:index(子字符串,起始索引);
实例:
var str=“abcdb”;
var i=str.indexOf(‘b’);//output:1
var j=str.indexOf(‘b’,2);//output:4

4.lastIndexOf()方法
说明:得到子字符串在母字符串中第一次出现的位置,与indexOf不同的是,lastIndexOf是从最后一个字符开始搜索.
如果找不到则输入"-1"
实例:
var str=“abcdcbd”;
alert(str.lastIndexOf(‘bd’));//output:5
alert(str.lastIndexOf(‘b’,3));//output:1,这里第二个参数为3代表在索引3的末尾开始查找所以输出是1
alert(str.lastIndexOf(‘b’,5));//output:5,这里第二个参数为5代表在索引5的末尾开始查找所以输出是5
//注意:lastIndexOf是从最后一个字符开始搜索,那么你指定了:str.lastIndexOf(‘b’,5)它就会从索引5的位置向前搜索’b’的索引

4.substring()方法 / substr(pos,count)
说明:截取母字符串的一部分字符串.
格式:substring(起始索引,终止索引)
实例:
var str=“abcdefg”;
alert(str.substring(0,3));//output:abc
alert(str.substring(3,0));
//output:abc,substring()函数会自动判断哪个是起始,那个是终止.
//所以会把参数0放到前面,把参数3放到后面,所以输出的还是:abc
alert(str.substring(3));//output:defg

注意:返回值并不会包含借宿索引的那个字符,而是到其前一个字符为止.

5.replace()方法
说明:替换字符串中指定的子字符串为对应字符串
格式:replace(“指定的子字符串”,“替换为相对应的字符串”)
实例:
var str=“abcdbfgbc”;
alert(str.replace(“bc”,‘kk’));//output:akkdbfgbc
注意:只替换相符的第一个字符串
这点与C#不同,看下面实例:
string tt = “abcdcd”;
Console.WriteLine(tt.Replace(“cd”,“aa”));
//输出:abaaaa,C#的Replac函数会在字符串中搜索所有为"cd"的字符串,并将为"cd"的字符串替换为"aa".

innerText

innerHTML 设置或获取位于对象起始和结束标签内的 HTML
outerHTML 设置或获取对象及其内容的 HTML 形式
innerText 设置或获取位于对象起始和结束标签内的文本
outerText 设置(包括标签)或获取(不包括标签)对象的文本
innerText 和outerText 在读取得时候是一样的,只是在设置的时候outerText 会连带标签一起替换成目标文本
firefox不支持innerText ,但是可以用textContent作为替代方案。

open

JS中open()函数介绍
window=object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址
name:新窗口的名称,可以为空
featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。
fullscreen={ yes/no/1/0 }是否全屏,默认no
channelmode={ yes/no/1/0 } 是否显示频道栏,默认no
toolbar={ yes/no/1/0 } 是否显示工具条,默认no
location={ yes/no/1/0 } 是否显示地址栏,默认no
directories = { yes/no/1/0 } 是否显示转向按钮,默认no
status={ yes/no/1/0 } 是否显示窗口状态条,默认no
menubar={ yes/no/1/0 } 是否显示菜单,默认no
scrollbars={ yes/no/1/0 } 是否显示滚动条,默认yes
resizable={ yes/no/1/0 } 是否窗口可调整大小,默认no
width=number窗口宽度(像素单位)
height=number 窗口高度(像素单位)
top=number窗口离屏幕顶部距离(像素单位)
left=number窗口离屏幕左边距离(像素单位)

top和pixelTop

top:返回带单位的位置坐标字符串
pixelTop:返回以像素为单位的位置坐标的数值

点击图片提交表单
		<!-- 第一种方法 -->
		<input type="image" src="*.jpg">
		<!-- 第二种方法 -->
		<img src="*.jpg" alt="" onclick="document.form1.submit()">
  1. 简答题
从输入url到页面全加载的过程

https://www.cnblogs.com/xiaohuochai/p/9193083.html

浏览器状态码

https://www.runoob.com/http/http-status-codes.html
1xx: 信息
2xx:成功
3xx:重定向
4xx:客户端错误
5xx:服务器错误

模拟trim去除前后空格

trim只能去除前后空格(没用过,痛哭)
正则也不会(痛哭,肯定被面试官狠狠鄙视了)
正则
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +

如果使用jQuery直接使用$.trim(str)方法即可

//去除字符串前后所有空
function Trim(str){
	return str.replace(/(^\s*)|(\s*$)/g,'');
}
//在字符串原型上添加方法也可
String.prototype.trim = function(){
	return this.replace(/(^\s*)|(\s*$)/g,'');
}
String.prototype.lTrim = function(){
	return this.replace(/^\s*/,'');
}
String.prototype.rTrim = function(){
	return this.replace(/\s*$/,'');
}

不使用正则

function trim(str){
	//去除前面空格
	while(str.indexOf(' ') == 0 && str.length > 1)
	{
		str = str.substring(1,str.length);
	}
	//去除后面空格
	while(str.lastIndexOf(' ') == str.length - 1 && str.length > 1)
	{
		//substring截取字符不包括str.length - 1所在位置的字符
		str = str.substring(0,str.length - 1);
	}
	if (str==" "){
		str="";
	}
	return str;
}
数组去重

es6新语法(刚看过视频就忘了)
https://www.liaoxuefeng.com/wiki/1022910821149312/1023024181109440

let arr = [1,2,3,4,2,4,5];
let set = new Set(arr);
//Array.from方法可以将 Set 结构转为数组
let newArr = Array.from(set);
//...也可以转换为数组
[...new Set(arr)]
function fun(arr){
	var newArr;
	for(var i = 0; i < arr.length; i++)
	{
		if(newArr.indexOf(arr[i]) == -1)
		{
			newArr.push(arr[i]);
		}
	}
	return newArr;
}
用二分法查找值
function binarySearch(arr,val)
{
	arr.sort();
	var start = 0;
	var end = arr.length - 1;
	while(start < end)
	{
		var mid = Math.floor((start + end)/2);
		if(val == arr[mid])
		{
			return mid;
		}
		else if(val > arr[mid])
		{
			start = mid + 1;
		}
		else
		{
			end = mid - 1;
		}
	}
	//未找到
	return -1;
}
冒泡排序

先准备着,应该会用到

function bubbleSort(arr){
	for(var i = 0; i < arr.length; i++)
	{
		for(var j = 0; j < arr.length - 1 - i; j++)
		{
			if(arr[j] > arr[j+1])
			{
				var temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值