1.正则表达式字面完全一致也不相等
var a = /123/,
b = /123/;
console.log(a==b) //false
console.log(a===b) //false
2.函数名称不可改变
function test(){}
var oldName = test.name;
test.name = "huanhuan";
console.log(test.name) //test
console.log(oldName) //test
3.IOS手机浏览器字体齿轮
修改-webkit-font-smoothing属性,结果是:
-webkit-font-smothing: none 无抗锯齿
-webkit-font-smoothing: antialiased | subpixel-antialiased | default:灰度平滑
4.$$("*")你知道是什么吗?
$$函数等价于 document.querySelectorAll,就可以获得当前页面中所有匹配css的元素列表,
这个是在浏览器命令行可以测试到,在其他地方咱们就老老实实用document.querySelectorAll
5.网站中,图片文件(jpg,png,gif),如何点击下载?而非点击预览?
我们平时在网站中的图片,假如我们要下载,如下写:
<a href="test.jpg">下载</a>
我们点击下载按钮,只会预览test.jpg这张图片,并不会出现下载框,另存为那种。那么我们如何做呢?
<a href="test.jpg" download>下载</a>
我们还能指定文件名称
<a href="test.jpg" download="test图片下载">下载</a>
6.Math.min()比Math.max()大
Math.min() < Math.max() //false
Math.min() > Math.max() // true
因为Math.min()返回Infinity,而Math.max()返回 -Infinity
7.关于数字跟点号,下面的代码大家可以打印出来试一下
3..toString() // 3
3.toString() // error
3...toString() // error
8.局部变量和全局变量
(function(){
var x = y = 1;
})();
console.log(y); // 输出1
console.log(x); // error
因为y是赋值到全局,x是局部变量,全局中获取不到,所以打印x的时候会报 ReferenceError引用错误
9.cookie的弊端
1.IE6更低版本最多20个cookie
2.IE7和之后的版本最多可以有50个cookie
3.Firefox最多50个cookie
4.Chrome和Safari没有硬性限制
10.vue页面中定义一个定时器,在哪个阶段清除?
在beforeDestroy中销毁定时器。
为什么销毁它?
比如在A页面中写了个定时器,比如每隔一秒钟打印一次1,当我点击按钮进入页面B的时候,会发现定时器依然在执行,这非常消耗性能
解决方法:
$once这个事件侦听器在定义完成定时器之后的位置来清除定时器
11.vue中父组件如何获取子组件的数据,子组件如何获取父组件的数据,父子组件如何传值?
父获取子组件数据
$children
$refs
子组件获取父组件中的数据?
$parent
父子组件通信除了以上三种,还有props和attrs
12.XML和JSON的区别
1.JSON相对XML来讲,数据的体积小,传递的速度更快些;
2.JSON和JavaScript的交互更加方便,更容易解析处理,更好的数据交互;
3.JSON对数据的描述性比XML差;
4.JSON的传输速度圆远远快于XML。
13.渐进增强和优雅降级
渐进增强:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果,交互等改进和追加功能达到更好的用户体验
优雅降级:
一开始就构建完整的功能,然后再针对低版本浏览器进行兼容
14.常见web安全及防护原理
sql注入原理:
就是通过SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
- 永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等。
- 永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取
- 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接
- 不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息