自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 拖拽动作的简单实现

Title            html,body{            padding: 0;            margin: 0;        }        #box{            position: absolute;            width: 200px;            height: 200px;   

2017-08-04 13:49:13 352

原创 事件相关属性的兼容性

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 233

原创 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 844

原创 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 242

原创 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 182

原创 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 245

原创 Linux 常用命令(二)

11. nl命令         nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样,           nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。       12. more命令        more命令,功能类似 cat ,cat命令是整个文件

2017-08-04 11:26:28 175

原创 Liunx 常用命令(一)

一. 文件目录操作命令:     1.ls命令ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。     2.cd命令       cd命令进行目录的切换

2017-08-04 11:13:29 185

原创 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 210

原创 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 354

原创 JS异步编程

一、回调函数这是异步编程最基本的方法。假定有两个函数f1和f2,后者等待前者的执行结果。  f1();  f2();如果f1是一个很耗时的任务,可以考虑改写f1,把f2写成f1的回调函数。  function f1(callback){    setTimeout(function () {      // f1的任务代码

2017-08-02 13:56:40 362

原创 js设计模式之构造函数

JavaScript里函数有个原型属性叫prototype,当调用构造函数创建对象的时候,所有该构造函数原型的属性在新创建对象上都可用。按照这样,多个Car对象实例可以共享同一个原型,我们再扩展一下上例的代码:function Car(model, year, miles) { this.model = model; this.year = year; this.m

2017-08-02 13:51:13 169

原创 js设计模式之订阅

JS里对观察者模式的实现是通过回调来实现的,我们来先定义一个pubsub对象,其内部包含了3个方法:订阅、退订、发布。var pubsub = {};(function (q) { var topics = {}, // 回调函数存放的数组 subUid = -1; // 发布方法 q.publish = function (topic, arg

2017-08-02 13:46:46 178

原创 js设计模式之单例

在JavaScript里,实现单例的方式有很多种,其中最简单的一个方式是使用对象字面量的方法,其字面量里可以包含大量的属性和方法:var mySingleton = { property1: "something", property2: "something else", method1: function () { console.log('he

2017-08-02 13:44:33 179

原创 扩展运算符(...)的用途

1.合并数组一直以来,有很多方法合并数组,但是扩展运算符给了我们全新的方法去实现合并数组:arr1.push(...arr2) // 把arr2合并到arr1的后面arr1.unshift(...arr2) //把arr2合并到arr1的前面如果你想在数组内合并数组,你可以像下面这样做:var arr1 = ['two', 'three'];var arr2 = ['one

2017-08-02 13:39:36 8372 1

原创 setInterval

setTimeout和setInterval:指定延迟后调用函数,以指定周期调用函数让我们想象一个意外情况,比如说下面的setIntervalsetInterval(function () { func(i++);}, 100)我们每100毫秒调用一次func函数,如果func的执行时间少于100毫秒的话,在遇到下一个100毫秒前就能够执行完:;

2017-08-02 10:17:33 561

原创 js十大排序代码实现(二)

4.希尔排序(Shell Sort)希尔排序的核心在于间隔序列的设定。既可以提前设定好间隔序列,也可以动态的定义间隔序列。动态定义间隔序列的算法是《算法(第4版》的合著者Robert Sedgewick提出的。Javascript代码实现:function shellSort(arr) { var len = arr.length, temp,

2017-08-02 10:04:22 265

原创 js十大排序代码实现(一)

1.冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端JavaScript代码实现:function bubbleSort(arr) {

2017-08-02 09:59:20 356

转载 全面认识ES6(二)

SymbolES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。Symbol 值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增

2017-08-02 09:47:25 225

原创 全面认识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 310

原创 JavaScript中的this

this是在执行上下文创建时确定的一个在执行过程中不可更改的变量。所谓执行上下文,就是JavaScript引擎在执行一段代码之前将代码内部会用到的一些变量、函数、this提前声明然后保存在变量对象中的过程。这个'代码片段'包括:全局代码(script标签内部的代码)、函数内部代码、eval内部代码。而我们所熟知的作用域链也会在保存在这里,以一个类数组的形式存储在对应函数的[[Scopes]]属

2017-08-01 19:17:45 187

原创 Promise 是什么?

Promise对象代表一个异步操作,有三种状态:Pending(准备状态),Fulfilled(成功状态,也称为Resolved状态),Rejected(失败状态)。只有异步操作的结果可以决定promise对象的状态,操作成功后,promise对象由Pending状态转换为Fulfilled状态,此时回调函数会执行 onFulfilled方法。反之,操作失败,promise对象由pending状态

2017-08-01 19:16:15 435

原创 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 649

原创 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 165

原创 Async Functions (异步函数)

async(异步) 函数变体以下是已经存在的异步函数变体。请注意无处不在的 async 关键字。异步函数声明: async function foo() {}异步函数表达式: const foo = async function () {};异步函数定义:let obj = { async foo() {} }异步箭头函数: const foo =

2017-08-01 19:12:48 707

原创 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 440

原创 变量提升

Hoisting 是您在JavaScript文档中找不到的术语。Hoisting 被认为是思考执行上下文(特别是创建和执行阶段)在JavaScript中如何工作的一般方式。但是,hoisting 可能会导致误解。例如,提升教导变量和函数声明被物理移动到编码的顶部,但这根本不是什么。真正发生的什么是在编译阶段将变量和函数声明放入内存中,但仍然保留在编码中键入的位置。JavaScr

2017-08-01 19:09:59 234

原创 闭包-块级作用域

块级作用域块级作用域是指在由花括号包裹的代码块中的作用域。在JavaScript中是没有块作用域的。为了理解这个概念,来看下面的例子:for(vari = 0;i   ......}alert(i); //结果会输出10    上面的代码中,我们在for循环中定义了变量i,在C++和Ja

2017-08-01 19:08:40 518

原创 JavaScript难点(二)

6. 变量提升JavaScript会将所有变量和函数声明移动到它的作用域的最前面,这就是所谓的变量提升(Hoisting)。也就是说,无论你在什么地方声明变量和函数,解释器都会将它们移动到作用域的最前面。因此我们可以先使用变量和函数,而后声明它们。但是,仅仅是变量声明被提升了,而变量赋值不会被提升。如果你不明白这一点,有时则会出错:console.log(y); // 输出u

2017-08-01 19:07:19 237

转载 JavaScript难点(一)

1. 立即执行函数立即执行函数,即Immediately Invoked Function Expression (IIFE),正如它的名字,就是创建函数的同时立即执行。它没有绑定任何事件,也无需等待任何异步操作:(function() { // 代码 // ...})();function(){…}是一个匿名函数,包围它的一对括号将其转换为一个表达式,紧

2017-08-01 19:05:08 204

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除