var函数

javascript Array扩展

六眼飞鱼酱① 提交于 2020-01-30 15:05:09
最近看了一下developer.mozilla.org里的东西,发现它为Array对象添加了不少generic method,赶得上Prototype的热心程度。 indexOf 返回元素在数组的索引,没有则返回-1。与string的indexOf方法差不多。 如果其他浏览器没有实现此方法,可以用以下代码实现兼容: //09,12,11新修正 Array.prototype.indexOf=function(item, index) { var n = this.length, i = index == null ? 0 : index < 0 ? Math.max(0, n + index) : index; for (; i < n; i++) if (i in this && this[i] === item) return i; return -1 } var array = [2, 5, 9]; var index = array.indexOf(2); // index is 0 index = array.indexOf(7); // index is -1 lastIndexOf 与string的lastIndexOf方法差不多。 如果其他浏览器没有实现此方法,可以用以下代码实现兼容: //09,12,11新修正 Array.prototype

let解决闭包

╄→尐↘猪︶ㄣ 提交于 2020-01-30 13:24:09
先看一个经典闭包问题: <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul> window.onload = function () { var lis = document.getElementsByTagName('li'); for (var i = 0; i < lis.length; i++) { lis[i].onclick = function (){ alert(i) } } } // 点击结果都为4 为使输出内容为0,1,2,3.通常我们会使用立即执行函数来解决,如: window.onload = function () { var lis = document.getElementsByTagName('li'); for (var i = 0; i < lis.length; i++) { lis[i].onclick = (function (){ var index=i; return function(){ alert(index) } }()) } } // 点击结果为0,1,2,3 但是,使用let就可以轻松解决次问题 (将for循环里的var改为let) window.onload = function () { var lis = document.getElementsByTagName

typescript & javascript

亡梦爱人 提交于 2020-01-30 08:45:50
引用第三方javascript库的办法: 1. 使用浏览器javascript库, 在html文件中添加<script .....js></script> 然后在.ts文件中如下: declare var base64: any; 重点在于这个any关键字.然后在函数中就可以使用base64的函数了: var encodedStr = base64.encode(bytes); 2. 使用npm安装的方法, 先安装js库, npm install base-64 utf8 --save 然后在ts文件中: import * as base64 from "base-64"; var encodedStr = base64.encode(bytes); 具体参考: https://www.thepolyglotdeveloper.com/2017/03/javascript-libraries-in-a-typescript-application-revisited/ 来源: CSDN 作者: novodexx 链接: https://blog.csdn.net/novodexx/article/details/104109332

lazyload延迟加载组件

霸气de小男生 提交于 2020-01-29 17:27:54
lazyload现在网上已经用的很多(淘宝商城,新浪微博等等),先放demo: mylazyLoad.zip 效果: <div id="redbox1" onclick="alert('js执行了')" class="redbox">点击我</div> <div class="bluebox"></div> <div class="redbox"></div> <div class="bluebox"></div> <div class="redbox"></div> <div class="bluebox"></div> <div class="redbox"></div> <div class="bluebox"></div> <div class="redbox"></div> <div class="bluebox"></div> <div class="redbox"></div> <div class="bluebox"></div> <div class="redbox"></div> <div class="bluebox"></div> <div class="redbox"></div> <div class="bluebox"></div> <div class="redbox"></div> <div class="bluebox"></div> <div

自研模块加载器(三) module模块构造器设计-模块数据初始化

