js

JS能力测评经典题之Number类型

岁酱吖の 提交于 2020-01-31 19:12:43
题目描述 获取数字 num 二进制形式第 bit 位的值。注意: 1、bit 从 1 开始 2、返回 0 或 1 3、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1 输入例子: valueAtBit(128, 8) 输出例子: 1 function valueAtBit(num, bit) { var binVal = num.toString(2); return binVal[binVal.length-bit]; }   注意 : num.toString(2)返回的是2进制数的字符串形式,bit指的是从左数起且从1开始,而字符串索引是从右数起,且从0开始  题目描述 给定二进制字符串,将其换算成对应的十进制数字 输入例子: base10('11000000') 输出例子: 192 function base10(str) { return parseInt(str,2); } 注意:  parseInt方法可以将其它进制转换为十进制,只需要给该方法传入需要转换的字符串和该字符串的进制表示两个参数即可。 来源: https://www.cnblogs.com/learning-/p/6607340.html

JS能力测评试题

£可爱£侵袭症+ 提交于 2020-01-31 19:11:42
找出元素 item 在给定数组 arr 中的位置 function indexOf(arr, item) { return arr.indexOf(item); } function indexOf(arr, item){ var index = -1; arr.forEach(function(res,i){ if(res === item && index === -1){ index = i; } }); return index; } function indexOf(arr, item) { if (Array.prototype.indexOf){ return arr.indexOf(item); } else { for (var i = 0; i < arr.length; i++){ if (arr[i] === item){ return i; } } } return -1; } function indexOf(arr, item) { var len = arr.length; for(var i = 0; i<len; i++) { if(arr[i] == item) { return i; } } return -1; } View Code 2.计算数组arr中所有元素的总和 //不考虑算法复杂度,用递归做 function sum(arr) {

山东大学Web课设一——课程网站的搭建

旧街凉风 提交于 2020-01-31 14:24:54
关于web的一些感悟,web这门课程真的收获很多(虽然最后成绩不太理想),从一开始单纯的应付课设到自己看网课学习,可以说这门课如果认真学习的话还是能收获很多的,所以如果正在浏览这篇博文的是SDU的话,要认真学习web这门课啊,很有用的一门课程!不多说了上干货。 1.前导介绍:B/S C/S 的优缺点 1)c/s c/s是Client/Server指客户机和服务器,在客户机端必须装客户端软件及相应环境后,才能访问服务器(胖客户端)。 第二学期的Java课设就是明显的基于c/s设计的: 像qq,微信,王者荣耀,GTA5……这样的软件都是基于c/s设计的。优点就是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。客户端响应速度快。尤其是大型游戏等流畅度要求很高的软件一般都使用c/s模式。 对应的缺点: 由于每个用户都要下载客户端,客户端需要安装专用的客户端软件及运行环境。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。 2)b/s B/S 是Browser/Server指浏览器和服务器端,在客户机端不用装专门的软件,只要一个浏览器即可(瘦客户端) 这次的web课设就是b/s模式,b/s最大的优点是客户端不用维护,适用于用户群庞大

js 实现单向链表

