zoukankan      html  css  js  c++  java
  • 第38篇

    1、Javascript实现2分法查找

     1 // 非递归实现
     2 function binary_search(arr, key) {
     3   var high = arr.length - 1;
     4   var low = 0;
     5 
     6   while (low <= high) {
     7     var mid = parseInt((high + low) / 2);
     8 
     9     if (arr[mid] == key) {
    10       return mid;
    11     } else if (arr[mid] < key) {
    12       low = mid + 1;
    13     } else if (arr[mid] > key) {
    14       high = mid - 1;
    15     }
    16   }
    17 }
    18 
    19 // 递归实现
    20 function binary_search2(arr, low, high, key) {
    21   if (low > high) retuen - 1
    22   var mid = parseInt((high + low) / 2);
    23 
    24   if (arr[mid] == key) {
    25     return mid;
    26   } else if (arr[mid] < key) {
    27     low = mid + 1;
    28     return binary_search2(arr, low, high, key);
    29   } else if (arr[mid] > key) {
    30     high = mid - 1;
    31     return binary_search2(arr, low, high, key);
    32   }
    33 }
    34 
    35 var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    36 console.log(binary_search(arr, 6));
    37 console.log(binary_search2(arr, 0, 9, 6));

     2、你所了解到的Web攻击技术?

    1)XSS(Cross-Site Scripting,跨站脚本攻击)指通过存在安全漏洞的Wev网站注册用户的浏览器内运行非法的HTML标签或者Javascript进行的一种攻击。

    处理办法:【1】过滤特殊字符    【2】使用HTTP头指定类型   w.Header().Set("Content-Type", "text/javascript");

    2) SQL注入  攻击者向服务器提交恶意的SQL查询代码,程序在接受后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑

    被改变,额外的执行撩攻击者精心构造的恶意代码。

    处理办法:对进入数据库的特殊字符(‘“尖括号&*;等)进行转义处理,或者编码转换

    3)CSRF(Cross-Site Request Forgeries,跨站点请求伪造)攻击者盗用了你的身份,以你的名义发送恶意请求。

    3、写一个function,清楚字符串前后的空格。(兼容所有的浏览器)

    1 if(!String.prototype.trim) {
    2 
    3   String.prototype.trim = function() {
    4   return this.replace(/(^s+)|(s+$)/g, "");
    5   }
    6 }

    4、有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少走法?

    1 function cStairs(n) {
    2   if (n === 1 || n === 2) {
    3     return 1;
    4   } else {
    5     return cStairs(n - 1) + cStairs(n - 2);
    6   }
    7 }

    5、递归设计。实现一个函数,给该函数一个DOM节点,函数访问其所有子元素(所有子元素,不仅仅是直接子元素),

    每次访问子元素的时候,并为其传一个callback?

    // 访问一个DOM tree,是一个经典的深度优先搜索的算法

    1 function Traverse(DOM, callback) {
    2   callback(DOM);
    3   var list = DOM.children;
    4   Array.prototype.forEach.apply(list, (item) => {
    5     Traverse(item, callback);
    6   })
    7 }
  • 相关阅读:
    关于无法使用xx-pc附加到应用程序iisexpress.exe
    iis 7.5 0x80004005 静态文件 html、js、css 500错误
    递归删除指定目录下面的所有文件夹和文件
    http请求相关
    常用分页写法
    获取与Url链接相关的信息
    解决iis7 0x80070002 错误代码问题
    实现Cookie跨域共享
    文本框值改变事件
    动态加载、移除、替换JS和CSS
  • 原文地址:https://www.cnblogs.com/huen2015/p/11174389.html
Copyright © 2011-2022 走看看