js代码

js 排序:sort()方法、冒泡排序、二分法排序。

梦想的初衷 提交于 2020-03-06 21:43:00
js中的排序,这里介绍三种,sort()方法、冒泡排序、二分法排序。 1、sort方法 写法: 数组.sort(); 返回排好序的数组,如果数组里是数字,则由小到大,如果是字符串,就按照第一个字符的字符编码大小排序。 写法2: 数组.sort(function(a,b){ return a-b }); 表示从大到小,(如果写 retrun b-a 则由大到小排序); 不详细解释了。 2、冒泡排序。 原理是,直接将原理可能不好懂,我们还是按照下面的方法去讲吧,这样容易懂些。 //冒泡排序function quickSort(arr){ for(var i=0; i<arr.length-1; i++){ console.log(i); for(var j=0; j<arr.length-i-1; j++){ if(arr[j] > arr[j+1]){ var oldVal = arr[j]; arr[j] = arr[j+1]; arr[j+1] = oldVal; } } } } 我们假设要排序的数组是arr = [10, 8, 7, 6]; 原理: 这里arr长为3,外层循环三次,当外层for循环第一次循环的时候,即i=0的时候,进入里层循环,这时候将arr循环3次(4-0-1 = 3),即将arr的第一个数挨个于后面三个数比较,如果它大于后面的某个数,就与其交换位置

优秀js开源框架-jQuery使用手册(1)

不羁的心 提交于 2020-03-06 12:30:36
对css和XPath的支持,使我们写js变得更加方便!如果你不是个js高手又想写出优 秀的js效果,jQuery可以帮你达到目的! 下载地址:http://jquery.com 下载完成后先加载到文档中,然后我们来看个简单的例子! <script type="text/javascript" src="scripts/jquery-1.2.3.js"></script> <script language="javascript" type="text/javascript"> $(document).ready(function(){ $("a").click(function() { alert("Hello world!"); }); }); </script> 上边的效果是点击文档中所有a标签时将弹出对话框,$("a") 是一个jQuery选择器,$本身表示一个jQuery类,所有$()是构造一个jQuery对象,click()是这个对象的方法,同理$(document)也是一个jQuery对象,ready(fn)是$(document)的方法,表示当document全部下载完毕时执行函数。 在进行下面内容之前我还要说明一点$("p")和$("#p")的区别,$("p")表示取所有p标签(<p></p>)的元素,$("#p")表示取id为"p"(<span id="p"><

js自动刷新页面代码

被刻印的时光 ゝ 提交于 2020-03-06 09:33:42
<script language="JavaScript"> function myrefresh(){ window.location.reload(); } setTimeout('myrefresh()',1000); //指定1秒刷新一次 </script> 页面自动刷新代码大全 1) 自动刷新页面 在 <body> 与 </body> 之间加入: <META http-equiv=refresh content=”10;url=../index.htm”> 10表示间隔10秒刷新一次 2) <script> window.location.reload(true); </script> 如果是你要刷新某一个iframe就把window给换成frame的名字或ID号 3) <script> window.navigate(”本页面url”); </script> 4> function abc() { window.location.href=”/blog/window.location.href”; setTimeout(”abc()”,10000); } 刷新本页: Response.Write(”<script>window.location.href=”/window.location.href”;</script>”) 刷新父页: Response.Write(”

JS变量函数提升机制

