js

8大排序算法总结 JS 实现

大兔子大兔子 提交于 2020-02-12 03:50:14
//bubble sort ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 function bubbleSort(arr,comp){ for (var i = 0 ;i < arr.length; i++){ for (var j = 0 ; j < arr.length - i - 1 ; j++){ if (comp(arr[j],arr[j+ 1 ])){ exch(arr,j,j+ 1 ); } } } } function exch(a,i,j){ var tmp = a[i]; a[i] = a[j]; a[j] = tmp; } var input = new Array( 5 , 1 , 4 , 2 , 3 ); bubbleSort(input,function(a,b){ return a > b;}); console.log(input); input = new Array( 5 , 1 , 4 , 2 , 3 ); bubbleSort(input,function(a,b){ return a < b;}); console.log(input); //selection sort ? 1 2 3 4 5 6 7 8 9 10 11

js模块化开发

旧巷老猫 提交于 2020-02-12 03:05:31
一、什么是模块化? 模块化是指解决一个复杂的问题时自顶向下把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。 二、为什么要模块化(模块化的好处)? 1.更好地分离   如果要加载多个就得就得放置多个script标签,如果是加载模块的话,如seaJS,就只需加载一个sea.js即可,这样对于HTML和JavaScript分离很有好处。 2.更好的代码组织方式   如果单个文件越来越大,维护起来问题出问题的几率也会越来越大,一个人开发还好,如果是多人开发,不同的代码风格,超多的业务逻辑混杂在一起,不要说维护了,光想想就蛋疼。模块化的开发,一个文件就是一个模块,控制了文件的粒度,每个模块可以专注于一个功能,在多人开发时,各自管好自己的模块就行。 3.按需加载   还是以单个文件来说,当文件大到一定程度,性能问题也随之而来。合并文件是能减少请求,性能也会有所提升,但是当文件大到一定的体积时,此时的下载时间可能并不会比多个小文件的下载时间短,此时就需要权衡请求数和文件体积的关系了。 4.避免命名冲突   JavaScript本身是没有命名空间的,为了避免命名冲突,经常会使用对象或闭包的办法来避免。用对象仅仅是降低了冲突的概率而已,那经常使用的jQuery开发来说,无论是往$上扩张还是在$.fn上扩展,开发的人多了难免会起冲突。或者用自定义对象,搞个好几层,不光是写起来难记

【python3】 django2.0 加载css 、js 、img 等静态文件

