前端第二阶段测试

1.linux中 vim有几种模式?如何进行这几种模式的切换

vim有三种模式:输入模式,命令模式,底行模式

1.输入模式

①输入模式进入命令模式:esc

②输入模式进入底行模式:esc进入命令模式后,使用:进入底行模式

2.命令模式

①命令模式进入输入模式:i,a,o,I,A,O

②命令模式进入底行模式:使用 :/ ?

3.底行模式

①底行模式进入命令模式:两次esc

②底行模式进入输入模式:先使用两次esc进入命令模式,再使用i,a,o,I,A,O进入输入模式

     

2.css3中的animation与transition表示什么意思?

1.animation设置动画属性,有八个属性分别是

animation-name动画名字

animation-duration动画持续时间

animation-iteration-count动画迭代次数

animation-delay动画延迟执行时间

animation-direction动画方向

animation-play-state暂停/恢复

animation-fill-mode填充模式

animation-timing-function动画的速度曲线

2.transition设置过渡属性,有四个属性分别是

transition-property过渡属性

transition-duration持续时间

transition-timing-function时间曲线

transition-delay过渡延迟

3.css中vertical-align规则有什么作用

vertical-align 属性设置一个元素的垂直对齐方式。

该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。

属性值

描述

baseline

默认。元素放置在父元素的基线上。

sub

垂直对齐文本的下标。

super

垂直对齐文本的上标

top

把元素的顶端与行中最高元素的顶端对齐

text-top

把元素的顶端与父元素字体的顶端对齐

middle

把此元素放置在父元素的中部。

bottom

使元素及其后代元素的底部与整行的底部对齐。

text-bottom

把元素的底端与父元素字体的底端对齐。

length

将元素升高或降低指定的高度,可以是负数。

%

使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。

inherit

规定应该从父元素继承 vertical-align 属性的值。

4.相对定位,绝对定位,固定定位,粘滞定位,静态定位有什么区别

1)相对定位 position:relative 不脱离文档流 相对于当前元素所在的位置进行移动

2)绝对定位 position:absolute 脱离文档流 没有定位祖先的相对于浏览器视口左上角定位;有定位祖先的相对于定位祖先进行定位

3)固定定位 position:fixed 脱离文档流 相对于浏览器视口定位

4)粘性定位 position:sticky 不脱离文档流 没有定位祖先的相对于浏览器视口左上角定位;有定位祖先的相对于定位祖先进行定位

5)静态定位 position:static 不脱离文档流

5.什么是响应式网页?如何实现一个响应式网页

响应式网页:集中创建页面的图片的布局和排版的大小,可以智能的根据用户的行为和设备环境进行相应的布局,即一个页面可兼容各种终端,无需编写不同版本。

1)如果是通过css原生代码,可以通过@media来进行媒体查询,当网页显示在不同的网页中加载执行不同的css代码

2)如果是通过框架,例如bootstrap,可以使用bootstrap提供的响应式框架完成页面布局。

6.linux中远程登录命令,远程文件传输命令,查看Java进程命令分别是什么?举例说明

1)远程登陆命令:ssh briup@39.103.220.191

2)远程文件传输命令:scp 文件路径 用户名@ip:路径

获取远程服务器的文件:scp 用户名@ip:路径 文件路径

3)查看Java进程命令:ps -ef | grep java

7.什么是块元素?块元素有哪些特点?

块元素在页面中以区域块的形式出现,常用于网页布局和网页结构的搭建。主要有<p>,<div>,<h1>-<h6>等等

1)块级独占一行

2)块级元素可以直接设置宽高

3)块级元素可以嵌套块级与行内元素

8.em与rem的区别?

1)em为相对长度单位,表示当前元素上的字体大小

2)rem为相对长度单位,表示根(html)元素上声明的字体大小

9.如何使用css绘制一个三角形

transparent 关键字表示一个完全透明的颜色,即该颜色看上去将是背景色。

<style>

        #app {

            width: 0;

            height: 0;

            border: 100px solid transparent;

            border-top: 100px solid #666;

            border-left: 100px solid yellow;

            border-right: 100px solid pink;

            border-bottom: 100px solid #999;

        }

    </style>

