js

一些实用的工具js工具方法

蹲街弑〆低调 提交于 2020-03-25 10:29:04
1.两个数组,一个是原数组,一个是经过原数组增删改后的数据,相比原数组修改后的数据具体增加,或删除了那些元素 1 let arr=[1,2,3,4,5] //原素组 2 let arr1=[9,10,6,8] //增删过后的数组 3 console.log(arr,arr1) 4 function change(arr,arr1){ 5 let add=[]; 6 let reduce=[] 7 arr1.forEach(i=>{ 8 if(arr.indexOf(i)==-1){ 9 add.push(i) 10 } 11 }) 12 arr.forEach(i=>{ 13 if(arr1.indexOf(i)==-1){ 14 reduce.push(i) 15 } 16 }) 17 return { 18 add, 19 reduce 20 } 21 } 来源: https://www.cnblogs.com/zs521/p/12563929.html

基于grunt的前端构建

隐身守侯 提交于 2020-03-25 09:56:47
3 月,跳不动了?>>> 在 「grunt的初次使用」 的基础上,这一篇继续对grunt进行探索研究。这一次不再使用php进行include静态文件,而是在html里面引入。然后主要将grunt用于两个大的方向,一个是用于开发期间,一个用于上线前期打包。使用到的插件可能有些更换。具体目录如下,src目录用于开发与维护,dist目录是打包后的项目,用于上线: ├─ dist/ ├─ css/ ├─ images/ ├─ js/ └─ view/ └─ src/ ├─ css/ ├─ images/ ├─ js/ ├─ sass/ └─ view/ 在开发期间,使用到的grunt插件如下,watch插件用了监听文件,一旦文件被修改,可以让它触发浏览器自动刷新: "devDependencies": { "grunt": "^0.4.5", "grunt-contrib-jshint": "^0.12.0", "grunt-contrib-sass": "^0.9.2", "grunt-contrib-watch": "^0.6.1" } 图片不需要压缩,css使用sass编译,js使用了requirejs,并使用jshint进行检错。其中sass编译好后会在同一目录下生成对应的css目录与文件。jshint的具体配置参考 「例子」 。 sass: { dev: { options: {

js产生随机数函数

流过昼夜 提交于 2020-03-25 09:32:14
本文转载自:http://www.duozhankeji.com/qd/10115.html 函数: //产生随机数函数 function RndNum(n){ var rnd=""; for(var i=0;i<n;i++) rnd+=Math.floor(Math.random()*10); return rnd; } 调用: alert(RndNum(5)); 将产生一个5位的随机数,例如:53206 js本身提供了产生随机数的方法 random() 方法可返回介于 0 ~ 1 之间的一个随机数。 这不能满足我们的需求,所以写了上面这个函数 调用js原生提供的随机数方法 document.write(Math.random()) 输出:0.9635477642483878 来源: https://www.cnblogs.com/phpyangbo/p/6129868.html

js垃圾回收及内存泄漏

别等时光非礼了梦想. 提交于 2020-03-25 09:22:25
js垃圾回收 js能够自动回收申请却未使用的内存,由于每次清除需要的性能较大,不是时时在刷新,而是每隔一段时间才进行一次。 回收的两种方式 标记清除(常用) 在内存中先标记变量,然后清除那些那些进入环境或者引用的变量的标记,当进入环境退出环境,将被重新标记并被清除,释放出内存。 引用计数 计算变量被引用的次数,引用次数为0将被清除释放内存。 缺点: 无法清除那些引用次数不为0,但又不需要的内存 let arr = [1,2,3]; console.log('ok'); //数组[1,2,3]引用次数为1,但是又没用到就会一直占着内存 //解决方式:arr.length=0 无法解决循环引用的问题 function fn(){ let obj1 = {}; let obj2 = {}; obj1.a = obj2; obj2.b = obj1; } //解决方法:手动释放 obj1 = null obj2 = null 内存泄漏 某些情况无法释放内存,变量一直处于环境中 出现内存泄漏的一些情况 最常见的就是闭包了 闭包会创建一个不会被销毁的栈内存。 不经意的全局变量 function fn(){ obj = {};//没用声明关键字,相当于创建了一个全局变量 } 计时器没有被清除 setInterval() setTimeout() //解决方法 清除对应定时器的id 滑稽脸 来源:

js在table指定tr行上或底下添加tr行

元气小坏坏 提交于 2020-03-25 09:17:45
js在table指定tr行上或下面添加tr行 function onAddTR(trIndex) { var tb = document.getElementById("tb1"); var newTr = tb.insertRow(trIndex);//添加新行,trIndex就是要添加的位置 var newTd1 = newTr.insertCell(); newTd1.innerHTML = "这是新行,位置:" + trIndex; var newTd2 = newTr.insertCell(); newTd2.innerHTML = "这是新行,位置:" + trIndex; } <table style="width: 100%;" id="tb1"> <tr onclick="onAddTR(this)"> <td>1</td> <td>2</td> </tr> <tr onclick="onAddTR(this)"> <td>3</td> <td>4</td> </tr> </table> <script type="text/javascript"> function onAddTR(trObj) { $(trObj).after("<tr onclick='onAddTR(this)'><td>这是新行</td><td></td><tr/>"); } <

JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签

ⅰ亾dé卋堺 提交于 2020-03-25 09:04:31
JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签 在2015年6月至今,JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签,并总量操作第二第三的和。 新潮的Web开发技术,比如React,Node.js,还有AngularJS正在逐渐起势,都是用的js(es6)。 全栈工程师最青睐的技术,JS 第一 前端开发者最青睐的技术,JS 自然第一 后端开发者最青睐的技术,JS 第一 学生程序员最青睐的技术,JS 第二 JavaScript 是这个星球上最受欢迎的编程语言。而且后端开发者甚至更喜欢使用JavaScript来工作。 根据职业划分的技术栈 Javascript 可以做什么 1. Web 前端 相信这个这个是毫无疑问的,在 Web 前端的地位目前是没有任何语言能撼动它的霸主地位。 image.png 2. 后端 Nodejs Node.js 是一个 Javascript 运行环境(runtime environment),发布于2009年5月,由Ryan Dahl 开发,实质是对 Chrome V8 引擎进行了封装。Node.js 对一些特殊用例进行优化,提供替代的 API,使得V8在非浏览器环境下运行得更好。 使 Javascript 走向了服务端,这使得 Web

JavaScript编程精粹学习

淺唱寂寞╮ 提交于 2020-03-25 08:55:56
1.JavaScript入门 1.1 注释格式和java一样: 单行注释 // 这是单行注释        多行注释 /* 这是多行注释 */ 1.2 变量命名: 必须以字母,下划线,美元符号($)开头,随后的字符可以包含数字,JavaScript区分大小写。 js中新变量应该由var定义,如果没有使用var声明变量,这种变量会成为隐式全局变量,隐式全局变量存在风险,正常变量必须使用var声明后使用。 1.3 常量: 以const定义,不能通过赋值或重新定义修改常量的值,常量必须被初始化。 举例: const a1 = '123'; 1.4 js中的7种标准类型 Number (数值) String (字符串) Boolean (布尔) Symbol (ECMAScript6 中的新类型,符号) Object (对象) Function (函数) Array (数组) Date (日期) RegExp (正则表达式) Null (空) Undefined (未定义) 1.4.1 Number 可以表示整数和浮点数 举例: var aNumber = 555; var aFloat = 555.1; 其实js中并不存在整数,而是使用64位浮点数来描述整数的,和java采用双精度浮点数的做法一样。因此,你会看到下面结果: 最大值: 最小值: 超过最大值: NaN(Not a

常用JS小知识汇总

只愿长相守 提交于 2020-03-25 08:46:12
1 上传图片 :html代码 <input id="image" type='file' name='myFile' size='15' onchange="showPicture(this)" /> <img id="111" src="img/1.jpg" width="133" height="200" /> js代码: <script type="text/javascript"> function showPicture(imgFile) { // alert(window.URL.createObjectURL(imgFile.files[0])); /*获取上传文件的路径*/ document.getElementById("111").src = window.URL.createObjectURL(imgFile.files[0]); } </script> 2 多个json数组合并为一个显示 (定义一个空数组遍历各个子json,然后push进去) 1 str1,str2,str3为3个json数组 2 3 var result = new Array(); 4 5 for (var i = 0; i < str1.length; i++) { 6 result .push(str1[i]); 7 } 8 9 for (var i = 0; i < str2

你不知道的JS系列 ( 36 ) - [[Get]] 和 [[Put]]

六眼飞鱼酱① 提交于 2020-03-25 07:54:31
[[Get]] 对象访问在实现上有个微妙却非常重要的细节 var myObject = {   a: 2 } myObject.a; // 2 myObject.a 是一次属性访问,在实现上,myObject.a 在 myObject 上实际上实现了 [[Get]] 操作(有点像函数调用:[[Get]]() )。首先在对象中查找是否有名称相同的属性,如果找到就会返回这个属性的值。如果没有找到,按照 [[Get]] 算法的定义会执行另外一种非常重要的行为,就是遍历可能存在的原型链。如果无论如何都没有找到,会返回值 undefined var myObject = {   a: 2 } myObject.b; // undefined [[Put]] 你可能认为给对象的属性赋值会触发 [[Put]] 来设置或者创建这个属性,但是实际上并不完全这样。[[Put]] 被触发是,实际上的行为取决于许多因素,包括 对象中是否存在这个属性。 如果已经存在这个属性 1、属性是否是访问描述符,如果是并且存在 setter 就调用 setter 2、属性的数据描述符 writable 是否是 false,是会调用失败,严格模式会抛出异常 3、如果都不是,将该值设置为属性的值 如果对象中不存在这个属性,[[Put]] 操作会更加复杂 来源: https://www.cnblogs.com/wzndkj

桌面应用框架 OneRing

偶尔善良 提交于 2020-03-25 07:16:13
框架目标 OneRing 是一个跨平台的桌面应用框架。和Adobe AIR类似,它支持用html/js/css制作用户界面,与之不同的是,它的应用为本地程序,可以直接访问操作系统的数据。 架构 一个 OneRing 应用程序分为两个部分:框架部分和应用部分。 框架部分 框架部分为通用框架,各应用都一样。其提供各操作系统上的界面展现,为本地窗口内嵌一个WebKit浏览器,并提供一致的js接口让应用和操作系统功能进行交互。 框架以运行时库的形式提供。 框架以系统原生语言编写,提供其他语言的绑定。 应用部分 应用部分为一个web server,负责应用逻辑,用html/css描述界面,用js提供用户交互。 运行流程 应用启动时,会加载框架的运行时库,注册应用url的访问方法(如WSGI),并调用框架的loop函数。 loop函数会访问应用的 /init URL,得到一个json数据,描述初始应用窗口的相关参数,如位置、大小、窗口属性、初始页面url等。 框架根据该数据创建窗口,并让该窗口内的浏览器访问初始页面url,渲染用户界面,然后等待UI事件。 用户在界面上操作时,可以通过超链接改变整个窗口内容,也可以使用AJAX技术更新窗口内部分内容。 应用可以让浏览器调用 ONERING 名字空间下的 js函数 ,和操作系统进行交互,该名字空间由url onering://onering