倾然丶 夕夏残阳落幕 提交于 2020-01-29 16:22:30
依赖加载策略 模块数据初始化 status状态生命周期 代码展示 demo包括4个文件, index.html , a.js , b.js , startUp.js index.html <!DOCTYPE html> <html> <head> <title>自研模块加载器</title> </head> <body> <script src="./startUp.js"></script> <script> startUp.use(['a.js', 'b.js'], function() { console.log('startUp...') }) </script> </body> </html> a.js define(function(require, exports, module) { var a = { who: "我" } exports(a) }) b.js define(function(require, exports, module) { var b = { text: "太难了" } exports(b) }) startUp.js (模块加载器) (function(global) { var startUp = global.startUp = { version: '1.0.1' } var data = {}; // 获取当前模块加载器内置信息

前端基础之JAVAScript

一世执手 提交于 2020-01-29 05:32:40
JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Netscape(网景)接收Nombas的理念,( Brendan Eich) 在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript 微软随后模仿在其IE3.0的产品中搭载了一个JavaScript的克隆版叫Jscript. 为了统一三家,ECMA( 欧洲计算机制造协会)定义了ECMA-262规范.国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。EcmaScript是规范                    ECMAScript 尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的: 核心(ECMAScript) 文档对象模型(DOM)

python成长之路【第十五篇】:JavaScript初步认识

穿精又带淫゛_ 提交于 2020-01-29 00:54:55
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。 一、如何编写 1、JavaScript代码存在形式 <!-- 方式一 --> <script type"text/javascript" src="JS文件"></script> <!-- 方式二 --> <script type"text/javascript"> Js代码内容 </script> 2、JavaScript代码存放位置 HTML的head中 HTML的body代码块底部(推荐) 由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已。 <script src="https://www.gstatic.com/og/_/js/k=og.og2.en_US.iF4jnkQuaf0.O/rt=j/t=zcms/m=def/exm=in,fot/d=1/ed=1/rs=AA2YrTv5-POC4Ks9GtGRdY2ywUWisqz7-Q"></script> <script> alert('123'); </script> 二、变量

【worker】js中的多线程

时光总嘲笑我的痴心妄想 提交于 2020-01-27 17:01:06
因为下个项目中要用到一些倒计时的功能,所以就提前准备了一下,省的到时候出现一下界面不友好和一些其他的事情。正好趁着这个机会也加深一下html5中的多线程worker的用法和理解。 Worker简介 JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。这些都是我们所公知的。但是随着业务的不断增加,只是单纯的单线程模式已经可能无法满足我们的需求了。于是在html5中新增了后台任务worker API。 w3c中的介绍:web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。 worker就是为了JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。开启后台线程,在不影响前台线程的前提下做一些耗时或者异步的操作。因为是不同的线程,所以主线程与worker线程互不干扰。也不会相互打断。所以在一些场景可以提高页面的流程性。Worker 线程一旦新建成功,就会始终运行,不会被主线程上的活动(比如用户点击按钮、提交表单)打断。这样有利于随时响应主线程的通信。但是,这也造成了 Worker 比较耗费资源,不应该过度使用

nodejs之express4x

孤街醉人 提交于 2020-01-27 04:36:29
学习node好榜样!前阵子看了php,那个模块化编译真的好棒。然而php学习起来不是一般的记不住,毕竟和js还是有不同的。于是转移到了node。看到熟悉的js脚本,心里踏实多了。 话不多讲,php我也是要驾驭的,只是要排到后面去了。今天先来个基于node的框架之express4的模板实例 官网api:http://www.expressjs.com.cn/4x/api.html 1.首先,全局安装。 npm install -g express-generator@4 2.检测安装结果 express --version 3.创建项目,这里我选择d盘node文件夹,安装框架模板。 express -e nodeDemo 4.进入项目安装依赖 cd nodeDemo && npm install 5.运行项目,如果不知道运行命令是啥,打开项目根目录下‘package.json’文件,查看scripts对象里默认第一个的属性名,这个模板里叫start。 npm start 6.运行之后,打开项目根目录下的bin文件夹里的www.js,查看这一句代码:‘var port = normalizePort(process.env.PORT || '3000');’3000就是端口号。基于node服务器本机ip原则。在浏览器输入。 localhost:3000 或者 127.0.0.1

[译]JavaScript:函数的作用域链

跟風遠走 提交于 2020-01-27 02:14:46
/*--> */ /*--> */ 原文: http://blogs.msdn.com/b/jscript/archive/2007/07/26/scope-chain-of-jscript-functions.aspx 在JavaScript中,函数的作用域链是一个很难理解的东西.这是因为,JavaScript中函数的作用域链和其他语言比如 C, C++ 中函数的作用域链相差甚远.本文详细解释了JavaScript中与函数的作用域链相关的知识,理解这些知识可以帮助你在处理闭包的时候避免一些可能出现的问题. 在JavaScript中,函数可以让你在一次调用中执行一系列的操作.有多种方式来定义一个函数,如下: 函数声明: function maximum(x, y) { if (x > y) return x; else return y; } maximum(5, 6) //返回6; 这种语法通常用来定义全局作用域下的函数(全局函数). 函数表达式 : var obj = new Object(); obj.maximum = function (x, y) { if (x > y) return x; else return y; }; obj.maximum(5, 6) //返回6; 这种语法通常用来定义一个作为对象方法的函数. Function构造函数 : var