前端面试题

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掉密码和敏感的信息

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值