zoukankan      html  css  js  c++  java
  • 逗比的腾讯面试

    腾讯一面,被虐。

    意识到自己是有多菜,内容明天补充。

    以下是还记得的问题内容:

    1.cookies的属性有哪些?(这个问题完全不会,之前没了解过cookies。)

      比较常见的cookies的属性除了name名称和value值以外,还有下面的4种:

      ① Expires:过期时间。

      值为事件的字符串,指定浏览器可以删除cookie文件的时间。

      ② Path:路径。

      值可以为一个目录,或者一个路径,指定与cookie关联的Web页。

      ③ Domain:域。

      值为域名,这是对path路径属性的延伸,指定与cookie关联的Web服务器或者域。

      注意:不能讲cookie域属性设置成与设置它的服务器所在域不同的值。

      ④ Secure:安全。

      值为“secure”或者为空,缺省状态下为空,指定cookie的值通过网络如何在用户和Web服务器之前传输,即是否用https或者其他安全传输协议来传输数据。

      注意:只加密与服务器传输过程中的数据,不加密本地保存的cookie文件。

    2.JS如何获取当前页面的URL?

      这个问题十分基础,无奈当时忘记。

      ① window.location.url 该方法以字符串的结果返回url的所有内容。

      ② 类似的方法还有:window.location.protocol、window.location.port、window.location.host、window.location.pathname,分别对面获取协议、端口号、主机名和文件路径。

    3.JS事件冒泡?

      对冒泡有所了解,但是到面试时要说清楚却遇到困难,归根结蒂还是对冒泡了解不深。

      JS事件冒泡是指,在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。

      很简单,就是子元素上触发事件时,如果没有定义对应的处理程序或者事件返回了true,那么就会发生冒泡,导致事件向父级对象传播,直到被处理,或者到根元素即document对象。

      那么应该如何阻止冒泡呢?

      根据网上搜索到的内容,总结有以下的几种:

      ①调用event.stopPropagation()方法

    1 <script type="text/javascript">
    2     $(function() {
    3         $("#hr_three").click(function(event) {
    4             event.stopPropagation(); //阻止事件冒泡
    5 }); 6 }); 7 <script>

      这个方法会阻止事件冒泡,但不会阻止默认的事件行为。

      ②给方法增加return false;

    <script type="text/javascript">
        $(function() {
            $("#hr_three").click(function(event) {
                return false;
            });
        });
    </script>

      这个方法阻止事件冒泡的同时还会阻止默认的事件。  

      ③添加.target的条件

    <script type="text/javascript">
        $(document).ready(function(){
            $('#switcher').click(function(event){
                if(event.target==this){ //这里添加一个判定条件
                    $('#switcher .button').toggleClass('hidden');
                }
            })
        })
    </script>

      ④补充event.preventDefault()方法

      event.preventDefault()方法不会阻止冒泡,但是会阻止默认的事件行为。

    4.JS事件捕获?

      待补充

    5.从输入url的那一刻起,到浏览器显示页面,中间的过程是怎么样的?

      真是TM好问题。

    6.时针和分针夹角问题(貌似前端面试必问)

    7.JS闭包是怎么样的?

      待补充

    8.代码或伪代码解释Ajax的工作过程

      待补充

    9.冒泡排序

      用JavaScript完成:

     1 function bSort(arr){
     2     var len = arr.length();
     3     for(var i = 0; i < len - 1; i++){
     4         for(var j =0; j < len - 1 -i; j++){
     5             if(arr[j] > arr[j+1]){
     6                 var temp = arr[j];
     7                 arr[j] = arr[j+1];
     8                 arr[j+1] = temp;
     9             }
    10         }
    11     }
    12 }

    10.正则表达式识别手机号

      正则表达式书写如下:

        中国电信:1[3578][01379]\d{8}

        中国移动:134[012345678]\d{7}或1[34578][012356789]\d{8}

        中国联通:1[34578][01256]\d{8}

    function  IsMobile(text){
        var _emp = /^\s*|\s*$/g;
        text = text.replace(_emp,""); //去掉空格等无关内容
    var _d = /^1[3578][01379]\d{8}$/g; var _l = /^1[34578][01256]\d{8}$/g; var _y = /^(134[012345678]\d{7}|1[34578][012356789]\d{8})$/g; if(_d.test(text)){ return 3; //中国电信
       }
    else if(_l.test(text)){ return 2; //中国联通
    }
    else if(_y.test(text)){ return 1; //中国移动
    }
    return 0; }

    11.字母大小写转换函数

      toUpperCase():

        用法:str.toUpperCase();

        返回一个新的字符串,在其中 str 的所有小写字符全部被转换为了大写字符。

      ②toLowerCase():

        用法:str.toLowerCase();

        返回一个新的字符串,在其中 str 的所有大写字符全部被转换为了写写字符。

      ③和toLocaleLowerCase()

         toLocaleUpperCase() 用法和返回格式与 toUpperCase() 相同,但是toLocaleUpperCase()方法适应宿主环境的当前区域设置,按照本地方式把字符串转换为大写。只有几种语言(如土耳  其语具)有地方特有的大小写映射,所有该方法的返回值通常与 toUpperCase() 一样。

  • 相关阅读:
    基督山伯爵---大仲马
    数据结构
    11. 标准库浏览 – Part II
    python 标准库
    Python 官方文件
    Python 函数
    学员名片管理系统
    如何进入多级菜单
    Python 文件操作
    Python 字符串 (isdigit, isalnum,isnumeric)转
  • 原文地址:https://www.cnblogs.com/s1nker/p/4413118.html
Copyright © 2011-2022 走看看