喜夏-厌秋 提交于 2020-02-12 03:02:04
python : 3.6.4 django : 2.0 1 文件目录 /var/www/mysite 2 nginx配置: server { listen 8000; #暴露给外部访问的端口 server_name localhost; charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; #外部访问8000就转发到内部8997 } location /static { alias /var/www/mysite/static; } } 3 setting.py 配置 STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), os.path.join(BASE_DIR, "recommend", "static"), ] 4 html 配置 {% load static %} <!DOCTYPE html> <html> <head> <title>test</title> <link rel="stylesheet" href="{% static '/css/index.css' %}"> 5 重启uwsgi cd /var/www/mysite killall -9 uwsgi

Js中去除数组中重复元素的6种方法

≡放荡痞女 提交于 2020-02-12 02:23:54
方法一: Array.prototype.method1 = function(){ var arr=[]; //定义一个临时数组 for(var i = 0; i < this.length; i++){ //循环遍历当前数组 //判断当前数组下标为i的元素是否已经保存到临时数组 //如果已保存,则跳过,否则将此元素保存到临时数组中 if(arr.indexOf(this[i]) == -1){ arr.push(this[i]); } } return arr; } 方法二: Array.prototype.method2 = function(){ var h={}; //定义一个hash表 var arr=[]; //定义一个临时数组 for(var i = 0; i < this.length; i++){ //循环遍历当前数组 //对元素进行判断,看是否已经存在表中,如果存在则跳过,否则存入临时数组 if(!h[this[i]]){ //存入hash表 h[this[i]] = true; //把当前数组元素存入到临时数组中 arr.push(this[i]); } } return arr; } 方法三: Array.prototype.method3 = function(){ //直接定义结果数组 var arr=[] ; for(var i = 1; i <

动态加载、移除js、css

三世轮回 提交于 2020-02-12 02:21:36
本文简单介绍动态加载、移除、替换js/css文件 。有时候我们在写前端的时候,会有出现需要动态加载一些东如css js 这样能减轻用户加载负担,从而提高响应效率。下面贴出代码。 //JS写法 <script language="JavaScript"> //动态加载一个js/css文件 function loadjscssfile(filename, filetype){ if (filetype=="js"){ var fileref=document.createElement('script') fileref.setAttribute("type","text/javascript") fileref.setAttribute("src",filename) } else if (filetype=="css"){ var fileref=document.createElement("link") fileref.setAttribute("rel","stylesheet") fileref.setAttribute("type","text/css") fileref.setAttribute("href",filename) } if (typeof fileref!="undefined") document.getElementsByTagName("head"

js蜘蛛网更随鼠标特效

若如初见. 提交于 2020-02-12 01:54:13
代码 1 <script> 2 ! 3 function() { 4 function n(n, e, t) { 5 return n.getAttribute(e) || t 6 } 7 function e(n) { 8 return document.getElementsByTagName(n) 9 } 10 function t() { 11 var t = e("script"), 12 o = t.length, 13 i = t[o - 1]; 14 return { 15 l: o, 16 z: n(i, "zIndex", -1), 17 o: n(i, "opacity", .9), //透明度 18 c: n(i, "color", "255, 102, 153"), //颜色 19 n: n(i, "count", 99) 20 } 21 } 22 function o() { 23 a = m.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, 24 c = m.height = window.innerHeight || document.documentElement.clientHeight ||

Vue框架初识

和自甴很熟 提交于 2020-02-12 01:30:04
课程内容 """ Vue框架:前台界面,页面逻辑 1)指令 2)实例成员 3)组件 4)项目开发 DRF框架:数据(接口) 1)基础的模块:请求、响应、解析、渲染 2)序列化、三大认证 3)过滤、搜索、排序、分页 4)异常、第三方jwt、restful接口规范 Luffy项目:前后台分离项目 1)项目的登录认证、课程商机销售、项目完成 2)短信、支付宝、服务器、上线、redis、celery、git """ Vue框架 """ 1)定义:javascript渐进式框架 渐进式:可以控制一个页面的一个标签,也可以控制一系列标签,也可以控制整个页面,甚至可以控制整个前台项目 2)优势: 有指令(分支结构,循环结构...),复用页面结构等 有实例成员(过滤器,监听),可以对渲染的数据做二次格式化 有组件(模块的复用或组合),快速搭建页面 虚拟DOM 数据的双向绑定 单页面应用 数据驱动 3)为什么学习vue: 前台框架:Angular(庞大)、React(精通移动端)、Vue(吸取前两者优势,轻量级) Vue一手文档是中文 实现前后台分离开发,节约开发成本 4)如何使用Vue 简单使用 """ Vue环境简单搭建:通过script标签导入vue文件即可 """ 1)cdn <script src="https://cn.vuejs.org/js/vue.js"></script> 2

JS模块化开发

谁说胖子不能爱 提交于 2020-02-12 01:21:28
在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可;如今CPU、浏览器性能得到了极大的提升,很多页面逻辑迁移到了客户端(表单验证等),随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层出不穷,前端代码日益膨胀 这时候JavaScript作为嵌入式的脚本语言的定位动摇了,JavaScript却没有为组织代码提供任何明显帮助,甚至没有类的概念,更不用说模块(module)了,JavaScript极其简单的代码组织规范不足以驾驭如此庞大规模的代码 模块 既然JavaScript不能handle如此大规模的代码,我们可以借鉴一下其它语言是怎么处理大规模程序设计的,在Java中有一个重要带概念——package,逻辑上相关的代码组织到同一个包内,包内是一个相对独立的王国,不用担心命名冲突什么的,那么外部如果使用呢?直接import对应的package即可 import java.util.ArrayList; 遗憾的是JavaScript在设计时定位原因,没有提供类似的功能,开发者需要模拟出类似的功能,来隔离、组织复杂的JavaScript代码,我们称为模块化。 一个模块就是实现特定功能的文件,有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。模块开发需要遵循一定的规范,各行其是就都乱套了 规范形成的过程是痛苦的

js闭包

扶醉桌前 提交于 2020-02-12 00:21:20
  前两天去面试,被面试官问到平常写关于什么方面的闭包知识,顿时有点懵逼,虽然知道闭包是个大概什么概念,但是在平常的工作中,貌似用的真的比较少,这几天通过翻阅书籍,就想着来写一篇关于闭包的文章,了解得比较浅,希望看到的大神可以多多指点。 1.什么是闭包   闭包也就是指可以访问其他函数作用域中变量的函数,通常创建闭包的方式就是在一个函数内创建一个函数。 2.闭包的特性   闭包主要有以下三个特性:     1.函数嵌套函数     2.函数内部可以访问内部的参数和变量     3.被访问的参数和变量不会被垃圾回收机制回收。 3.变量作用域   想要更好地理解闭包,就不得不理解js作用域和作用域链的概念。   js中的变量不外乎两个:全局变量和局部变量;   js语言的特点就是函数内部可以访问全局中定义的变量,但是函数外部却不能访问函数内部定义的局部变量   例1:var global = ‘global’; //定义一个全局变量        function test1(){       console.log(global);                       };                                        test(); //输出 global    例2:         注:js没有块级作用域的概念,只有函数作用域 4

js闭包

会有一股神秘感。 提交于 2020-02-12 00:06:43
啥是闭包? 闭包是能读取其他函数内部变量的函数,js中能读取一个函数内部变量的只有该函数的后代函数,在函数的外部是访问不了函数的变量的. 需要操作某个函数的内部变量时,不能把所有的操作都放在函数内部,这样就需要内部函数作为一个桥梁,将函数的信息输送出来 注意一点,在函数内部声明变量时必须要使用var,否则系统会认为你声明的是一个全局变量 声明变量时,如果不写var,系统会认为声明的是window.a,即window对象的属性 闭包有啥用? 1.可以防止全局的命名空间被污染   --如果要写一个累加器,不使用闭包的话,就必须定义一个全局的变量来接收 var count = 0; function add(){ count++; console.log(count); }     //每次调用add函数count就会加1 add(); add(); add();     //这个函数如果count变量放在函数内部,每次调用函数时count都会被重置为0,不能达到累加的作用     //如果使用闭包就不会出现这一问题 2.便于模块化开发 使用闭包开发的项目各个功能都被封装到了各自的函数中,之间互不影响 3.安全性 将变量都变为私有的,只有通过内部函数才能访问函数的变量,能够提高成程序的安全性 闭包咋写啊? 上面的例子如果写成闭包的形式就是这样: function add(){ var