最近在考虑换个新的环境,所以先找了家公司面了下试试水,虽然不知道结果,但是把题目记录下来当做一次学习经历吧!
一、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定义常量,只能在块作用域里访问,也不能跨函数访问,使用时必须初始化(即必须赋值),而且不能修改,可以变量提升。