Tag: javascript

Javascript: 带你一分钟理解JS闭包——通俗易懂

  什么是闭包? 什么是闭包?闭包是什么? 先来看一段代码: function a(){ var n = 0; function inc() { n++; console.log(n); } inc(); inc(); } a(); //控制台输出1,再输出2 再看另一段代码: function a(){ var n = 0; this.inc = function () { n++; console.log(n); }; } var c = new a(); c.inc(); //控制台输出1 c.inc(); //控制台输出2 闭包是什么?以上两段代码就是闭包! 第二段代码中 inc 函数访问了构造函数 a 里面的变量 n,所以形成了一个闭包。 有权访问另一个函数作用域内变量的函数都… Read More

Javascript: 程序员装X必备—19个JS简写技巧,让你写代码速度翻倍!!

代码精炼是每个有追求的程序所向往的,本文总结了19个JavaScript的简写技术,其中包括三元操作符、短路求值简写方式、声明变量简写方法等等,希望对你有帮助。 1.三元操作符当想写if…else语句时,使用三元操作符来代替。 简写: 也可以嵌套if语句: 2.短路求值简写方式当给一个变量分配另一个值时,想确定源始值不是null,undefined或空值。可以写撰写一个多重条件的if语句。 或者可以使用短路求值方法: 3.声明变量简写方法 简写 4.if存在条件简写方法 简写: 只有likeJavaScript是真值时,二者语句才相等 如果判断值不是真值,则可以这样: 简写 5.JavaScript循环简写… Read More

密码等级:至少包含字母、大小写数字、字符中的两种 JS实现方案

前言 密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母、数字、字符3选2,区分大小写。对于设置得太简单的密码,予以错误提示。或者予以密码等级(低中高)显示,让用户设置高级密码。那如何利用JS实现呢? 代码 链接:https://gist.github.com/xuanfeng/a44f20cb4569d5b4cd5e function passwordLevel(password) { var Modes = 0; for (i = 0; i < password.length; i++) { Modes |= CharMode(password.charCodeAt(i)); } retu… Read More

JS针对图片加载及404处理

前言 网站运营久了之后,无法避免会出现图片404的情况,原因可能是图片文件本来就不存在或目前不存在。常见的解决方案是将404图片隐藏或者是替换为默认的图片。 img标签事件属性 img标签可使用的时间属性有: onabort, onbeforeunload, onblur, onchange, onclick, oncontextmenu, ondblclick, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onfocus, onkeydown, onkeypress, onkeyup, onload, onme… Read More

javascript基本数据类型与值类型引用类型说明

DEMO: http://sources.ikeepstudying.com/jsdata/ 摘要:本文主要讲了javascript中的基本数据类型,以及值类型和引用类型的区别与使用 一、基本数据类型 在javascript中申明变量使用的关键字都是var,这点与其他的编程语言不尽相同,但是javascript亦含有五种基本的数据类型(也可以 说是简单数据类型),它们分别是:Undefined,Null,Boolean,Number和String。还含有一种复杂数据类型—Object。 (1)、”undefined”——未申明,或者变量的值即为undefined或者未初始化; (2)… Read More

JS数组去重算法实现

1.遍历数组法 最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下: // 最简单数组去重法 function unique1(array){ var n = ; //一个新的临时数组 //遍历当前数组 for(var i = 0; i < array.length; i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n.indexOf(array[i]) == -1) n.push(array[i… Read More

使用js实现思维导图

本文主要阐述使用js实现思维导图的关键技术点,如果还不知道什么是思维导图的同学,请自行度娘。以下是demo和源码的传送门: demo:http://sources.ikeepstudying.com/mindmaptree-master/ 源码:http://github.com/RockyRen/mindmaptree/tree/master 下载:mindmaptree-master 在源码中我使用了svg绘制思维导图。与canvas相比,svg将图像当成对象,我们可将思维导图中节点和线等图形表现为对象,而且svg更适合用于动态交互的应用 下面介绍几个关键技术点: 子节点位置的重绘 一个基本的思维导图工… Read More

JavaScript数据结构和算法简述——数组

为什么先讲数组 数据结构可以简单的被分为线性结构和非线性结构。 线性结构大致包括: 数组(连续存储); 链表(离散存储); 栈(线性结构常见应用,由链表或数组增删和改进功能实现); 队列(线性结构常见应用,由链表或数组增删和改进功能实现); 非线性结构大致包括: 树; 图; 其中,数组是应用最广泛的数据存储结构。它被植入到大部分编程语言中。由于数组十分容易懂,所以它被用来作为介绍数据结构的起点非常合适。 JavaScript数组基础知识 在ECMAScript中数组是非常常用的引用类型了。ECMAScript所定义的数组和其他语言中的数组有着很大的区别。那么首先要说的就是数组在js中是一种特殊的对象。 特点: 数组是一组… Read More

JavaScript数据结构和算法简述——前言

为什么要使用数据结构和算法(程序=数据结构+算法)         数据结构是对在计算机内存中(有时在磁盘中)的数据的一种安排。包括数组、链表、栈、二叉树、哈希表等。        算法是对这些结构中的数据进行各种处理。比如,查找一条特殊的数据项或对数据进行排序。 举一个简单的索引卡的存储问题,每张卡片上写有某人的姓名、电话、住址等信息,可以想象成一本地址薄,那么当我们想要用计算机来处理的时候,问题来了: 如何在计算机内存中安放数据? 所用算法适用于100张卡片,很好,那1000000张呢? 所用算法能够快速插入和删除新的卡片吗? 能够快速查找某一张卡片吗? 如何将卡片按照字母进行排序呢? 事实上,大多数程序… Read More

jquery 特效专辑

提示框弹窗类 Facebox Facebox 是一个基于jQuery,Facebook-style的lightbox。能够展示示images,divs或者整个远程页面 。 Facebox SimpleModal SimpleModal是一个轻量级jQuery插件提供了一个简单的接口来创建模式对话框。 SimpleModal jTip jTip一个利用jQuery开发的提示工具。jTip通过HttpXMLRequest获取内容。用法简单,只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以。 jTip BetterTip 一个可以自定义Tooltip的jQuery插件。基于jTip,但比它来得更… Read More