var函数

RGB到十六进制和十六进制到RGB

馋奶兔 提交于 2020-02-26 11:43:46
如何将RGB格式的颜色转换为十六进制格式,反之亦然? 例如,将 '#0080C0' 转换为 (0, 128, 192) '#0080C0' (0, 128, 192) 。 #1楼 hexToRgb的替代版本: function hexToRgb(hex) { var bigint = parseInt(hex, 16); var r = (bigint >> 16) & 255; var g = (bigint >> 8) & 255; var b = bigint & 255; return r + "," + g + "," + b; } 编辑:2017/3/28这是另一种方法 似乎更快 function hexToRgbNew(hex) { var arrBuff = new ArrayBuffer(4); var vw = new DataView(arrBuff); vw.setUint32(0,parseInt(hex, 16),false); var arrByte = new Uint8Array(arrBuff); return arrByte[1] + "," + arrByte[2] + "," + arrByte[3]; } 编辑:8/11/2017经过更多测试后,上述新方法并不快:(。虽然这是一种有趣的替代方法。 #2楼 此代码接受#fff和

高阶函数

喜你入骨 提交于 2020-02-26 00:20:37
定义:能够包装函数的,使原本函数增加一些额外的福利的函数 比如: function higherOrderFn(fn){} 能够对fn增加一些额外的福利 应用场景: (function () { var getLogin = function () { var a = parseInt((Math.random() * 10).toFixed(0)); if (a % 2 == 0) { return { login: false } } return { login: true, userInfo: { vip: 11, nickname: 'jake', userid: '888888888' } } } var withLogin = function (basicFn) { var loginInfo = getLogin(); return basicFn.bind(null, loginInfo); } window.withLogin = withLogin; } )() (function () { var withLogin = window.withLogin; var renderIndex = function (loginInfo) { if (loginInfo.login) { console.log('login success render

js中对象常用方法

久未见 提交于 2020-02-25 22:12:25
Object.assign() … 用于克隆 var first = { name : 'kong' } ; var last = { age : 18 } ; var person = Object . assign ( first , last ) ; console . log ( person ) ; //{name : 'kong', age : 18 Object.is() …用于判断两个值是否相同 Object . is ( a , b ) ; //返回true或false //注意,该函数与==运算符不同,不会强制转换任何类型, 应该更加类似于 === ,但值得注意的是它会将 + 0 和 - 0 视作不同值 Object.keys() …用于返回对象可枚举的属性和方法的名称 var a = { name : 'kong' , age : 18 , func : function ( ) { } } ; Object . keys ( a ) ; //['name', 'age', 'func'] Object.defineProperty() …劫持变量的set和get方法,将属性添加到对象,或修改现有属性的特性 var a = { } ; Object . defineProperty ( a , 'name' , { value : 'kong' ,

事件代理(事件委托)

喜你入骨 提交于 2020-02-25 17:50:11
事件代理,又称之为事件委托,是JS中绑定事件的常用技巧,顾名思义,事件代理就是把原本需要绑定在子元素上的事件委托给父元素,事件代理的原理是冒泡机制。 下面我来举个例子: 先写出页面上的HTML结构 <button id="btn">添加按钮</button> <ul> <li>1</li> <li>2</li> <li>3</li> </ul> 我们的需求是,点击button在ul中添加一个li ,并且我们需要实现点击li的时候让其背景颜色变成red; var lis = document.getElementsByTagName("li"); var btn=document.getElementById('btn'); var ulNode=document.getElementsByTagName('ul')[0]; btn.οnclick=function(){ var lis = document.getElementsByTagName("li"); var li=document.createElement('li'); li.innerHTML=lis.length+1; ulNode.appendChild(li) } for (var i = 0; i < lis.length; i++) { lis[i].onclick = function() { this

前端基础之JavaScript

一个人想着一个人 提交于 2020-02-25 12:38:47
JavaScript概述 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 实现的基础。 ECMA-262 是 JavaScript 标准的官方名称。 ECMAScript 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式 添加tru/catch ECMAScript 4 没有发布 2009

文本框自动完成功能

穿精又带淫゛_ 提交于 2020-02-25 11:10:41
Technorati 标签: 自动完成 , wcf , ajax , jquery 由于工作需要简单研究了下文本框自动完成功能,觉得还可以,贴出来以便日后查看。 我使用asp.net和带Ajax的wcf服务功能实现的,有三部分组成: 1.一个脚本来控制自动完成的现实隐藏以及箭头键的选择。 2.wcf功能从数据库取出数据 3.在页面添加主函数来完成后台数据到前台的提取。 第一个代码: var Div_bg_color = "#EEE"; var Div_highlight_color = "#C30"; var Div_font = "Arial"; var Div_padding = "2px"; var Div_Border = "1px solid #CCC"; //结果的个数 var divLen = 0; //文本输入框 var queryField; //下拉区ID var divName; //记录上传选择的值 var lastVal = ""; //IFrame名称 var ifName; //当前选择的值 var val = ""; //显示结果的下拉区 var glogalDiv; //下拉去是否设置格式的标记 var divFormatted = false; function InitQueryCode(queryFieldName,

[译]ES6特性

一个人想着一个人 提交于 2020-02-24 22:55:27
原文 作用域 使用 let / const 替代 var 。 var 有什么错? var 说明的变量会产生作用于提升的概念。 ES5: var x = 'outer'; function test(inner) { if (inner) { var x = 'inner'; // scope whole function return x; } return x; // gets redefined because line 4 declaration is hoisted } test(false); // undefined 😱 test(true); // inner test(false) 返回的是 undefined 而不是 outer 。 为什么? 因为if-block没有执行,第四行的 var x 被提升了。 提升后,上面的代码变成了下面的样子: var x = 'outer'; function test(inner) { var x; // 提升到了 if (inner) { x = 'inner'; // 初始化没有提升 return x; } return x; } ES6中可以这样解决这个问题: let x = 'outer'; function test(inner) { if (inner) { let x = 'inner'; return x; }

JS判断输入日期的正确性

一笑奈何 提交于 2020-02-24 21:13:19
< script language = javascript > function strDateTime(str){ var reg = /^ (\d{ 1 , 4 })( - \ / )(\d{ 1 , 2 })\ 2 (\d{ 1 , 2 })$ / ; var r = str.match(reg); if (r == null ) return false ; var d = new Date(r[ 1 ], r[ 3 ] - 1 ,r[ 4 ]); var newStr = d.getFullYear() + r[ 2 ] + (d.getMonth() + 1 ) + r[ 2 ] + d.getDate() return newStr == str } alert(strDateTime( " 2002-1-31 " )) alert(strDateTime( " 2002-1-41 " )) </ script > < script language = javascript > function strDateTime(str){ var reg = /^ (\d{ 1 , 4 })( -| \ / )(\d{ 1 , 2 })\ 2 (\d{ 1 , 2 }) (\d{ 1 , 2 }):(\d{ 1 , 2 }):(\d{ 1 , 2 })$ / ; var

JavaScript -基础- 函数与对象

我只是一个虾纸丫 提交于 2020-02-24 13:22:15
一、JavaScript三对象 1、分类方式一 1)ECMAScript JavaScript的ECMA规范 JS本身的对象 2)Dom 操作HTML相关 3)BOM游览器对象 游览器窗口对象,全局的对象,直接应用 操作浏览器的对象 2、分类方式二 二、ECMA对象 var s="hello" var s2=new String("hello") 三、function对象 1、function创建方式一 此方式为推荐方式 function func1(){ alert(122); return 8; } func1(); var ret=func1(); alert(ret); 2、方式二(对象方式) var func2=new Function("参数1","参数n","函数体"); var add=new Function("a","b","alert(a+b)") add(1,2); 3、function属性与方法 1)lenght var add=new Function("a","b","alert(a+b)") add(1,2); alert(add.lenght) // 2)void方法 function f(){ return 8; } alert(void(f())) //阻拦方法返回值 3)全局参数 function func1(){ b=3; // 如果

两个数组的交集 II

我与影子孤独终老i 提交于 2020-02-24 13:04:22
题纲   给定两个数组,编写一个函数来计算它们的交集。 示例 : 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9] 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的顺序。 方法1: 这种方法原则上比较暴力对所有的数都进行了一次遍历比较,同时清空了对比数组中当前对比相同的值,以防重复检测/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */ var intersect = function(nums1, nums2) { var arr = []; for(var i=0;i<nums1.length;i++){ for(var j=0;j<nums2.length;j++){ if(nums1[i] === nums2[j]) { arr.push(nums1[i]) nums2[j]=null; break; } } } return arr; }; 方法二: 这个方法是在做完方法一以后想到的优化方法   方法一在两个对比数组基数大了以后需要循环的次数成指数上升,  方法二 则使用一个对象作为中间存储变量,将其中一个作为参照的数组映射入对象中,      以数组的值为KEY