js代码

动态加载、移除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 ||

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:05:28
关于闭包,我曾经一直觉得它很讨厌,因为它一直让我很难搞,不过有句话怎么说来着,叫做你越想要一个东西,就要装作看不起它的样子。所以,抱着这个态度,我终于掳获了闭包。 首先来认识一下什么是闭包,闭包,一共有三大特征: 1 函数嵌套函数 2 内部的函数可以引用外部函数的参数和变量 3 参数和变量不会被垃圾回收机制所收回 举个栗子: function aaa(){ var b = 5; function bbb(){ b++; alert(b); } } aaa(); 这个栗子就是很明显的闭包,函数里面嵌套函数,同时内部的函数bbb又可以访问到外部函数aaa中的变量,至于第三个特征,我们都知道在JS解析机制中,函数内的变量在函数调用完后会被销毁,但在这里b并没有被销毁,因为他还会被里面的函数bbb引用,那么怎么证明呢? 首先,我们要注意,在上面这个栗子中,是不会弹出值的,因为里面的函数bbb,只是声明了,并没有被调用,我们都知道,函数它不会主动执行的,那么怎么执行呢,看下面: function aaa(){ var b = 5; function bbb(){ b++; alert(b); // 6 } return bbb; } var c = aaa(); // 此时aaa被执行 同时把返回结果bbb 赋给c c(); //6 将里面的函数作为返回结果,然后可以调用,这种经常会遇见

vue 框架

自闭症网瘾萝莉.ら 提交于 2020-02-11 22:13:11
目录 Vue 框架 主要内容: Vue框架:前台界面,页面逻辑 DRF框架:数据(接口) Luffy项目:前后台分离项目 Vue框架 (1) 定义:javascript 渐近式框架 (2)优势: (3)为什么学习vue: (4)如何使用Vue Vue环境简单搭建:通过script标签导入vue文件即可 el:挂载点 插值表达式 过滤器 以上所学实例成员(实例属性,自我完成小结) 文本指令 事件指令 js函数补充 js函数补充 课堂精细总结: 1、路飞项目所有知识点概况(了解) 2、Vue框架的介绍 3、基础实例成员 4、基础指令 5、js对象补充: Vue 框架 主要内容: Vue框架:前台界面,页面逻辑 (1)指令 (2)实例成员 (3)组件 (4)项目开发 DRF框架:数据(接口) (1)基础的模块:请求、响应、解析、渲染、 (2)序列化、三大特征 (3)过滤、收索、排序、分页 (4)异常、第三方jwt、restful接口规范 Luffy项目:前后台分离项目 (1)项目的登陆认证、课堂商机销售、项目完成 (2)短信、支付宝、服务器、上线、redis、celery、git Vue框架 (1) 定义:javascript 渐近式框架 渐进式:可以控制一个页面的一个标签,也可以控制一系列标签,也可以控制整个页面,甚至可以控制整个前台项目。 (2)优势: 有指令(分支结构,循环结构,.

Js综合面试题

纵然是瞬间 提交于 2020-02-11 21:42:24
考点: 1、变量提升和函数提升 2、this指向 3、变量查找规则及作用域 4、运算符优先级 5、实例对象查找属性(隐式原型链) 例题: 原: function Foo ( ) { getName = function ( ) { alert ( 1 ) ; return this ; } } Foo . getName = function ( ) { alert ( 2 ) } ; Foo . prototype . getName = function ( ) { alert ( 3 ) } ; var getName = function ( ) { alert ( 4 ) } ; function getName ( ) { alert ( 5 ) } 1、遇到function关键字会将代码整体提升 (函数提升) 2、遇到var关键字声明的变量,会将变量提升,变量值不动 (变量提升) 3、若两者冲突,则只会保留函数的定义 提升后: function Foo ( ) { getName = function ( ) { //由于此函数作用域中未声明变量getName,所以去全局作用域中找,所以将下面的getName重赋值 alert ( 1 ) ; return this ; } } //var getName; 和function getName()冲突,省略 /*

简单详细讲解js闭包(转载)

不问归期 提交于 2020-02-11 21:03:16
闭包,其实是一种语言特性,它是指的是程序设计语言中,允许将函数看作对象,然后能像在对象中的操作般在函数中定义实例(局部)变量,而这些变量能在函数中保存到函数的实例对象销毁为止,其它代码块能通过某种方式获取这些实例(局部)变量的值并进行应用扩展。 我们的理解: 其实闭包就是一个函数,一个外部函数通过调用函数并return返回出内部函数,这里的内部函数就是一个闭包;此时在内部函数中是可以访问到外部函数的变量的; 要想理解闭包,首先我们要了解栈堆内存和作用域链;首先我们来讲解栈堆内存: 首先我们来看个demo: var a=1; var obj={"name":"咸鱼"} 上面简单的两句代码,其实就是在内存中做了两件事,效果图如下: 在js简单实现深浅拷贝(https://www.cnblogs.com/dengyao-blogs/p/11466598.html)一文中我们知道基本数据类型是存储在栈内存中的,引用数据类型是存储在堆内存中的,其实上面的两句代码在内存中就是做了两件事: 1.首先在栈内存中开辟了一块空间用来存放a的变量和值; 2.在堆内存中开辟了一块空间用来存储obj的值,同时在将地址指向栈内存中的变量名obj 如果我们在代码下面再加上一句obj={"name":'张三"},这个时候我们之前存储name为咸鱼的值也就是obj原来的值会被js中的垃圾回收机制回收掉

ASP.NET MVC之Bundle压缩JS和CSS

久未见 提交于 2020-02-11 20:00:35
介绍Bundle之前先引用《淘宝技术这十年》中一段话,对Web前端稍微有点常识的人都应该知道,浏览器下一步会加载页面中用到的CSS、JS(JavaScript)、图片等样式、脚本和资源文件。但是可能相对较少的人才会知道,你的浏览器在同一个域名下并发加载的资源数量是有限的,例如IE 6和IE 7是两个,IE 8是6个,chrome各版本不大一样,一般是4~6个。Bundle是ASP.NET 4.5中的一个新特性,可 用来将js和css进行压缩(多个文件可以打包成一个文件,也可以说是合并多个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便查找问题。如果你新建一个有模板的MVC4项目,就可以直接使用了。 官方写法 新建完一个MVC4项目之后可以在APP_Start中的BundleConfig.cs看到这样的代码: public class BundleConfig { // 有关 Bundling 的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=254725 public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~

js中事件冒泡的理解与分析

放肆的年华 提交于 2020-02-11 19:32:07
一. 事件 事件的三个阶段:事件捕获 -> 事件目标 -> 事件冒泡 捕获阶段:先由文档的根节点document往事件触发对象,从外向内捕获事件对象; 目标阶段:到达目标事件位置(事发地),触发事件; 冒泡阶段:再从目标事件位置往文档的根节点方向回溯,从内向外冒泡事件对象 事件捕获 :事件发生时首先发生在document上,然后依次传递给body,最后到达目的节点(即事件目标), 事件流模型:div →body→ html→ document 。 事件冒泡 :事件到达事件目标之后不会结束,会逐层向上冒泡,直至document对象,跟事件捕获相反。 onclick 事件冒泡,重写onlick会覆盖之前属性,没有兼容性问题 addEventListener(event.type, handle, boolean); IE8及以下不支持,属于DOM2级的方法,可添加多个方法不被覆盖。事件类型没有on,第三个参数false,表示在事件第三阶段(冒泡)触发,true表示在事件第一阶段(捕获)触发。如果绑定同一个事件同一个方法,只会执行一次,所以如果handle是同一个方法,只执行一次。 attachEvent(event.type, handle ); IE特有,兼容IE8及以下,可添加多个事件处理程序,只支持冒泡阶段,可以多次进行绑定,所以如果handle是同一个方法,绑定几次执行几次