小白前端基础面试测试题

tech2026-02-13  1

简述css盒子模型。 边框盒子 ( IE盒子)border-box 实际宽度 = width + margin 内容盒子 (w3c标志盒子) conntent-box 实际宽度= width + margin + border + paddingcss选择器的优先级如何计算。 1)!important ; 修改第三方库样式使用 2)特性值 html 1000 style 行内样式 100 id选择器 10 类选择器、伪类选择器 1 元素选择器、伪元素选择器 3)特性值相等时,采用‘就近原则简述css3的布局机制 1)浮动布局 float:left/right 2)定位布局 position:static/relactive/absolute/fixed/sticky 3)伸缩盒布局【手机端呢】 display:flex; 4)栅格布局(第三方库使用的布局) boostrap 12栅格 boostrap 12栅格如何实现盒子居中?
1)定位
父元素:相对定位 子元素:绝对定位 left:50%; top:50%; margin-left:-子元素宽度的一半 margin-top:-子元素高度的一半 父元素:相对定位 子元素:绝对定位 top:0, left:0, right:0, bottom:0, margin:auto;
2)伸缩盒布局
父元素 :伸缩盒 display:flex; justify-content:center; align-items:center; 对http协议的理解。 含义:超文本传输协议,用于从万维网向浏览器发送超文本数据协议。(音视频、文本、图片…) 组成: 请求报文 请求行 请求地址 请求方式 请求头 contentType:'application/xx' token 请求体 参数 响应报文 响应行 状态码及描述 200 ok 响应头 响应体 服务端返回的数据 简述一下从浏览器打开一个网页到网页加载完毕中间发生了什么事情。

输入url 浏览器会将输入的url封装为请求报文 浏览器将请求报文发送给服务器 服务器解析请求报文,拿到path及参数等信息 服务器根据解析出的信息查询数据 服务器将查询到的数据封装为响应报文 服务器将响应报文发送给浏览器 浏览器解析响应报文

简述js对象创建对象的几种 var obj = {} //对象字面量 var obj = new Object() //object构造函数 //工厂函数 function factory(){ return {} } var obj = factory() //自定义构造函数模式 function Person {} var obj = new person() //自定义构造函数模式与原型结合 functio Person(){} Person.prototype.sayName = function(){} var obj = new Person() ajax是什么?在开发中该如何使用它? Async JavaScript And Xml用于进行异步的请求 一般用于前后台分离开发的数据交互 (1)原生xhr 1. //创建实例 2. var xhr = new XmlHttpRequest() 3. //设置请求行 xhr.open(method, url) 4. //设置请求头 5.// 设置请求体,发送请求 xhr.send(data) 6.// 监听响应 xhr.onreadystatechange = function(){ } (2) jquery的ajax $.ajax({ }) $.get() $.post() 什么是深拷贝和浅拷贝,如何实现?

假设B复制了A,当A变化时,看B是否会跟着变化,B随A变化而变化,为浅拷贝;A变化后,B保持原值,为深拷贝。

浅拷贝就是复制内部内容var obj = {}; var a={} 深拷贝就是复制内存地址

//浅拷贝 var a = {0,1,2,3}, b = a; console.log(a === b) //true a[0] = 1, console.log(a,b) // 1,1,2,3 js中监听一个对象中属性变化的方法。 Object.defineProperty(obj,'name',{ set:function(param){ console.log('属性发生改变,在这里监听...') } }) 模拟Array.prototype.forEach编写Array.prototype.myForEach Array.prototype.myForEach = function(handle,obj){ for(var i=0;i<this.length;i++){ handle.call(obj,this[i],i,this); } } 如何理解js中的原型 每一个构造函数都有一个原型对象,通过构造函数的prototype属性访问原型对象,也可以通过实例的__proto__属性来访问。实例所能调用的属性和方法可以是实例本身的,也可以是实例的原型对象的。通过Object.getPrototypeOf()来获取原型对象,通过Object.setPrototypeOf()来设置原型对象。通过原型可以实现原型链继承,原型链继承需要将子元素的原型对象指向父元素的实例。 说明RegExp.prototype.test()与String.prototype.search()的异同点。

都是用于检测字符串中是否有满足正则表达式的内容

test()是正则表达式对象调用的,支持全局检索,返回true或者falsesearch()是字符串调用的,不支持全局检索,返回索引或者-1 简述事件流。 发生在嵌套的html结构中,为每层html都绑定事件 事件冒泡:事件由具体的点接受,从内往外传递到不具体的点接受。事件捕获:事件由不具体的点接受,从外往内到具体的点接受。DOM事件流:先事件捕获,先由不具体的点接受,从外往内到具体的点接受,然后再事件冒泡,从内往外传递到不具体的点接受。 在阿里云使用过程中,如何进行文件的远程传输?如何进行远程登录? scp命令用于远程传输,也可以使用fillzilla、cyberDuck(小黄鸭)等第三方工具 ssh命令用于远程登录 ssh 用户名@ip地址为什么要使用阿里云?它在我们开发中扮演什么角色?

阿里云可以提供一个远程服务器,可以使用它进行linux学习,js学习,也可以用于搭建个人网站。

阿里云等云服务器一般作为项目的部署服务器,需要在阿里云上安装一些项目部署的环境,需要掌握基本的命令操作和vim操作。 假设有数组[8,2,32,4,1,9],编写算法进行升序排列,算法不做要求,可以使用冒泡/选择/插入… var arr = [8,2,32,4,1,9]; 第一种:var result = arr.sort();第二种: var result = arr.sort(function(a,b){ return a-b; }); 第三种: var result = arr.sort(function(a,b){ if(a-b<0){ return -1; } return 1; }) 第四种(冒泡排序): for (var i = 0; i < arr.length-1; 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; } } } 第五种(选择排序): for (var i = 0; i < arr.length - 1; i++) { //假设0位是最小的 var minIndex = i; //从之后的元素中找最小的 for (var j = i + 1; j < arr.length; j++) { if(arr[j] < arr[minIndex]){ minIndex = j; } } var temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } 第六种(插入排序): for(var i=0;i<arr.length-1;i++){ //比较相邻元素,如果当前要插入的元素比之前的相邻元素小,交换 for(var j=i+1;j>0;j--){ if(arr[j]<arr[j-1]){ var temp = arr[j]; arr[j] = arr[j-1]; arr[j-1] = temp; } } console.log('第'+(i+1)+'轮',arr); } console.log('排序后的数组',arr);
最新回复(0)