</head>

<body>

    <div id="app">

    </div>

</body>

10.简述flex布局

flex布局是一种当页面需要适应不同的屏幕大 小以及设备类型时确保元素拥有恰当的行为的布局方式。提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。

1.父元素设置display:flex;默认列布局

可以设置flex-direction布局方向;justify-content开始位置;flex-wrap自动换行

以上可以简写成flex-flow:row flex-start wrap;

2.等比例划分flex:1 2 200px;第一个元素是flex-grow拉伸比例,第二个元素是flex-shrink压缩比例,第三个元素是flex-basis最小宽度

3.在主轴上的对齐方式:justify-content:flex-start;默认在开始显示,还可以设置为center在主轴的中心显示,space-around填充空白自适应在主轴中心显示等等

   在交叉轴上的对齐方式:align-items:stretch;默认拉伸,还可以设置为center 在交叉轴中心显示,baseline基线对齐等等

11.数组中哪些方法是在原值上进行的修改?哪些方法没有对原值进行修改?

1)修改的:push(),pop(),shift(),unshift(),splice(),sort(),reverse()

2)没有修改的:concat(),slice(),filter(),mao(),forEach()

12.请写出让元素垂直居中的多种布局方法

1)margin:0 auto;

2)浮动布局,float:left;  margin-left=calc(50%-子元素的宽度/2);

3)定位布局,父相子绝,绝对定位top为50%,margin-top=-子元素的宽度/2;

                       父相子绝,绝对定位right,left为0,margin:auto

4)弹性布局:父元素设置display:flex,且align-items:center;

文本在盒子中垂直居中的方法

1)单行文本:①固定高度:line-height等于盒子height

         (如果要水平居中text-align:center;)

         ②未知高度:设置上下的padding值一样

2)多行文本:①伸缩盒布局display:flex    align-items:center

         ②定位布局,父相子绝,绝对定位top为50%,margin-top=-子元素的高度/2;

13.简述css3选择器的优先级机制?

1)权重优先级:id选择器>类名选择器>标签选择器 1000 100 10 1

2)代码顺序:采取就近原则

3)特权:!important

14.伪元素选择器::after有哪些常见用法?

1.清除浮动,给需要清除浮动的子元素的父元素设置

父元素::after{

content:"";

display:block;

clear:both;

    }

2.::after 选中之后的不存在的节点,可配合content属性进行内容填充

h2::after {

            content: "**";

            color: tomato;

}

15.写出几个你熟悉的git命令?

git init

git add *

git commit -m “提交”

git remote add origin https://gitee.com/AdminRDC/web2103code.git

git push -u origin master

git clone

git pull

16.在js中如何判断一个数据类型?

基本数据类型:null,undefined,string,boolean,number

引用数据类型:Object,Function,Array等等

判断基本数据类型

1)typeof

typeof “hello”

2)isNaN判断参数是否“不是数值”

isNaN(NaN);

3)isFinite()函数可以判断参数是否在最大值和最小值之间,如果在,返回true

isFinite(9/0);

判断引用数据类型

1)typeof

typeof arr

2)instanceof

//小-->大   当前变量是某个构造函数对应的原型链上吗

arr instanceof Array

3)isPrototypeOf

//大-->小  当前变量是否是我的子孙后代吗?

Object.prototype.isPrototypeOf(obj)

4)isArray

Array.isArray(arr)

17.在js的面向对象中继承方式有哪几种,分别进行描述?

1)原型链继承

//将子构造函数的原型指向父类的实例

Dog.prototype=new Animal();

注意:console.log(dog);不打印Animal中的属性name,color等等

谨慎定义:要把给原型(Dog)添加方法放在继承后面

2)经典继承

//继承Animal

Animal.call(this,name,age);

缺点:不能继承父类原型中的方法

3)组合继承

原型链继承实现原型属性和方法的继承

经典继承实现实例属性的继承

Dog.prototype=new Animal();

Animal.call(this,name,age);

18.简述js函数的this指向问题?

