2019.3.28面试题_weixin_30871701的博客-程序员宝宝

技术标签: 面试  ViewUI  git  javascript  

  今天去了一家公司面试,是截止目前问得比较多的一家。下面记录一下面试的笔试题和一个实操题:

笔试题:

    1.typeof返回的类型:

  undefined、boolean、string、number、object

     注意这里没有null,null也是属于object的。

        同时说一下js的数据类型这里容易和typeof搞混!

   js的数据类型可以分为基本数据类型和复合数据类型:

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

      复合数据类型(也叫复杂数据类型):也就是object

     2.vue声明周期:(此处盗图一张,点击此处访问原文章

 

 面试的时候回答8个阶段:beforeCreate ===> created ===> beforeMount  ===>  mounted ===>  beforeUpdate  ===>  updated  ===> beforeDestroy  ===>  destroyed  

 3.vue组件之间的传值

  父子间传值:  

      父传子:定义一个属性msg="abc"在子组件上,子组件通过一个props:["msg"] 来进行接收父组件传递过来的信息。

      子传父:在子组件上定义一个方法在方法中使用     $emit ( eventName,args..)           

                                      参数eventName(必传参数): 传递到父级的事件名

                                      参数args(可选参数): 传递到父级数据

                                    

                                    在父组件中可以用$on来进行监听获取子组件传递上来的数据

       4.box-sizeing

    语法:box-sizing: content-box|border-box|inherit

                        content-box:这是CSS2.1指定的宽度和高度的行为。指定元素的宽度和高度(最小/最大属性)适用于box的宽度和高度。元素的填充和边框布局和绘制指定宽度和高度除外

                        border-box:指定宽度和高度(最小/最大属性)确定元素边框box。也就是说,对元素指定宽度和高度包括padding和border的指定。内容的宽度和高度减去各自双方该边框和填充的宽度从指定                                               的"宽度"和"高度"属性计算

                inherit:指定box-sizing属性的值,应该从父元素继承

               简单来说就是:设置 box-sizeing可以改变一个标签的计算宽高的机制。相信大家都知道盒子模型分为标准模型和IE模型;

                 

                 标准盒模型的宽度就是 content,而IE模型的宽度却是content+padding+border;

                 然后我们可以通过box-sizeing这个属性来切换这两种模型,content-box就是只有content作为宽,border-box的宽就是content+padding+border;

     虽然用法知道了,但是还是需要自己去实践一遍,看一下是不是说得正确,其实网上有很多东西,你去看因为你不懂会以为他写的都是正确的,但是当你到达一定时候或者一定高度的时候,

    你就会明白原来网上有些东西不一定是正确的。好多博客上的内容都是复制过去复制过来,很容易将错误的观点和结论进行传播,所以需要自己去实践才能辨别真假。

    下面我通过两张截图来验证上面的结论。           

    

      

 

 

 

 

 

 现在就好理解box-siezing的两个属性值的意思了。

 

5.cookies,localstorage,sessionStorage的区别

  上一篇面试题总结过,传送门

6.普通回调函数和箭头函数的区别:

        我们先来看一下什么是普通函数和什么是箭头函数他们长什么样子

箭头函数:
let fun = () => {
    console.log('abc');
}

普通函数:
function fun() {
    console.log('abc');
}

  区别总结:

                 a.箭头函数是匿名函数,不能作为构造函数,不能使用new

                    b.箭头函数不绑定arguments,取而代之用rest参数...解决

       c.箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值

        

 7.offsetTop、clientTop、scrollTop指的是什么?

  传送门那片文章写得还不错,也很好理解

 8.display:none;和visibility:hidden的区别:

          如果给一个元素设置了display: none,那么该元素以及它的所有后代元素都会隐藏,它是前端开发人员使用频率最高的一种隐藏方式。隐藏后的元素无法点击,无法使用屏幕阅读器等辅助设备访问,占                   据的空间消失。    

          给元素设置visibility: hidden也可以隐藏这个元素,但是隐藏元素仍需占用与未隐藏时一样的空间,也就是说虽然元素不可见了,但是仍然会影响页面布局。

 9.apply、call、bind的区别

      apply、call不同之处在于,call 方法传递给调用函数的参数是逐个列出的,而 apply 则是要写在数组中。

      核心要点: 可以看出 call 和 apply 是为了动态改变 this 而出现的,当一个 Object 没有某个方法,但是呢,其它的对象有,我们可以借助 call 或 apply 用其它对象的方法来操作。
      bind 方法传递给调用函数的参数可以逐个列出,也可以写在数组中。bind 方法与 call、apply 最大的不同就是前者返回一个绑定上下文的函数,而后者是直接执行了函数。

 10.git常用命令:

     git init               ----本地库初始化

     git add 文件名      -----添加操作(将工作区新建/修改的内容添加到暂存区)

     git status            -----查看状态(查看工作区、暂存区的状态)

     git commit -m “commit message”      ----提交操作

     git log           -----查看历史日志

 

  

分支常用命令:

a)、git branch -v (查看本地库中的所有分支)

