js代码

NodeJS基础学习总结

一曲冷凌霜 提交于 2020-03-30 03:19:17
一、nodeJS解释   JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。    每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情 。例如运行在浏览器中的JS的用途是操作DOM, 浏览器就提供了 document 之类的内置对象 。而运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器, NodeJS就相应提供了 fs 、 http 等内置对象 。   尽管存在一听说可以直接运行JS文件就觉得很酷的同学,但大多数同学在接触新东西时首先关心的是有啥用处,以及能带来啥价值。   NodeJS的作者说,他创造 NodeJS的目的是为了 实现高性能Web服务器 ,他 首先看重的是事件机制和异步IO模型的优越性 ,而不是JS。但是他需要选择一种编程语言实现他的想法,这种编程语言不能自带IO功能,并且需要能良好支持事件机制。JS没有自带IO功能,天生就用于处理浏览器中的DOM事件,并且拥有一大群程序员,因此就成为了天然的选择。   如他所愿,NodeJS在服务端活跃起来,出现了大批基于NodeJS的Web服务。而另一方面,NodeJS让前端众如获神器,终于可以让自己的能力覆盖范围跳出浏览器窗口

js 面向对象实现多个“倒计时器”

回眸只為那壹抹淺笑 提交于 2020-03-29 22:18:08
代码 <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > < html xmlns ="http://www.w3.org/1999/xhtml" > < head > < meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" /> < title > JavaScript测试文件 </ title > </ head > < body > < div >< span id ="hour0" > 0 </ span > 小时 </ div > < div >< span id ="minute0" > 0 </ span > 分 </ div > < div >< span id ="seconds0" > 10 </ span > 秒 </ div > < br /> < div >< span id ="hour1" > 1 </ span > 小时 </ div > < div >< span id ="minute1" > 31 </ span > 分 </ div > < div >< span id ="seconds1" > 31

鼠标移至图片后抖动的JS代码

和自甴很熟 提交于 2020-03-29 22:15:11
代码简介: 仿QQ的窗口抖动特效,鼠标移到到图片上面,图片就开始疯狂的抖动,好像对你的鼠标过敏一样,比较有意思,有会你的网页增加了修改功能。 代码内容: View Code <html><head><title>鼠标移至图片后抖动的JS代码 - www.webdm.cn</title></head><BODY><style>.shakeimage{position:relative}</style><img src=http://www.webdm.cn/images/wall1_s.jpg class="shakeimage" onMouseover="init(this);rattleimage()" onMouseout="stoprattle(this)"><script language="JavaScript1.2">var rector=3var stopit=0 var a=1function init(which){stopit=0shake=whichshake.style.left=0shake.style.top=0}function rattleimage(){if ((!document.all && !document.getElementById)||stopit==1)returnif (a==1){shake.style.top=parseInt

JS表单验证

强颜欢笑 提交于 2020-03-29 06:59:07
HTML部分代码:         CSS样式:     消息提示框样式:        JS正则表达式代码:     电话:          邮箱:             密码:          再次输入密码验证:             整个表单页面验证:            完整代码:      <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>注册练习</title> <link rel="stylesheet" href="dist/css/bootstrap.min.css"/> <style> .err{ color: red; font-size: 12px; height: 16px; padding-left: 40px; margin-top: 10px; } </style></head><body> <div> <h3>注册</h3> <form action="#" method="post" id="myform"> <p> 手机:<input type="text" name="mobile" id="phone" onblur="mobiles(this)" /><span class="err" id="mobile"></span> </p> <p>

JS的函数和对象

