yjxf8285@qq.com

JavaScript

直接事件和委托事件

Posted By 刘晓帆 | 1,109 views

有人问过我一个问题,如下

$(‘ul li’).on(‘click’, function () {
//todo
});
$(‘ul’).on(‘click’,’li’, function () {
//todo
});

上面这2段代码的区别是什么?
其实jquery的官网文档中有详细的解释,第1段的意思是把事件直接绑定在li上面,如果有1000个li,那么就相当于绑定了1000次li。而且只能绑定到文档中已经存在的Li上面,后续添加的li是绑定不上的,比如通过ajax添加进去的新的li。 这就是直接事件绑定。
第2段是委托事件,也叫代理事件,只绑定了一次事件到li上面,也可以监听到后续添加的li。

Read More

JavaScript

seajs引入jquery插件的方法

Posted By 刘晓帆 | 2,029 views

1、把你要引入的插件这样包一下

/* swiper.3.1.2.jquery.min.js */
define(function() { return function($) {
// 这里放插件原来的代码
}});

2、引入的时候这样定义就可以了

var swiper = require(‘plugins/swiper/swiper.3.1.2.jquery.min’)($);

Read More

JavaScript

随机生成n个1-maxNum之间的值不会重复的整数组,十位补0

Posted By 刘晓帆 | 744 views

/**
* 随机生成n个1-maxNum之间的值不会重复的整数组,十位补0
* @param maxNum 1-几
* @param n 多少个
* @returns {arr}
*/
var randomIntNum = function(maxNum, n) {
var oArr = [];
var newArr = [];

Read More
  • 随机生成n个1-maxNum之间的值不会重复的整数组,十位补0已关闭评论
  • over 2 years ago

JavaScript

JS数字金额大写转换

Posted By 刘晓帆 | 882 views

/** 数字金额大写转换(可以处理整数,小数,负数) */
var digitUppercase = function(n) {
var fraction = [‘角’, ‘分’];
var digit = [
‘零’, ‘壹’, ‘贰’, ‘叁’, ‘肆’,
‘伍’, ‘陆’, ‘柒’, ‘捌’, ‘玖’
];
var unit = [
[‘元’, ‘万’, ‘亿’],
[”, ‘拾’, ‘佰’, ‘仟’]
];
var head

Read More

JavaScript

Underscore 常用方法

Posted By 刘晓帆 | 1,630 views

概述
Underscore.js是一个很精干的库,压缩后只有4KB。它提供了几十种函数式编程的方法,大大方便了Javascript的编程。MVC框架backbone.js就是基于这个库。
它定义了一个下划线(_)对象,函数库的所有方法都属于这个对象。这些方法大致上可以分成:集合(collection)、数组(array)、函数(function)、对象(object)和工具(utility)五大类。
 
在node.js下安装
Underscore.js不仅可以用于浏览器环境,还可以用于node.js。安装命令如下:
npm install underscore
但是,node.js不能直接使用_作为变量名,因此要用下面的方法使用underscore.js。
var u = require(“underscore”);
 
与集合有关的方法
Javascript语言的数据集合,包括两种结构:数组和对象。以下的方法同时适用于这两种结构。
 
map
该方法对集合的每个成员依次进行某种操作,将返回的值依次存入一个新的数组。
_.map([1, 2, 3], function(num){ return num * 3; });  // [3, 6, 9]    _.map({one : 1, two : 2, three : 3}, function(num, key){ return num * 3; });  // [3, 6, 9]
 
each
该方法与map类似,依次对集合的每个成员进行某种操作,但是不返回值。
_.each([1, 2, 3], alert);    _.each({one : 1, two : 2, three : 3}, alert);
 
reduce
该方法依次对集合的每个成员进行某种操作,然后将操作结果累计在某一个初始值之上,全部操作结束之后,返回累计的值。
该方法接受三个参数。第一个参数是被处理的集合,第二个参数是对每个成员进行操作的函数,第三个参数是累计用的变量。
_.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);  // 6
reduce方法的第二个参数是操作函数,它本身又接受两个参数,第一个是累计用的变量,第二个是集合每个成员的值。
 
filter 和 reject
filter方法依次对集合的每个成员进行某种操作,只返回操作结果为true的成员。
_.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });  // [2, 4, 6]
reject方法只返回操作结果为false的成员。
_.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });  // [1, 3, 5]
 
every 和 some
every方法依次对集合的每个成员进行某种操作,如果所有成员的操作结果都为true,则返回true,否则返回false。
_.every([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });  // false
some方法则是只要有一个成员的操作结果为true,则返回true,否则返回false。
_.some([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });  // true
 
find
该方法依次对集合的每个成员进行某种操作,返回第一个操作结果为true的成员。如果所有成员的操作结果都为false,则返回undefined。
Read More

JavaScript

JS将所有对象s的属性复制给对象r

Posted By 刘晓帆 | 889 views

原生写法:

/**
* 将所有 s 的属性复制给 r
* @param r {Object}
* @param s {Object}
* @param is_overwrite {Boolean} 如指定为 false ,则不覆盖已有的值,其它值
* 包括 undefined ,都表示 s 中的同名属性将覆盖 r 中的值
*/
mix: function (r, s, is_overwrite) {

Read More

JavaScript

JS操作字符串转换为数值并取整

Posted By 刘晓帆 | 652 views

var result = ‘3.1415926’ | 0; // 3

Read More

JavaScript

JS产生漂亮的随机字符串

Posted By 刘晓帆 | 2,232 views

Math.random().toString(16).substring(2); //8位
Math.random().toString(36).substring(2); //16位

Read More

JavaScript

JS取数组的最大和最小值

Posted By 刘晓帆 | 613 views

Math.max.apply(Math, [1,2,3]) //3
Math.min.apply(Math, [1,2,3]) //1

Read More

JavaScript

短路运算

Posted By 刘晓帆 | 1,599 views

var something = ‘xxxx’;

console.log( true && something ); //-> ‘xxx’;
console.log( false && something ); //-> false
console.log( true || something ); // -> true
console.log( false || something ); //-> something

Read More