b)、git branch dev (创建一个新的分支)

c)、git checkout dev (切换分支)

 

大概率会问到的:

  1. git clone XXX //克隆代码库
  2. git checkout -b test //新建分支
  3. modify some files //完成修改
  4. git add . //把修改加入stage中
  5. git commit -m '' //提交修改到test分支
  6. review代码
  7. git checkout master //切换到master分支
  8. git pull //更新代码
  9. git checkout test //切换到test分支
  10. git meger master //把master分支的代码merge到test分支
  11. git push origin 分支名//把test分支的代码push到远程库

 

 11.px、em、rem是什么?

        

px:绝对单位,页面按精确像素展示。

em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值。

rem:相对单位,可理解为”root em”, 相对根节点html的字体大小来计算,CSS3新加属性,chrome/firefox/IE9+支持。

 

 12.preventDefault()、stopPropagation()的作用:

            preventDefault :就是阻止系统默认行为,可以阻止a标签的默认行为,比如href跳转链接e.preventDefault()

            stopPropagation:e.stopPropagation的作用就是阻止事件冒泡!

 

转载于:https://www.cnblogs.com/justyouadmin/p/10618445.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30871701/article/details/98259095

智能推荐

零基础学习次世代,3D游戏建模要美术基础吗?想入门的必看!_Grape_3DModeler的博客-程序员宝宝

1.了解什么是游戏3D建模在大型的游戏研发公司,3D建模是一个非常大的职能,分为4个岗位:3D角色低模手绘,3D场景低模手绘,次世代角色高模,次世代场景高模。通常我们所说的3D建模是指低模手绘。2.零基础可以学习3D建模吗?零基础是可以学习3D建模的哈,如果自学能力比较强,可以规划一下学习计划和学习内容,根据,如果自学能力和自律能力比较弱,可以去参加培训班。3.没有美术基础会有压力吗?会。正因为如此,你需要比有美术基础的同学更加努力才行。ps是绘制贴图的主要工具,所以涉及到游戏开发的基.

phpthink ajax,【原创】ThinkPHP5命令行常用命令_weixin_39940714的博客-程序员宝宝

1、webserver 启动命令php -S localhost:8888 router.php2、 ThinkPHP5命令行访问php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值…] (或者 php.exe index.php(或者其它应用入口文件) 模块/控制器/操作?参数名=参数值&…)例如:php index.php index/in...

学生信息管理系统SIMS_RO0T的博客-程序员宝宝

学生信息管理系统SIMS[[email protected] sims]# ll总计 108-rwxr-xr-x 1 root root 23947 05-08 23:50 a-rw-r--r-- 1 root root 198 05-04 12:00 ABOUT-rw-r--r-- 1 root root 43 05-07 16:44 demo.c-rw-r--r-- 1 root

判断三角形的类型_Abro.的博客-程序员宝宝

