0.1+0.2===0.3 返回false
答案:在0.1 + 0.2这个式子中,0.1和0.2都是近似表示的,在他们相加的时候,两个近似值进行了计算,导致最后得到的值是0.30000000000000004,此时对于JS来说,其不够近似于0.3,于是就出现了0.1 + 0.2 != 0.3 这个现象。 当然,也并非所有的近似值相加都得不到正确的结果。
js数据类型有
答案: 包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)
为什么要把JavaScript代码尽量放到网页底部
答案:这样处理的好处是无需担心因页面未完成加载,造成DOM节点获取不到,使脚本报错的问题,而且能避免因脚本运行缓慢造成页面卡死的问题
解释单向数据流和双向数据绑定
答案:单向数据流指只能从一个方向修改数据,姑且我们可以这样理解,如下图所示。一个父组件下有两个子组件1和子组件2,父组件可以向子组件传递数据。假如子组件都获取到了父组件的name,在子组件1中对name重新修改之后,子组件2和父组件中的值并不会发生改变,这正是因为Vue中的机制是单向数据流,子组件不能直接改变父组件的状态。但反过来,如果是父组件中的name修改了,当然两个子组件中的name也就改变了
数据的双向绑定
答案:主要是由MVVM框架实现,在Vue中主要由三个部分组成,View、ViewModel和Model组成,其中View和ViewModel不能直接进行通信,他们要通过中间件ViewModel来进行。例如,当Model部分数据发生改变时,由于vue中Data Binding将底层数据和Dom层进行了绑定,ViewModel通知View层更新视图;当在视图 View数据发生变化也会同步到Model中。View和Model之间的同步完全是自动的,不需要人手动的操作DOM
CSS 选择符有哪些?优先级算法如何计算? CSS3新增伪类有那些?
答案:id选择器 类选择器 标签选择器 子选择器 后代选择器 通配符选择器
伪类选择器
优先级为: !important > id > class > tag important 比 内联优先级高,但内联比 id 要高
Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
答案:
(1)、<!DOCTYPE> 声明位于文档中的最前面,处于 <html> 标签之前。告知浏览器以何种模式来渲染文档。
(2)、严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行。
(3)、在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
(4)、DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
说说你对语义化的理解
答案:
1,去掉或者丢失样式的时候能够让页面呈现出清晰的结构
2,有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;
3,方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页;
4,便于团队开发和维护,语义化更具可读性,是下一步吧网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。
IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。
答案:给float的元素添加一个_display:inline 下划线是只有IE6才识别 其他属性也是如此
html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
答案:
语义化更好的内容标签(header,nav,footer,aside,article,section)
音频、视频API(audio,video)
画布(Canvas) API
地理(Geolocation) API
本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
sessionStorage 的数据在浏览器关闭后自动删除
表单控件,calendar、date、time、email、url、search
新的技术webworker, websocket, Geolocation
如何区分: DOCTYPE声明\新增的结构元素\功能元素
你如何对网站的文件和资源进行优化
答案:
文件合并
文件最小化/文件压缩
使用 CDN 托管
缓存的使用(多个域名来提供缓存)
请说出三种减少页面加载时间的方法
答案:
1.优化图片
2.图像格式的选择(GIF:提供的颜色较少,可用在一些对颜色要求不高的地方)
3.优化CSS(压缩合并css,如margin-top,margin-left...)
4.网址后加斜杠
对服务器而言,不加斜杠服务器会多一次判断的过程,加斜杠就会直接返回网站设置的存放在网站根目录下的默认页面
5.图片标明高度和宽度(如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。
当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了。)
- 减少http请求(合并文件,合并图片)。
说说什么是FOUC?你如何来避免FOUC
答案:由于css引入使用了@import 或者存在多个style标签以及css文件在页面底部引入使得css文件加载在html之后导致页面闪烁、花屏
用link加载css文件,放在head标签里面
null和undefined的区别
JSON和XML相同点和不同点
答案:都是用于交换数据
xml可读性更好一些 JSON体积更小,更加轻量, JSON与JS交互更加方便,速度更快
XML是一种标记语言
解释一下同源策略
答案:这里的同源策略指的是:协议,域名,端口相同,同源策略是一种安全协议。
HTML的含义?
超文本标记语言,用于创建网页 有很多版本 2.0 、3.x、4.x和最新的HTML5。
什么是XHTML?
2000年发布的HTML 完全兼容HTML但格式更严谨。
什么是CSS预处理器?优点和缺点?
编译器使新语法的文件输出位CSS文件,解决CSS难以复用、代码冗余的问题,常见预处理器有Less、Sass.
优点:用变量存储多次引用信息(颜色,字号等),只需要修改变量,就能全局修改。
可以像js一样使用数字运算,条件判断和循环。
选择器嵌套选择器,关系明显,增加可读性。
缺点:
在浏览器中调试的是生成的CSS文件不容易调试
什么是盒模型?
从盒子顶部俯视所得平面图,分为两种为W3C盒模型和IE盒模型。IE盒模型content宽高包括padding和border,而W3C的不包括。
介绍一下HTTP?
超文本传输协议,是一种获取网络资源的协议,是互联网通讯的基础,由请求和响应构成
== 和 ===的区别是什么?
==运算符会先进行类型转换,再进行数据对比。而===会先比较数据类型,如果类型相同,在比较数值。
typeof 和instanceof区别?
前者返回字符串后者返回布尔值
typeof判断参数是什么类型,instanceof测试一个对象在其原型链中是否存在一个构造函数
介绍一下HTML5?
HTML的最新版本。
什么叫渐进增强和优雅降级?
渐进增强:保证用户在任何环境下能正常范根核心内容或使用基本功能,并提供当前条件下最好的体验。
优雅降级:在高版本浏览器中提供最好的体验,碰到低版本浏览器再进行兼容处理。
区别:渐进增强关注的是内容,优雅降级关注的是体验
浏览器中输入URL之后发生了什么?
- 域名解析,根据域名找到服务器IP地址
- 建立TCP连接,浏览器与服务器经过三次握手后建立连接
- 浏览器发起HTTP请求,获取资源
- 服务器响应HTTP请求,返回资源
- 浏览器渲染页面,解析收到的文件
salc函数?
CSS的函数,例子:width:salc(50%-20px)
容器内容超过一行用省略号代替?
Div{
Width:200px;
Overflow:gidden; //剪裁溢出内容
Text-overflow:ellipsis; //将溢出内容替换为省略号
White-space:nowrap //禁止换行
}