两盒软妹~` 提交于 2020-03-06 04:22:28
看了大佬的博客 JavaScript引擎运行原理解析 ,对其中的代码段产生好奇。 <script> console.log(a); // 打印[Function: a] var a = 1; function a(){console.log(2);} console.log(a); var a = 3; console.log(a); function a(){console.log(4);} console.log(a) </script> ———————————————— 版权声明:本文为CSDN博主「开心大表哥」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/a419419/article/details/82906049 从结果脑补JS引擎的机制。。。 JS的函数声明 应该是 函数声明(像C里面的函数声明: [返回值类型] [函数名](参数列表);)+ 函数体。为什么说这个呢,函数不像变量有声明和赋值两步走,我觉得JS里函数就是一体的,没得像先声明个函数名字再定义函数代码的,如果这样,那就不叫函数声明了,直接是函数表达式不好莫。为什么是应该是呢,因为我不知道官方文档在哪。。。 函数声明和变量提升后的顺序:猜测1——函数前变量后;猜测2——变量前函数后;猜测3—

GitHub上整理的一些工具

拥有回忆 提交于 2020-03-06 00:52:13
GitHub上整理的一些工具 GitHub 2015-11-19 10:10:47 发布 您的评价: 0.0 收藏 5收藏 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT技术问答网站 GitHub:全球最大的源代码管理平台,很多知名开源项目都在上面,如Linux内核, OpenStack等免费的it电子书: http://it-ebooks.info/ DevStore:开发者服务商店 不错的书籍 人件 人月神话 代码大全2 计算机程序设计艺术 程序员的自我修养 程序员修炼之道 高效能程序员的修炼(成为一名杰出的程序员其实跟写代码没有太大关系) 深入理解计算机系统 软件随想录 算法导论(麻省理工学院出版社) 离线数学及其应用 设计模式 编程之美 黑客与画家 编程珠玑 C++ Prime Effective C++ TCP/IP详解 Unix 编程艺术 《精神分析引论》弗洛伊德 搞定:无压力工作的艺术 平台工具(都是开源的好东东哦) Redmine/Trac:项目管理平台 Jenkins

前端学习(35)~js学习(十二):预编译

醉酒当歌 提交于 2020-03-06 00:01:53
我们在上一篇文章《作用域》中简单讲过“变量提升”,今天来讲一下预编译,这对我们深入理解 变量提升 会有帮助。 JavaScript 运行三部曲 语法分析 预编译 解释执行 预编译前奏 在讲预编译前,我们先来普及下面两个规律。 两个规律 规律1:任何变量,如果未经声明就赋值,此变量是属于 window 的属性 ,而且不会做变量提升。(注意,无论在哪个作用域内赋值) 比如说,如果我们直接在代码里写 console.log(a) ,这肯定会报错的,提示找不到 a 。但如果我直接写 a = 100 ,这就不会报错,此时,这个 a 就是 window.a 。 规律2:一切声明的全局变量,全是window的属性。 (注意,我说的是在全局作用域内声明的全局变量,不是说局部变量) 比如说,当我定义 var a = 200 时,这此时这个 a 就是 window.a 。 由此,我们可以看出: window 代表了全局作用域(是说「代表」,没说「等于」 )。 举例 掌握了上面两句话之后,我们再来看看下面的例子。 function foo() { var a = b = 100; // 连续赋值 } foo(); console.log(window.b); // 在全局范围内访问 b console.log(b); // 在全局范围内访问 b,但是前面没有加 window 这个关键字 console

爱奇艺密码加密js分析

百般思念 提交于 2020-03-05 23:57:21
工具:发条js调试工具: 使用:封装成函数后 问题:通过js找出passwd加密的手段 解决: 1.找出js中加密码代码 通过上图可以发现密码是由e.passwd = r.rsaFun(e.passwd) rsaFun 这个函数实现的,搜索这个函数拷贝出逻辑到js调试工具,封装成函数,如下图: 思考:这个代码中还有两个函数未定义,同上使用search,查找相关函数的复制到调试工具上 改变下函数的调用方式使函数间关联起来,执行格式化和加载代码后,发现有些变量未定义,直接手动定义如a = {} 结果:计算结果等于密码加密后的字符串,计算逻辑正确 来源: CSDN 作者: shixiazhu1989 链接: https://blog.csdn.net/zhushixia1989/article/details/104684210

gulp相关

穿精又带淫゛_ 提交于 2020-03-05 22:37:32
一、简介 gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器; gulp是基于Nodejs的自动任务运行器,她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。 二、安装   通过 npm 来安装 gulp;(设置镜像源可以通过cnpm安装) 全局安装   在cmd中执行 cnpm i -g gulp 查看是否正确安装:命令提示符执行gulp -v,出现版本号即为正确安装 三、配置信息   1. npm init -y 生成package.json 文件 会自动存储下载的第三方依赖包信息,存储信息如下: { "name": "zhang", "version": "1.0.0", "description": "", "main": "gulpfile.js", "devDependencies": { "@babel/core": "^7.8.7", "@babel/preset-env": "^7.8.7", "del": "^5.1.0", "gulp": "^4.0.2",

页面加载渲染的优化(一)

允我心安 提交于 2020-03-05 16:28:18
1.HTML本身是通过网址请求回来的,由字节流转换成字符流,浏览器进行词法分析,分析成词法的token,从上到下,不同 >的标签类型会解析成不同的对象,然后加载到DOM树上。 2.HTML中会通过link引入其他资源,这时会并发的请求静态资源,请求回来之后会和CSS资源进行结合,生成渲染树。 3.只有DOM树和CSS树都生成之后才会进行渲染,布局,绘制。 特点 1.顺序执行,并发加载(设3-4个CDN域名去最大化并发加载) 2.是否阻塞 3.依赖关系 4.引入方式 场景: 1.页面出来了,样式没有出来,闪退等,是因为没有遵循好依赖关系,如果CSS放在header中去引入,那么页面就会等待CSS加载完毕生成CSS树之后再渲染,就不会出现闪动。 2.JS的执行顺序,通过JS 的async标签进行异步加载,梳理好依赖关系。 3.方式:JS通过script会有阻塞问题,可以通过defer,async标签更好。 3.是否动态引入?判断是不是在需要的时候再去加载。SPA单页应用应该在路由到某个页面的时候再去加载那个路由的内容,要异步动态的去引入内容。 顺序执行,并发加载 1.词法分析时,token的获取是从下到下顺序执行的 2.并发请求外部资源 3.并发上限:某个域名的限制 CSS阻塞 1.CSS在head中会阻塞页面的渲染,页面需要link标签里面的样式内容才能去渲染,但为了避免闪动

js中级总结

与世无争的帅哥 提交于 2020-03-05 13:29:56
js中级总结   this问题;   this是JavaScript的关键字 用途:指向某一个对象   如何判断this的指向   函数内:两种情况:1.以函数形式调用(不带 . 指向window )            2.以方法形式调用(带 . this指向 . 前面的)   函数外:this指向window   1.自调用函数内this都是window   2.定时器this指向window   3.事件里面的this 指向触发事件的元素   4.构造函数里this指向他的实例(子对象)   怎样替换函数内的this?   1.call() 替换.前面的this并执行那个函数   2.apply()   3.bind()   A.fn.call(B,5) B取代fn中的this,并调用fn()   call和apply,bind只能是函数(方法)内,或者是函数对象   call前面对象必须是函数对象   var a=45;   var b={     a:12     }   function fn(){     console.log(this.a)     }   fn.call(b)   面向对象:   以对象的方法来写业务逻辑   1.单例模式 var obj={}   2.工厂模式 function fn(){            var obj={}