- 博客(30)
- 收藏
- 关注
原创 拖拽动作的简单实现
Title html,body{ padding: 0; margin: 0; } #box{ position: absolute; width: 200px; height: 200px;
2017-08-04 13:49:13 358
原创 事件相关属性的兼容性
var EventUtil = {addHandler:function(element ,type ,handler){//添加事件处理if(element.addEventListener){//检测是否存在DOM2element.addEventListener(type ,handler ,false);}else if(element.attachEvent){
2017-08-04 13:45:51 237
原创 Node 连接mysql、redis数据库
var mysql = require('mysql');var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database:'mysql'});connection.connect();//查询
2017-08-04 13:42:02 848
原创 Node Http模块
const http = require('http');http.createServer(function(request ,response){response.writeHead(200 ,{'Content-Type':'text/html; charset=utf-8'});console.log(request.url); //第一次==》'/' ,第二次==》'/f
2017-08-04 13:39:02 245
原创 js常用正则表达式(二)
校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$正数、负数、和小数:^(\-|\+)?\d+
2017-08-04 13:27:24 189
原创 js常用正则表达式(一)
// 常见的 正则表达式 校验// QQ号、手机号、Email、是否是数字、去掉前后空格、是否存在中文、邮编、身份证、URL、日期格式、IPvar myRegExp = { // 检查字符串是否为合法QQ号码 isQQ: function(str) { // 1 首位不能是0 ^[1-9] // 2 必须是 [5, 11] 位的数字 \d{4, 9}
2017-08-04 13:21:57 255
原创 Linux 常用命令(二)
11. nl命令 nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。 12. more命令 more命令,功能类似 cat ,cat命令是整个文件
2017-08-04 11:26:28 177
原创 Liunx 常用命令(一)
一. 文件目录操作命令: 1.ls命令ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。 2.cd命令 cd命令进行目录的切换
2017-08-04 11:13:29 187
原创 zookeeper的常用命令
zkcli 连接默认zookeeper服务器zkcli -server ip:port 连接指定的zookeeper服务器create -s -e path data [acl] 创建节点,-s表示顺序,-e表示临时,默认是持久节点,acl缺省表示不做任何权限限制ls path [watch] 显示path下的节点,不递归显示,watch注册监听,命
2017-08-04 11:09:30 213
原创 Intellij IDEA的常用设置
1.启动如果操作系统是64位的话,可以运行64位的idea;运行方法为:进入idea安装目录的bin目录下,找到idea64.exe双击运行即可;2.JVM参数进入idea安装目录的bin目录下,找到idea.exe.vmoptions(64位的,编辑idea64.exe.vmoptions)文件:-Xms256m-Xmx1024m-XX:MaxPe
2017-08-04 11:08:24 361
原创 JS异步编程
一、回调函数这是异步编程最基本的方法。假定有两个函数f1和f2,后者等待前者的执行结果。 f1(); f2();如果f1是一个很耗时的任务,可以考虑改写f1,把f2写成f1的回调函数。 function f1(callback){ setTimeout(function () { // f1的任务代码
2017-08-02 13:56:40 365
原创 js设计模式之构造函数
JavaScript里函数有个原型属性叫prototype,当调用构造函数创建对象的时候,所有该构造函数原型的属性在新创建对象上都可用。按照这样,多个Car对象实例可以共享同一个原型,我们再扩展一下上例的代码:function Car(model, year, miles) { this.model = model; this.year = year; this.m
2017-08-02 13:51:13 172
原创 js设计模式之订阅
JS里对观察者模式的实现是通过回调来实现的,我们来先定义一个pubsub对象,其内部包含了3个方法:订阅、退订、发布。var pubsub = {};(function (q) { var topics = {}, // 回调函数存放的数组 subUid = -1; // 发布方法 q.publish = function (topic, arg
2017-08-02 13:46:46 182
原创 js设计模式之单例
在JavaScript里,实现单例的方式有很多种,其中最简单的一个方式是使用对象字面量的方法,其字面量里可以包含大量的属性和方法:var mySingleton = { property1: "something", property2: "something else", method1: function () { console.log('he
2017-08-02 13:44:33 182
原创 扩展运算符(...)的用途
1.合并数组一直以来,有很多方法合并数组,但是扩展运算符给了我们全新的方法去实现合并数组:arr1.push(...arr2) // 把arr2合并到arr1的后面arr1.unshift(...arr2) //把arr2合并到arr1的前面如果你想在数组内合并数组,你可以像下面这样做:var arr1 = ['two', 'three'];var arr2 = ['one
2017-08-02 13:39:36 8383 1
原创 setInterval
setTimeout和setInterval:指定延迟后调用函数,以指定周期调用函数让我们想象一个意外情况,比如说下面的setIntervalsetInterval(function () { func(i++);}, 100)我们每100毫秒调用一次func函数,如果func的执行时间少于100毫秒的话,在遇到下一个100毫秒前就能够执行完:;
2017-08-02 10:17:33 563
原创 js十大排序代码实现(二)
4.希尔排序(Shell Sort)希尔排序的核心在于间隔序列的设定。既可以提前设定好间隔序列,也可以动态的定义间隔序列。动态定义间隔序列的算法是《算法(第4版》的合著者Robert Sedgewick提出的。Javascript代码实现:function shellSort(arr) { var len = arr.length, temp,
2017-08-02 10:04:22 271
原创 js十大排序代码实现(一)
1.冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端JavaScript代码实现:function bubbleSort(arr) {
2017-08-02 09:59:20 359
转载 全面认识ES6(二)
SymbolES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。Symbol 值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增
2017-08-02 09:47:25 227
原创 全面认识ES6(一)
变量声明let 和 const不要用var,而是用let 和 const 。const声明一个只读的常量,let用来声明变量,const 和 let 都是块级作用域。const PLUS = 'PLUS';let availableId = 0;availableId ++;模板字符串模板字符串(template string)是增强版的字符串,用
2017-08-02 09:39:45 313
原创 JavaScript中的this
this是在执行上下文创建时确定的一个在执行过程中不可更改的变量。所谓执行上下文,就是JavaScript引擎在执行一段代码之前将代码内部会用到的一些变量、函数、this提前声明然后保存在变量对象中的过程。这个'代码片段'包括:全局代码(script标签内部的代码)、函数内部代码、eval内部代码。而我们所熟知的作用域链也会在保存在这里,以一个类数组的形式存储在对应函数的[[Scopes]]属
2017-08-01 19:17:45 190
原创 Promise 是什么?
Promise对象代表一个异步操作,有三种状态:Pending(准备状态),Fulfilled(成功状态,也称为Resolved状态),Rejected(失败状态)。只有异步操作的结果可以决定promise对象的状态,操作成功后,promise对象由Pending状态转换为Fulfilled状态,此时回调函数会执行 onFulfilled方法。反之,操作失败,promise对象由pending状态
2017-08-01 19:16:15 436
原创 JSON.stringify()技巧
按照 JSON 的规范,使用 JSON.stringify() 做对象序列化时,如果一个属性为函数,那这个属性就会被忽略。const data1 = { a: 'aaa', fn: function() { return true }}JSON.stringify(data)// 结果是 "{"a":"aaa"}"还有一种情况,一个属性的值为 un
2017-08-01 19:15:04 654
原创 JavaScript 的原型链
假设 Foo / Bar 是构造函数:function Foo(name) { this.name = name}function Bar() { this.setAge = (age) => this.age = age this.showAge = () => console.log(this.age)}let foo = new Foo('foo')
2017-08-01 19:13:49 168
原创 Async Functions (异步函数)
async(异步) 函数变体以下是已经存在的异步函数变体。请注意无处不在的 async 关键字。异步函数声明: async function foo() {}异步函数表达式: const foo = async function () {};异步函数定义:let obj = { async foo() {} }异步箭头函数: const foo =
2017-08-01 19:12:48 710
原创 webpack进阶
先来看看最基础的webpack配置:var path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }}在index.js中引入了lo
2017-08-01 19:11:34 444
原创 变量提升
Hoisting 是您在JavaScript文档中找不到的术语。Hoisting 被认为是思考执行上下文(特别是创建和执行阶段)在JavaScript中如何工作的一般方式。但是,hoisting 可能会导致误解。例如,提升教导变量和函数声明被物理移动到编码的顶部,但这根本不是什么。真正发生的什么是在编译阶段将变量和函数声明放入内存中,但仍然保留在编码中键入的位置。JavaScr
2017-08-01 19:09:59 238
原创 闭包-块级作用域
块级作用域块级作用域是指在由花括号包裹的代码块中的作用域。在JavaScript中是没有块作用域的。为了理解这个概念,来看下面的例子:for(vari = 0;i ......}alert(i); //结果会输出10 上面的代码中,我们在for循环中定义了变量i,在C++和Ja
2017-08-01 19:08:40 520
原创 JavaScript难点(二)
6. 变量提升JavaScript会将所有变量和函数声明移动到它的作用域的最前面,这就是所谓的变量提升(Hoisting)。也就是说,无论你在什么地方声明变量和函数,解释器都会将它们移动到作用域的最前面。因此我们可以先使用变量和函数,而后声明它们。但是,仅仅是变量声明被提升了,而变量赋值不会被提升。如果你不明白这一点,有时则会出错:console.log(y); // 输出u
2017-08-01 19:07:19 239
转载 JavaScript难点(一)
1. 立即执行函数立即执行函数,即Immediately Invoked Function Expression (IIFE),正如它的名字,就是创建函数的同时立即执行。它没有绑定任何事件,也无需等待任何异步操作:(function() { // 代码 // ...})();function(){…}是一个匿名函数,包围它的一对括号将其转换为一个表达式,紧
2017-08-01 19:05:08 205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人