js
铁锈_
游戏码农
展开
-
setTimeout()与setInterval()
js引擎是单线程引擎,一段时间只能执行一个事件,为了控制要执行的代码,js拥有任务队列。队列中任务按照一定的顺序排列,而这些任务按照排列的顺序执行。当函数foo1()箱与函数foo2()调用时一般先执行foo1()再执行foo2(),事件执行顺序与程序排列顺序相同叫“同步模式””但是“同步模式”有时会出现缺点,如:假设某函数foo()非常耗时,那么在执行foo()时用户可能误以为浏览器原创 2017-08-02 20:32:32 · 214 阅读 · 0 评论 -
with延长作用域链
由于with语句块中作用域的‘变量对象’是只读的,所以在他本层定义的标识符,不能存储到本层,而是存储到它的上一层作用域。原创 2017-09-05 15:44:04 · 290 阅读 · 0 评论 -
再看原型对象
今天重看原型对象,记录下自己的理解看下面的代码,function foo3(name,age,job) { this.name = name this.age = age this.job = job this.sayname = function () { console.log(this.name) }}var f1 =原创 2017-09-06 12:58:28 · 176 阅读 · 0 评论 -
正则表达式
转过来自己看前言作为一个程序员,要出去装逼,手中必备的技能就是正则表达式。程序员的正则表达式,医生的处方和道士的鬼画符,都是利器。在js中,很多的场景需要去使用到它(毕竟,js刚刚诞生的时候,是用来做表单等验证的)。其实,正则表达式是一门语言,有自己独特的语法,还拥有自己的解释器。但是,作为使用来说,我们只需要掌握它的语法,多多运用,才能熟练。其实,我想过很多种详解转载 2017-09-25 09:00:03 · 244 阅读 · 0 评论 -
node.js模块之exports
var c1 = require( 'test.js' )var c2 = require('test.js')c1.output()c2.output()通常一个文件就是一个模块,有时一个文件需要另一个文件的内容,就可以使用require()导入另一个模块,引入模块需经历三个步骤:路径分析, 文件定位, 编译执行如果直接使用require()另一个模块的全部内容都导入会导致原创 2017-08-31 14:37:18 · 239 阅读 · 0 评论 -
异步回调的小例子-mysql
先说个小程序吧function foo1(){}function foo2( res ){ console.log(res)}这里如果函数foo2( )需要foo1( )的返回值或者foo1( )函数体内的一些参数,那怎么办呢?可以考虑回调,如下var mysql = require('mysql')var db = { }//连接数据库var pool = my原创 2017-08-30 21:44:14 · 556 阅读 · 0 评论 -
不是用了回调就是异步
异步指的是代码执行顺序不同于代码书写时的任务排列顺序,使用回调并不代表一定是异步的如下面的代码:我们先执行的依旧是回调函数而不是回调函数之后的代码下面给一个异步回调的例子如果foo2()函数是个非常耗时的函数就可以利用回调进行异步操作,先执行后续代码再执行foo2()函数原创 2017-09-01 10:16:22 · 482 阅读 · 0 评论 -
再谈 object instanceof constructor
MDN对object instanceof constructor的说明,instanceof 用来判断constructor.prototype是否存在于object原型链中。下面给个例子var str = new String()var str2 = "456"console.log(typeof str)//objectconsole.log(typeof str2)//s原创 2017-09-12 11:01:33 · 304 阅读 · 0 评论 -
(转载)关于js模拟c#的Delegate(委托)实现
原文链接:https://www.cnblogs.com/kazetotori/p/5842379.html 一、什么是Delegate(委托)在jquery中有delegate函数,作用是将某个dom元素的标签的事件委托给一个函数队列,在触发这个事件的时候会触发这个函数队列中的所有函数。而c#中的Delegate对象也是如此,将多个方法添加至一个委托对象,或称将多个方法委托给一个委托...转载 2019-02-20 20:16:22 · 250 阅读 · 0 评论 -
javascript:with的用法以及延长作用域链
看的js高级教程第三版没说那么详细,转下别人的看看原文链接:http://www.cnblogs.com/zz334396884/p/4951042.html《Javascript高级程序设计(第二版)》第66页中提到:“由于with语句的变量对象是只读的,结果url就成了函数执行环境的一部分,因而可以作为函数的值被返回。”,不知道谁看完觉得一头雾水? 首先转载 2017-09-05 15:46:52 · 340 阅读 · 0 评论 -
js中使用with可能导致程序出错
对于js中的with,在with语句代码块的内部,每个变量首先被认为是一个局部变量,如果在局部环境中找不到某变量则会在与with相关联的对象上查找同名属性,如果找到了同名属性则用与with相关联的对象上同名属性的值来初始化该变量。这样有时会导致程序出错例如:var W = function( ){}W.prototype.s = nullW.prototype.setTex原创 2017-09-05 15:01:36 · 1727 阅读 · 0 评论 -
js: 从setTimeout说事件循环模型
转自:http://www.cnblogs.com/Medeor/p/4945687.html一、从setTimeout说起 setTimeout()方法不是ecmascript规范定义的内容,而是属于BOM提供的功能。查看w3school对setTimeout()方法的定义,setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。 语法setTimeout(fn转载 2017-08-03 15:03:11 · 265 阅读 · 0 评论 -
Promise胡思乱想(一)
我们先看Promise的一个例子吧。下面代码摘自http://www.cnblogs.com/wangfupeng1988/p/6515855.htmlwait = function (){ promise = new Promise( function(resolve, reject){ task = function(){ console.log("执行完成") reso原创 2017-08-10 23:25:16 · 191 阅读 · 0 评论 -
js数组重排序与数组去重
js从大到小排序var values = [1,2,3,4,5]values.sort( compare = function(v1,v2){ return v2-v1})console.log(values)sort()方法按照升序的方式排序,并且sort( )方法会调用每个数组项的toString()方法,将每个数组项变为字符串,然后比较字符串再排序。那么,这样能对数组项是字典原创 2017-08-18 10:21:59 · 755 阅读 · 0 评论 -
对Promise.resolve(),Promise.reject(),Promise.prototype.then()的初步了解
首先须明确的的是:静态函数Promise.resolve()返回一个被解析后的的Promise对象。静态函数Promise.reject()返回一个被拒绝的Promise对象。Promise.prototype.then( ) 也返回一个promisePromise.resolve()与Promise.reject()都可以给定参数。但要注意,如果使用多个参数调用resol原创 2017-08-12 15:50:59 · 1810 阅读 · 0 评论 -
无阻塞脚本一延迟的脚本
无阻塞脚本: 在页面加载完成之后才加载js代码。即,window对象的load事件触发后再开始下载脚本实现这种方式的方法之一:延迟的脚本对使用 defer属性。defer属性指明加载的脚本不会修改DOM,因此可以延迟执行。对应的js文件会在解析到时下载,但是不会执行。直到DOM完全加载完成才会执行。带有defer属性的js文件可以和其他资源并行下载。原创 2017-08-13 21:15:16 · 307 阅读 · 0 评论 -
jQuery与原生js改变CSS样式-颜色
Test A blue sky A new car 改变第一段颜色 改变第二段颜色 test.jsjQuery(document).ready( functi原创 2017-08-15 22:36:49 · 2655 阅读 · 0 评论 -
node.js中的Stream
原链接https://segmentfault.com/a/1190000000519006?share_user=1030000004603185转过来自己看nodejs的fs模块并没有提供一个copy的方法,但我们可以很容易的实现一个,比如:var source = fs.readFileSync('/path/to/source', {encoding: 'utf8'转载 2017-08-26 22:36:42 · 303 阅读 · 0 评论 -
当JS构造函数内有return语句时
今天才发现当js构造函数内又return语句时会和没有return语句不同。以上可以看出来如果返回类型是引用类型,那么实例化出的对象将会被返回的对象取代,也就是[1,2]。但如果返回的是值类型那么并没有什么影响。调用new foo()时有以下四步操作。1.首先,新建一个空对象var obj = { }2.之后obj的__proto__指向构造函数的原型对象 obj._proto...原创 2019-02-21 00:13:58 · 288 阅读 · 0 评论