谁调用指向谁

1)单独使用this,全局

  浏览器中  window对象

  node   global对象

2)函数中使用this

  在函数中,函数的所属者默认绑定到 this 上

3)事件中的 this

  在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素

19.如何实现一个对象的深拷贝?

1)浅拷贝:对于字符串类型,浅拷贝是对值的复制,对于对象来说,浅拷贝是对象地址的复制,并没有开辟新的栈,也就是复制的结果是两个对象指向同一个地址,修改其中一个对象的属性,则另一个对象的属性也会改变

2)深拷贝:深拷贝则是开辟新的栈,两个对象对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性。

JSON.parse()

let obj1 = {

name: "11",

age: "22"

}

let obj2 = JSON.parse(JSON.stringify(obj1));

obj2.name = "2222220"

console.log("obj1", obj1);// {name: "11", age: "22"}

console.log("obj2", obj2);// {name: "2222220", age: "22"}

20.什么是闭包?如何解决闭包带来的内存泄露问题?

闭包:函数内部包裹函数,作用域链得不到释放,造成内存消耗

解决了在一个函数内部也有权限访问另一个函数内部的变量

解决方法:①置空null

    ②立即执行函数,创建函数后就立即执行,只执行一次(function(){}){}

21.盒子模型种类及主要区别?

1)W3C盒子:

内容区的宽 width u

内容区的高 height u

盒子的宽width+paddingLeft+paddingRight+borderLeft+borderRight u

盒子的高height+paddingTop+paddingBottom+borderTop+borderBottom u

所占屏幕空间的宽 width+paddingLeft+paddingRight+borderLeft+borderRight +marginLeft+marginRight u

所占屏幕空间的高 height+paddingTop+paddingBottom+borderTop+borderBottom

+marginTop+marginBottom

2)边框盒子

内容区的宽width-paddingLeft-paddingRight-borderLeft-borderRight u

内容区的高height-paddingTop-paddingBottom-borderTop-borderBottom u

盒子的宽 width u

盒子的高 height u

所占屏幕空间的宽 width+marginLeft+marginRight u

所占屏幕空间的高 height+marginTop+marginBottom

22.简述http协议的报文格式

HTTP是超文本传输协议的缩写,它用于传送WWW方式的数据。HTTP协议采用了 请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议 版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务 器信息、实体元信息以及可能的实体内容。

(HTTP协议是超文本传输协议,服务器传输超文本到本地浏览器的传送协议。

HTTP基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP协议工作于客户端-服务端架构(C/S架构)之上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。)

1)请求:客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。

2)响应:一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。

响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

3)①GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接。

② POST提交:把提交的数据放置在是HTTP包的包体中。

23.用递归的方法实现1到100求和?

var result = 1;

        for (var i = 1; i <= 100; i++) {

            result += i;

}
console.log(result);

24.统计一个字符串中某个字符出现的次数,例如:输入hello,l 输出2        

    //方法1

    function count(str, char) {

        var res = 0;

        for (let i = 0; i < str.length; i++) {

            if (str[i] == char) res++;

        }

        return res;

    }

    console.log(this.count("hello", "l"));



    //方法2:正则表达式

    function count(str, char) {

        var p = new RegExp(char, "gm");

        var res = str.match(p);

        return res.length;

    }

    console.log(this.count("hello", "l"));

25.编写代码实现数组扁平化输出,例如:输入[[1,2,3,[4,5,6,[7,8]]],[9,10],[11,12,[13]],5] 输出为[1,2,3,4,5,6,7,8,9,10,11,12,13,5]     

    function mout(arr) {

        //数组类型检测

        if (!Array.isArray(arr)) return arr;

        var brr = [];

        for (var i in arr) {

            var item = arr[i];

            brr = brr.concat(mout(item));

        }

        return brr;

    }

    var arr = [

        [1, 2, 3, [4, 5, 6, [7, 8]]],

        [9, 10],

        [11, 12, [13]], 5

    ];

    console.log(mout(arr));