牧云@^-^@ 提交于 2020-03-29 00:28:47
1.递归 在函数的内部调用自身,默认是一个无限循环。 2.匿名函数 没有名称的函数 function(){ } (1)创建函数 函数声明 function fn1(){ } 函数表达式 var fn2=function(参数){ 函数体; } 变量名就是函数的名称 对比函数声明和函数表达式的区别 函数声明创建函数存在提升,可以在任意位置创建; 函数表达式使用变量创建的,只是存在变量提升,不存在函数提升,只能先创建,再调用。 (2)匿名函数自调用 目的:创建函数作用域包裹起来,防止污染全局。 (function(形参列表){ //函数体中的变量和函数不能被外部访问 })(实参列表); (3)回调函数 把匿名函数以实参的形式传递,意味着形参就是传递的匿名的函数名称 function fn(a){ //调用fn的时候,匿名函数赋值给参数a,a就是函数名称 a() //执行传递的匿名函数函数体中的代码 } fn( function(){ ... } ); 3.全局函数 parseInt()/parseFloat()/isNaN() encodeURI() 对网址中的汉字进行编码 decodeURI() 对已经编码网址进行解码 isFinite() 判断一个值是否为有限值 是->true 不是-false 2/0 ->Infinity(无穷) 0/2 ->0 eval()

js中级小知识2

落爺英雄遲暮 提交于 2020-03-28 06:50:21
1.面向对象 js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差。所以作者就收到java和c的影响,往 面向对象 靠齐。js天生有一个Object,但他没有面向对象的特征(封装,继承,多态)。最后研究出了构造函数。 构造函数最终目的是生成对象。 我们把封装的那个函数叫 类 类里面的属性是私有的。 类原型上的属性是公有的,可继承的。 1.类身上天生自带一个prototype的属性,属性是对象 2.prototype对象天生有一个constructor属性,属性值就是类本身 3.实例天生有一个__proto__指向你自己类的原型 原型链主要针对对象的属性来说 作用域链主要针对变量来说的 var和a的区别 没有带var的变量就不能存放到内存地址中。就没有变量提升这种说法了。相当于给window加了一个属性window.a。 带var可以存放在内存地址中,有变量提升,同时也行当于给window加了一个属性window.a 来源: https://www.cnblogs.com/guhuai/p/9910901.html

js笔记10

随声附和 提交于 2020-03-28 06:12:43
1.闭包    封装:减少代码的冗余,提高代码的重复利用率   继承:本来需要开辟多个空间,只需要开辟一个空间,减少内存的消耗,提高性能   函数归属:函数归属谁,跟他在哪调用没有关系,而跟他在哪定义有关   闭包的定义:函数在调用的时候,会形成一个私有作用域,内部的变量不能被外部访问,这种保护机制叫闭包(这就意味着函数调用完毕,这个函数形成的栈内存就会被销毁)   栈内存被销毁的案例:    function fn(){     var a=12;     a++;      console.log(a)   }   fn() //13   fn() //13   fn() //13 (因内部存在一个变量,所以在函数内部栈内存就会被销毁)       但有时候,我们不希望他被销毁 ,所以需要return   案例:    function fn(){     var a=12     return function(){       a++;       console.log(a)     }   }   var ss=fn()   ss()  //13   ss()  //14   ss()  //15    解析:       fn()调用完毕后得到的是一个匿名函数,但这个匿名函数在fn()这个作用域下定义的,所以匿名函数内部的变量在fn()作用域下查找

js面向对象

天大地大妈咪最大 提交于 2020-03-28 06:00:08
                             JS——面向对象 1.面向对象:  js一开始就是写网页特效 面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差。所以作者就受到Java和c语言的影响,往 面向对象 靠齐。js天生有一个object,但他没有面向对象的特征(封装 继承 多态)。最后研究出了 构造函数。 构造函数的最终目的是生成对象。 我们把封装的那个函数叫类 类里面的属性是私有的。 类原型上的属性是公有的,可继承的。 (1)类身上自带一个prototype的属性,属性值是对象。 (2)prototype对象天生有一个constructor属性,属性值是类本身。 (3)实例天生有一个--proto--指向自己类的原型。    原型链主要针对 对象的属性 来说; 作用域链主要是针对 变量 来说的。 2.var a和a的区别: 没有带var的变量就不能存放到内存地址中 , 就没有变量提升这种说法了。相当于给window加了一个属性window.a。 带var 可以存放在内存地址中,有变量提升,同时也相当于给window加了一个属性window.a 来源: https://www.cnblogs.com/yuanjingjing/p/9896339.html

js中级1.0

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-28 05:59:57
面向对象 Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差。所以作者就收到java和c的影响,往面向对象靠齐。Js天生有一个Object,但他没有面向对象的特征(封装,继承,多态)。最后研究出了构造函数。 构造函数最终目的是生成对象。 我们把封装的那个函数叫 类 类里面的属性是私有的。 类原型上的属性是公有的,可继承的。 类身上天生自带一个prototype的属性,属性是对象 Prototype对象天生有一个constructor属性,属性值就是类本身 实例天生有一个__proto__ 指向你自己类的原型 原型链主要针对对象的属性来说的 作用域链主要针对变量来说的 var a和a的区别 没有带var的变量就不能存放到内存地址中。就没有变量提升这种说法了。相当于给window加了一个属性window.a。 带var 可以存放在内存地址中,有变量提升,同时也相当于给window加了一个属性window.a Beike 来源: https://www.cnblogs.com/jiaxinchao/p/9896748.html

js深拷贝与浅拷贝

左心房为你撑大大i 提交于 2020-03-28 05:54:09
实现一个页面或者一个功能时,常常遇到的场景需要我们备份一个数组或者对象,这时候出现了深拷贝与浅拷贝效果截然不同呀总结如下: 浅拷贝: 1 var 2 arr = [1, 2, 3, 4], 3 shallowArr = a; 4 arr[0] = "change"; 5 console.log(arr); 6 console.log(shallowArr); 很简单的例子,很明显结果是两个数组第一项同时发生改变,原因是因为arr与shallowArr两数组为同一数组,仅仅是地址名不同,而地址却是同一个。那么如何避免上面的情况发生呢那就是深拷贝了。 深拷贝: 1 var 2 arr = [1, 2, 3, 4], 3 deepArr = [].concat(arr); 4 console.log(arr === shallowArr); // false 上述代码这是针对数组内部为简单类型的深拷贝,当数组内部的成员为引用类型时上面的方式还能算深拷贝吗? 1 var 2 arr = [{ m: 1 }, { n: 2 }], 3 deepArr = [].concat(arr); 4 console.log(arr === deepArr); // false5 console.log(arr[0] === deepArr[0]); //true 很明显数组地址发生变化