题目描述:给定三角形的三条边,a,b,c. 判断该三角形类型。输出描述:测试数据有多组,每组输入三角形的三条边。输出描述:对于每组输入,输出直角三角形、钝角三角形、或是钝角三角形。示例:输入:5 4 3输出:直角三角形源码:/*判断三角形的类型*/#include<stdio.h> #include<algorithm>#include<iostream>using namespace std;const int ma

android studio ui来源,Android Studio:基本UI界面設計 (詳細)_Chrysalid的博客-程序员宝宝

一、實驗題目基本UI界面設計二、實現內容實現一個Android應用,界面呈現如下效果: 三、實驗過程(1)標題首先我們建立一個TextView控件來寫標題。實驗對標題的要求如下:1標題字體大小20sp(android:textSize="20sp")2 與頂部距離20dp(與父容器頂部對齊后再設置與頂部距離20dp) 3 居中(與父容器左右都對齊后即可) 實現效果如下: (2...

android app license,LICENSE · Hello松子/android-app - Gitee.com_weixin_39759995的博客-程序员宝宝

MIT LicenseCopyright (c) 2020 巴拉迪维Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Softwa...

随便推点

SpringBoot 加载jar外部yml配置文件_muzlei的博客-程序员宝宝_springboot加载外部yml文件

https://www.cnblogs.com/saul-zc/p/9719457.htmlhttps://blog.csdn.net/controller_Lw/article/details/114266609运行Jar包的配置文件可以是内部也可以是外置的配置文件:application.yml ,外置配置文件可以放在服务器上也已可放在远程的git仓库内;1 、运行命令 ——java−jarxxxxxxx.jar\color{red}{ java -jar xxxxxxx.jar}java−

mpvue - iview weapp click 获取不到index (i-model、acrion-sheet)_idomyway的博客-程序员宝宝

问题    若iview weapp组件通过click事件,即this.triggerEvent(‘click’, { index })来进行父子组件通信,mpvue无法从event.mp中读取到正确的detail    原因是因为mpvue将click事件编译为tap导致this.triggerEvent(‘cl...

2021年6月编程语言排行榜(TIOBE Index for June 2021)_ctrigger的博客-程序员宝宝

June Headline: Python has never been so close to position #1 beforePython is about to take over the first position in the TIOBE index. The gap between the current number one, programming language C, and Python is only 0.7% now. Next month, the TIOBE in..

去中心化稳定币Samecoin将于7月14日上线HSC虎符智能链_Ceres Dao的博客-程序员宝宝

去中心化稳定币Samecoin将于7月14日上线HSC虎符智能链,通过Samecoin协议生成铸造SameUSD等稳定币,并将其应用于游戏行业,从而推动SameUSD在HSC生态的大规模应用。Samecoin也将与虎符智能链已有项目相互赋能,特别是在跨链和矿池部署上进行多方联动。虎符智能链HSC是一条去中心化高效节能公链,坚持“技术过硬+玩法创新+生态可持续”之路,和开发者一起构建开放共享共荣的公链2.0生态。...

2016-2017年度测试工作总结_a1111317317的博客-程序员宝宝

“唯一不可阻挡的是时间,它像一把利刃,无声的切开了坚硬和柔软的一切,恒定地向前推进着,没有任何东西能够使他的行进产生丝毫颠簸,它却改变着一切。”16年的工作总结想了想,16年值得聊聊的就几件事:测试团队的重组。这个没啥可聊的,今年又要出大招…(生无可恋的表情ing…)测试人员的培养。经历了三个季度的技术培训,虽然没达到我想要的效果,但至少每个人都可以写自己负责模块的U...

wc命令的C语言实现_lichenghui_的博客-程序员宝宝

#include#include#include#includestruct message{ //定义要输出的内容 int lines; //文件行数 int words; //单词数 int size; //文件大小 int chars; }info;void error_print(char str[]){ printf("Error:%s",str)

推荐文章

热门文章

相关标签