前端面试(一)

最近在考虑换个新的环境,所以先找了家公司面了下试试水,虽然不知道结果,但是把题目记录下来当做一次学习经历吧!

一、html语义化意义,作用,原因,理解:

1.使代码结构更清晰,在没有CSS的情况下也能呈现出代码层次结构

2.方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页

3.提升搜索引擎优化(SEO)的效果

4.便于团队开发和维护,语义化更具可读性,代码更好维护

参考https://blog.csdn.net/qq_34966814/article/details/82181007

二、html语义化标签有哪些

<header>头部区域,<nav>导航,<main>主要内容,<article>文章,<section>章节区域,<aside>与页面内容无多大联系的部分,如侧边栏,友情链接,广告等,<footer>页脚部分,如附录、索引、版权页、许可协议等,<title>页面主要内容,<progress>进度。

<canvas>,<video>,<audio>

参考https://www.cnblogs.com/it-Ren/p/10555177.html

https://www.runoob.com/html/html5-intro.html

三、input  type类型

text,password,color,time,date,email,number,submit,reset,radio,checkbox,image,file,hidden,range,week,month

https://www.w3school.com.cn/tags/tag_input.asp

四、css布局模式

table布局,float布局,position布局,flex布局,css3多列布局

https://blog.csdn.net/zhang6223284/article/details/81909600

五、文本溢出

单行:

text-overflow: ellipsis;  // 文本超出显示省略号

white-space: nowrap;  // 不换行

overflow: hidden;  //超出隐藏

多行:

 display: -webkit-box;             /*将对象转为弹性盒模型展示*/
    -webkit-box-orient: vertical;     /*设置弹性盒模型子元素的排列方式*/
    -webkit-line-clamp: 2;            /*限制文本行数*/
    overflow: hidden;                 /*超出隐藏*/

https://segmentfault.com/a/1190000013916143

六、transition 和animation

transition 只执行一次,当参数改变时触发

animation重复执行,直接执行

http://www.fly63.com/article/detial/3245

七、伪类和伪元素的区别

伪元素主要是用来创建一些不存在原有dom结构树种的元素,

伪类表示已存在的某个元素处于某种状态,但是通过dom树又无法表示这种状态,就可以通过伪类来为其添加样式。

伪元素与伪类的根本区别在于:操作的对象元素是否存在于原来的dom结构里。

https://www.cnblogs.com/xmbg/p/11608268.html

八、js数据类型

string,number,boolean,object,undefined,null,promise

判断类型typeof

https://www.w3school.com.cn/js/js_datatypes.asp

https://blog.csdn.net/lareinalove/article/details/79895760

九、js数组和字符串相互转换

 数组转字符串: join()

字符串转数组: split()

https://www.cnblogs.com/zhengyiqun1992/p/10683760.html

十、判断字符串,数组中是否包含某元素

数组: indexOf/lastIndexOf  arr.indexOf()返回某个指定的字符串值在字符串中首次出现的位置,下标或-1。

            find() /findIndex(), find返回值或undefined,findIndex返回下标或-1

https://www.cnblogs.com/yunshangwuyou/p/9032560.html

字符串: indexOf();search();match()

https://www.cnblogs.com/ooo0/p/7741651.html

十一、for in, for of

for in得到对对象的key或数组,字符串的下标
for of和forEach一样,是直接得到值,不支持对象

https://www.cnblogs.com/zjx304/p/10687017.html

十二、异步,同步,异步实现

JavaScript是一门单线程的语言,同个时间有多个任务的话,这些任务就需要进行排队,前一个任务执行完,才会执行下一个任务。 同步任务是指在主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务。异步任务是指不进入主线程,而进入任务队列的任务,只有任务队列通知主线程,某个异步任务可以执行了,该任务才会进入主线程,意思当我们打开网站时,像图片的加载,音乐的加载,其实就是一个异步任务。

异步实现:回调函数callback,只有拿到明确回调再执行,

                  promise(.then),

                  setTimeout();

https://segmentfault.com/a/1190000017996968

https://www.cnblogs.com/Yellow-ice/p/10433423.html

十三、定时器

setTimeout,setInterval

  • setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
  • setTimeout() :在指定的毫秒数后调用函数或计算表达式,只执行一次,使用clearTimeout暂停。

十四、ts,js 区别

ts是js的超集;

ts增加了静态类型、类、模块、接口和类型注解方面的功能

ts需要静态编译,它提供了强类型与更多面向对象的内容易于大项目的开发

https://blog.csdn.net/qq_42451979/article/details/89642575

https://blog.csdn.net/qq_36145914/article/details/88993222

十五、var let const区别

1.var定义变量,没有块的概念,可以跨块访问,不能跨函数访问,不初始化出现undefined,不会报错,可以变量提升。

2.let定义变量,只能在块作用域里访问,也不能跨函数访问,对函数外部无影响,可以变量提升。

3.const定义常量,只能在块作用域里访问,也不能跨函数访问,使用时必须初始化(即必须赋值),而且不能修改,可以变量提升。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章