◇◆丶佛笑我妖孽 提交于 2020-01-31 14:03:09
单向链表( 单链表 )是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。 通过指针连接起来,但是只能单向遍历的内存块。由于它是单向的,或者说不可逆的,所以我们可以把它比作我们的人生:小学->中学->大学->工作->养老。 实现过程 var Node = function (data) { this.data = data; this.next = null; }; var LList = function () { this.firstNode = null; this.lastNode = null; this.length = 0; }; LList.prototype = { clear: function () { this.firstNode = null; this.lastNode = null; this.length = 0; }, get: function (position) { var currentNode = this.firstNode; for (var i = 1; i < position + 1; i++) { currentNode = currentNode.next; } return currentNode; }, isEmpty: function () { var result = false;

js的6个正则方法

≡放荡痞女 提交于 2020-01-31 12:08:59
js中有两个类可以让正则发挥作用 创建 var re = /ab+c/ 方式一:正则表达字面量,这种直接是常量的表示用法可以让js解析器提高性能 var re = new RegExp('ab+c') 方式二:构造函数,这种方式可以在runtime的时候动态确定正则是什么,更加灵活 常用特殊字符 匹配量的:* + ? {n} {n,} {n,m} . 匹配位置的:^ $ 匹配并且需要支持分组的时候需要括号来包裹:(匹配的模式) 匹配条件的:| 匹配集合的:[] 匹配非集合的:[^] 例子 var myRe = / d ( b + ) d / g ; myRe . exec ( 'cdbbdbsdbdbz' ) // ["dbbd", "bb", index: 1, input: "cdbbdbsdbdbz"] myRe . exec ( 'cdbbdbsdbdbz' ) // ["dbd", "b", index: 7, input: "cdbbdbsdbdbz"] myRe . exec ( 'cdbbdbsdbdbz' ) // null 注意对于每个正则对象的exec每次调用都只返回一个匹配,如果需要拿到全部匹配就需要while循环获取,循环结束标志是返回值为null 'cdbbdbsdbdbz'.match(/d(b+)d/g) // ["dbbd", "dbd"]

js常见问题分析

非 Y 不嫁゛ 提交于 2020-01-31 11:01:02
函数.apply(window,数组) 函数.apply(window,数组)如果加上下标会把字符串拆分成字符再取下标 window.onload只有文件都加载好之后才加载 window.onload只有文件都加载好之后才加载 且 自动执行 匿名函数会自己调用 匿名函数会自己调用 来源: CSDN 作者: aicm 链接: https://blog.csdn.net/qq_45641590/article/details/104121252

nodejs 路径处理

本小妞迷上赌 提交于 2020-01-31 09:14:50
https://blog.csdn.net/liudongdong19/article/details/81353159 获取 /路径/文件名/扩展名 获取路径:path.dirname(filepath) 获取文件名:path.basename(filename) 获取扩展名:path.extname(filepath) 获取所在路径 const path=require("path"); var filepath='/node/base/path/test.js'; console.log( path.dirname(filepath) ) //输出/node/base/path 获取文件名 path.basename(filepath)实际上是获取了路径的最后一部分, 而不是真正的获取到了文件名,但是在实际应用中最后的字符往往就是我们的文件名 const path = require("path"); console.log(path.basename("/node/base/path/test.js")); //输出 test.js console.log(path.basename("/node/base/path/test/")); //输出 test console.log(path.basename("/node/base/path/test")); //输出

JS高级程序设计第二章

别来无恙 提交于 2020-01-31 08:51:01
第二章 1.向HTML页面中插入JS的主要方法,就是使用script元素。 2.HTML4.01为script定义看下列6元素(在此仅类而出在用元素): 1.async 表示应该立即下载脚本,但不应妨碍页面中的其他操作。只对外部脚本文件有效。 2.charst 表示通过src属性制定的代码的字符集。但现在浏览器大不凡都会忽略它,因此不常用。 3.defer 表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本有效。 4.src 表示包含要执行的外部文件。 5.type 表示编写代码使用的脚本语言的内容形式, 3.而使用script元素的方式有两种:直接在页面嵌入JS中和包含外部JS文件。在使用嵌入时,秩序为script指定type属性。包含在script元素内部的JS代码将从上至下依次解释。在解释器对 script元素内部所有代码求值完毕以前,页面的其余内容都不会被浏览器加载或显示. 在使用嵌入式时,不要在代码中的任何地方出现script字符串。 在现代的web应用程序一般都不再将JS文件放在开头,而是放在之后,这样可以在保证在解析包含JS代码之前,页面的内容将完全呈现在浏览器中。这样会加强用户体验。 4.异步脚本 HTML5为script元素定义了async属性,可表示当前脚本不必等待其他脚本,也不必阻塞文档呈现。这个属性与defer属性类似,都用于改变处理脚本的行为

基于VUE的SPA单页应用开发-加载性能篇

拥有回忆 提交于 2020-01-31 07:50:20
1、基于异步数据的vue页面刷新 先看看基于异步数据的vue页面刷新后,都发生了啥~ 如图所示: 图1 基于异步数据的vue页面刷新 网络请求图 步骤如下: step1:请求页面; step2:请求页面内的css、js资源; step3:vue页面初始化; step4:页面渲染,框架呈现[无数据内容]; step5:请求页面实际数据; step6:数据ready,填充视图,图片资源加载; step7:完整页面呈现。 步骤分析: step1:请求html文件; step2:请求资源; 优化点: a、多次访问的资源缓存:可从MD5、组件打包方式等角度再细分; b、app框架资源预加载:如果是hybird开发的app,可通过app框架预加载的方式,将单页应用的资源提前缓存。 单页的css、js资源,与传统页面的资源相比,规模要大很多。其集合了几乎单页应用的所有css、js文件,随着应用的规模大小成正比增长。合理的缓存处理,将大大提升页面加载速度。a、b两点可实现性能加速的原因是,本地加载过的资源,会缓存在本地;页面请求资源时,浏览器会先查找缓存,如果有缓存,则本地取,节省了网络请求。[可了解浏览器的强缓、弱缓] step3:页面初始化; 优化点: 利用v-if指令按需加载组件~ 由于vue在初始化过程中,会深度查找子组件,生成依赖,构建虚拟DOM,所以其初始化时间相对较长

Web端实现视频通话

我们两清 提交于 2020-01-31 05:30:06
博主在完成自己的毕业设计时,需要完成一个音视频通话功能,于是采用了腾讯云的视频接口,将其实现出来,,以下是项目截图: 以下是主要代码: <!doctype html> <html lang= "en" > <head> <!-- Required meta tags --> <meta charset= "utf-8" > <meta name= "viewport" content= "width=device-width, initial-scale=1, shrink-to-fit=no" > <!-- Material Design for Bootstrap fonts and icons --> <!-- <link rel= "stylesheet" href= "https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons" > --> <!-- Material Design for Bootstrap CSS --> <link rel= "stylesheet" href= "./css/bootstrap-material-design.min.css" > <link rel= "stylesheet" href= "./css/common.css" >