26.使用任意一种排序算法对数组进行排序,例如:输入[3,2,1,6,12,8,9] 输出:[1,2,3,6,8,9,12]

        //冒泡排序

        var arr = [3,2,1,6,12,8,9];

        for (var i = 0; i < arr.length; i++) {

            for (var j = 0; j < arr.length - i; j++) {

                if (arr[j] > arr[j + 1]) {

                    var temp = arr[j];

                    arr[j] = arr[j + 1];

                    arr[j + 1] = temp;

                }

            }

        }

        console.log(arr)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 前端项目的时长周期和测试周期都会受到多种因素的影响,如项目规模、复杂度、开发人员数量、需求变更频率等。 一般来说,前端项目的时长周期可以从几周到数月不等。在项目启动之初,需要进行需求分析、原型设计、技术选型等工作,这一阶段通常需要几周的时间。接着是开发阶段,这个阶段的时间长度取决于项目的规模和复杂度,通常需要几个月的时间。最后是测试和上线阶段,这个阶段的时间也取决于项目的规模和复杂度,通常需要几周的时间。 测试周期通常是在开发阶段进行的,其长度也取决于项目规模和复杂度。在测试周期,需要进行功能测试、性能测试、安全测试等多个方面的测试测试人员需要对项目进行全面的测试,并及时反馈测试结果给开发人员,以便开发人员及时修复错误和缺陷。一般来说,测试周期占据了整个开发周期的很大一部分。 ### 回答2: 前端项目的时长周期和测试周期是根据具体项目和团队的情况而定的。一般而言,前端项目的时长周期可以分为三个阶段:规划阶段、开发阶段和发布/维护阶段。 在规划阶段,团队需要与客户或产品经理充分沟通,明确项目的需求和目标。根据需求,制定项目计划和时间安排,确定前端开发的范围和具体任务。 在开发阶段,前端开发人员根据项目计划和需求文档进行编码和设计。这个阶段的时长取决于项目的复杂度和人力资源的投入,可以持续数周或数个月。 在发布/维护阶段,前端项目需要进行测试和修复bug,确保项目的质量和稳定性。测试周期也是根据项目的规模和复杂度而定,一般可以持续数天或数周。在测试过程测试人员会对前端项目进行功能测试、兼容性测试和性能测试等,以确保项目满足需求,并且在不同浏览器和设备上正常运行。 需要注意的是,前端项目的时长周期和测试周期不仅仅取决于技术开发的时间,还受到其他因素的影响,比如项目范围的变动、团队协作的效率、需求的变更等。因此,在项目规划和执行过程,要及时调整计划,保持与相关人员的沟通,以确保项目能按时交付,并且达到预期的质量要求。 ### 回答3: 前端项目的时长周期和测试周期会根据具体项目的规模、复杂度和开发团队的能力而有所不同。一般来说,前端项目的时长周期可以分为以下几个阶段:需求分析阶段、设计阶段、开发阶段、测试阶段和部署阶段。 需求分析阶段是项目启动的第一步,要与客户进行沟通,明确项目的需求和目标。这个阶段的时长会根据项目的复杂度和需求的清晰度而有所不同,一般会花费数天或数周的时间。 设计阶段是根据需求分析的结果进行系统设计和界面设计,包括制定系统架构和设计页面的布局等。这个阶段的时长也会根据项目的规模和复杂度而有所不同,通常需要花费数天或数周的时间。 开发阶段是根据设计阶段的结果进行前端代码的编写和功能的实现。这个阶段的时长也会受到项目的规模和复杂度的影响,一般需要花费数周或数个月的时间。 测试阶段是在开发完成后进行功能测试、性能测试、兼容性测试等,以确保项目的质量和稳定性。测试的时长会根据项目的规模和测试的覆盖范围而有所不同,一般需要花费数天或数周的时间。 最后,部署阶段是将项目上线并投入使用。部署的时长会根据项目的复杂程度和部署环境的准备而有所不同,一般需要花费数天或数周的时间。 总的来说,前端项目的时长周期和测试周期的具体时长会根据项目的规模、复杂度和团队的能力而有所不同,但以上提到的各个阶段是一个典型的前端项目的时长周期和测试周期。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值