Vue问题
什么是单向数据绑定?单向数据绑定即一方面只受另一方面影响,却无法影响另一方面。前端常说的单向数据绑定一般都指数据影响页面,而页面不影响数据。
什么是双向数据绑定?双向的意思即两个方面相互影响,前端来说,即数据影响页面,页面同时影响数据。例如,在 MVVM 框架中,View(视图) 和 Model(数据) 是不可以直接通讯的,在它们之间存在着 ViewModel 这个中间介充当着观察者的角色。当用户操作 View(视图),ViewModel 感知到变化,然后通知 Model 发生相应改变;反之当 Model(数据) 发生改变,ViewModel 也能感知到变化,使 View 作出相应更新。
什么是单页面?什么是双页面单页面即 第一次进入页面的时候会请求一个html文件,刷新清除一下。切换到其他组件,此时路径也相应变化,但是并没有新的html文件请求,页面内容也变化了。(多用于移动端)
原理是:JS会感知到url的变化,通过这一点,可以用js动态的将当前页面的内容清除掉,然后将下一个页面的内容挂载到当前页面上,这个时候的路由不是后端来做了,而是前端来做,判断页面到底是显示哪个组件,清除不需 ...
Javascript问题
这里列一些我在面试时最常问到的,都是老生常谈的问题:
什么是闭包?
什么是面向对象?
JS如何实现类,对象之间的继承?
什么是冒泡和捕获以及事件委托?
JS有哪些数据类型?
Null和Undefined的区别?
判断时if是false的值?
isNaN()的作用?
JS对象中的Array对象和String对象的各种方法
this关键字在不同环境下的指向
JS的作用域
setTimeout和setInterval
了解CSS3或HTML5吗,都用过哪些
精通原生 JS 闭包,异步编程,原型继承,类型数组,事件代理,原生 ajax。
都用过哪些计算机基础:主要是计算机网络、算法、数据结构方面的知识,这一块儿是我最薄弱的,而运气好的是面试官问的也较少,更多的是询问排序查找相关的一些,经验不足就不多说。
技能延伸:前面两者技术的基础上对技能的延伸能增加获得 offer 的机会,比如了解模板引擎、熟悉比较火的前端框架或前端技术(JQuery、Bootstrap、Zepto、Node,Angular.JS),并且研究过源码、对 svn 或 git 等版本控制软件的操作、 长期更新博客、 在 ...
正则表达式
正则常见函数正则表达式常用的方法分为 2 类:
字符串上调用,进行正则规则匹配。操作对象是正则表达式
正则表达式上调用。操作对象是字符串。
准备了下面代码:
12const pattern = /runoob/gi; // 正则表达式const str = "Visit Runoob!runoob"; // 待匹配字符串
① 字符串上调用的方法,常见的有:search/ match / replace
12345678// Return: Number 代表搜索到的开始地址console.log(str.search(/Runoob/i));// Return: Array 匹配出来的所有字符串console.log(str.match(/run/gi));// Return: 新的string对象console.log(str.replace(/visit/i, "visit"));
② 正则表达式对象上的方法,常见的有:test / exec
12345// Return: Boolean 代表是否符合匹配console.log(pa ...
border-sizing属性详解和应用
box-sizing用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型。它有content-box、border-box和inherit三种取值。inherit指的是从父元素继承box-sizing表现形式,不再冗赘。
1. 属性讲解content-box默认值,也是 css2.1 中的盒子模型。在计算width和height时候,不计算border、padding和margin。高度、宽度都只是内容高度。
border-boxcss3新增。 width和height属性包括内容,内边距和边框,但不包括外边距。
计算公式:
width = width = border + padding + 内容宽度
height = border + padding + 内容高度
2. 考虑盒子模型的margin从上面可以知道,即时是border-box也是不计算margin,只是多余计算了border和padding。因为border和padding都是盒子模型的一部分,但是margin标记的是盒子和盒子的间距。所以,border-box的解释很符合常理。
问题来了,如果有时候一定 ...
基础:配置与运行
1、SCSS和Sass
Sass 和 SCSS 其实是同一种东西,我们平时都称之为 Sass。他们都是用Ruby开发 Css 预处理器,boostrap4已经将less换成了sass。
不同之处:
文件拓展名:分别是sass和scss
缩进:sass严格缩进(类似 python 和 ruby),scss是 css 的缩进样式
是否兼容 css 语法:显然,由于缩进的不同,scss是兼容原生的 css 写法。
总的来说,scss是sass升级版,兼容 css 语法,并且有着自己的独立语法。
2、环境配置
安装 ruby:windows 注意添加注册表路径
安装 sass:利用 ruby 的包管理器gem安装,命令行运行:gem install sass
升级和删除 sass:gem update/uninstall sass
如果国外源过慢?
123gem sources --remove https://rubygems.org/gem sources -a https://ruby.taobao.org/gem sources -l #查看是不是淘宝源
3、编译
编译指的是 ...
进阶:继承、占位符和混合宏
如何让 scss 代码可复用?三种复用方式分别用在何处?下方是一段自定义大小的样例 👇
1234567891011121314151617$height: 15px !default;$width: 18px !default;@mixin size($list...) { @if length($list) == 0 { height: $height; width: $width; } @else if length($list) == 1 { height: $list; width: $list; } @else if length($list) == 2 { height: nth($list, 1); width: nth($list, 2); } @else { @debug "Too many parameters"; }}
1、继承和占位符
两者都是通过@extend来引用。
1.1 继承 ...
HTML与CSS
HTML问题说下你对 WEB 标准以及 W3C 的理解与认识?web 标准: 简单来说可以分为结构、表现和行为。其中结构主要是有 HTML 标签组成。或许通俗点说,在页面 body 里面我们写入的标签都是为了页面的结构。表现即指 css 样式表,通过 css 可以是页面的结构标签更具美感。行为是指页面和用户具有一定的交互,同时页面结构或者表现发生变化,主要是有 js 组成。
web 标准一般是将该三部分独立分开,使其更具有模块化。但一般产生行为时,就会有结构或者表现的变化,也使这三者的界限并不那么清晰。
W3C 对 web 标准提出了规范化的要求,也就是在实际编程中的一些代码规范:包含如下几点
1.对于结构要求:(标签规范可以提高搜索引擎对页面的抓取效率,对 SEO 很有帮助)
1)。标签字母要小写
2)。标签要闭合
3)。标签不允许随意嵌套
2.对于 css 和 js 来说
1)。能提高搜索机器人的搜索几率,内容能被更广泛的用户所访问,尽量使用外链 css 样式表和 js 脚本。是结构、表现和行为分为三块,符合规范。同时提高页面渲染速度,提高用户的体验。
2)。样式尽量少用行间样式表 ...
C语言基础总结
关键字C语言的32个关键词:(由系统定义,不能重做其他定义)
1234567auto break case char const continue default do double else enum extern float for goto if int long register returnshort signed sizeof static structswitch typedef unsigned unsigned union void volatile while
数据类型数据类型大概分为俩种:基本类型数据、复合类型数据
基本类型数据整数
123整型 —— int --4字节 短整型 —— short int ——2字节长整型 —— long int ——8字节
浮点数【实数】
12单精度浮点数 —— float ——4字节双精度浮点数 —— double ——8字节
字符
1char —— ...