收集的一些前端面试题(持续更新)

一、301跳转与302跳转区别?

答:301 redirect::301代表永久性转移(Permanently Moved)
  302 redirect::302代表暂时性转移(Temporarily Moved )

************************************************************************************************************************** 

二、域名解析顺序是什么?最先解析的是什么?

答:域名解析从右至左,最先解析.(公网,最外层的域名),然后才解析.com。

************************************************************************************************************************** 

三、在javascript中,NaN == NaN 结果为 true / false?

答:结果为false,NaN为notnumber,非数字,在javascript中NaN和任何东西比较都不相等。

 **************************************************************************************************************************

四、在javascript中,一下表达式的结果分别是什么?尽量说明原因

      (1)  true == 1           ()

      (2)  [1,2] == [1,2]     ()

      (3)   "1" == 1             ()

             var str = "abc"; var str_ = new String("abc");  

      (4)   str == _str         ()

    (5)   str === _str         ()

答:1、true(true对应的number值为1,所以1==1,结果为true) ,

     2、false([1,2]为Array对象,在js中即便两个对象值相同,但仍不相等) ,

     3、true("1"为字符串类型,==非===,在比较过程中字符串“1”是可以被转换为number类型且结果为1,所以结果为true) 

     4、true(str和_str的值都是“abc”也都是字符串类型,所以结果为true)

     5、false(str为原始类型/或基本类型,而_str为包装对象本质是Object对象类型,所以不能严格等于)

**************************************************************************************************************************

五、在javascript中,var val = (1,"f","a",3,"c","e","book",9) ; consol.log(val);输出结果为?

答:结果为9。(该题是js中的逗号运算符,逗号运算符总是取最右边的值,实际开发用得非常少)

**************************************************************************************************************************

六、代码一:function f1(){ var x = y = 6; } f1(); console.log(typeof y);console.log(typeof x);

     代码二:function f1(){ var x,y = 6; } f1(); console.log(typeof y);console.log(typeof x);

     问两段代码输出内容分别为?

答:代码一:number , undefined; 代码二:undefined , undefined;

     (分析:在js,在函数中定义多个变量时,若用连等;则除第一个变量外的其他变量都会变成全局变量。)

**************************************************************************************************************************

七、代码:var obj = {}; obj.toString = function(x,y){ return x + y };  问 obj.toString(1,2);输出什么?

答:输出3。对象原型链上的toString函数被重写了。

精彩内容,后续更新......

有好的题目欢迎回帖,好的我会更新上来。

原文地址:https://www.cnblogs.com/MirageFox/p/5602284.html