让我们先考虑下面这情况:var a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]; var b = [ "foo", "bar", "baz", "bam", "bun", "fun" ];很显然最简单的结合结果应该是:[ 1, 2, 3, 4, 5, 6, 7, 8, 9, "foo", "bar", "baz", "bam" "bun&qu
野猪佩奇 2016-09-07 JavaScript 865
HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点。本文介绍 HTTP 协议的历史演变和设计思路。一、HTTP/0.9HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。最早版本是1991年发布的0.9版。该版本极其简单,只有一个命令GET。GET /index.html 上面命令表示,TCP 连接(connection)建立后,客户端向服务器请求(request)网页index.html。协议规定,服务器只能回应HTML格式的字符串,不能回应别的格
野猪佩奇 2016-09-06 开发技巧 955
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的对象字面量语法,但是独立于语言,许多编程语言都有解析JSON数据的能力。JSON主要被用于在客户端和服务端之间传递数据,比如在Web应用中Ajax请求的响应数据常常是JSON格式。 基本概念 JSON有两种结构:对象和数组。 对象:在JSON中,一个对象以{}括起来,包含一系列键值对。每个键值对之间用逗号分隔,键必须是字符串且用双引号包围,值可以是字符串、数字、布尔值、数组、对象或者null。 示例: { "name":
野猪佩奇 2016-09-06 JavaScript 1044
querySelector 和 querySelectorAll 方法是 W3C Selectors API 规范中定义的。他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素。目前几乎主流浏览器均支持了他们。包括 IE8(含) 以上版本、 Firefox、 Chrome、Safari、Opera。querySelector 和 querySelectorAll 在规范中定义了如下接口:module dom { [Supplemental, NoInterfaceObject] interface NodeSelector { Element querySelector(i
野猪佩奇 2016-09-06 JavaScript 910
项目地址:https://github.com/oneuijs/You-Dont-Need-jQuery前端发展很快,现代浏览器原生 API 已经足够好用。我们并不需要为了操作 DOM、Event 等再学习一下 jQuery 的 API。同时由于 React、Angular、Vue 等框架的流行,直接操作 DOM 不再是好的模式,jQuery 使用场景大大减少。本项目总结了大部分 jQuery API 替代的方法,暂时只支持 IE10+ 以上浏览器。Query Selector常用的 class、id、属性 选择器都可以使用 document.querySelector 或 docum
野猪佩奇 2016-09-05 JavaScript 891
一,起步用 Vue.js + Vue Router 创建单页应用,是非常简单的。使用 Vue.js ,我们已经可以通过组合组件来组成应用程序,当你要把 Vue Router 添加进来,我们需要做的是,将组件 (components) 映射到路由 (routes),然后告诉 Vue Router 在哪里渲染它们。下面是个基本例子: div id="app" h1 Hello App! /h1 p !-- 使用 router-link 组件来导航. -- !-- 通过传入 `to` 属性指定链接. -- !-- router-link 默认会被渲染
野猪佩奇 2016-09-05 JavaScript 837
第一种:循环检查替换//供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" \t\n\r"); var str = new String(s); if (whitespac
野猪佩奇 2016-09-05 JavaScript 1015
document.ready和onload的区别——JavaScript文档加载完成事件页面加载完成有两种事件:一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件);二是onload,指示页面包含图片等文件在内的所有元素都加载完成。1、Dom Ready用jQ的人很多人都是这么开始写脚本的: $(function(){ // do something });例如:$(function() { $("a").click(function() { alert("Hello world!&qu
野猪佩奇 2016-09-04 JavaScript 870
首先要明确一点:REST 实际上只是一种设计风格,它并不是标准。(所以你可以看到网上一大堆的各种最佳实践,设计指南,但是没有人说设计标准)。 说说几个重要的概念: 1、REST 是面向资源的,这个概念非常重要,而资源是通过 URI 进行暴露。URI 的设计只要负责把资源通过合理方式暴露出来就可以了。对资源的操作与它无关,操作是通过 HTTP动词来体现,所以REST 通过 URI 暴露资源时,会强调不要在 URI 中出现动词。比如:左边是错误的设计,而右边是正确的。GET /rest/api/getDogs --> GET /rest/api/dogs 获取所有小狗狗  GET /rest
野猪佩奇 2016-09-04 开发技巧 927
镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令npm config set registry https://registry.npmmirror.comnpm info underscore (如果上面配置正确这个命令会有字符串response) 2.命令行指定npm --registry https://registry.npm.taobao.org info underscore 3.编辑 ~/.npmrc 加入下面内容registry = https://registry.npmmirror.com 查看配置
野猪佩奇 2016-08-25 Node.js 1061
定义和用法DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。语法DATE_FORMAT(date,format)date 参数是合法的日期。format 规定日期/时间的输出格式。可以使用的格式有:格式 描述%a缩写星期名 %b缩写月名 %c月,数值 %D带有英文前缀的月中的天 %d月的天,数值(00-31) %e月的天,数值(0-31) %f微秒 %H小时 (00-23) %h小时 (01-12) %I小时 (01-12) %i分钟,数值(00-59) %j年的天 (001-366) %k小时 (0-23) %l小时 (1-12) %M月名 %
野猪佩奇 2016-08-21 MySQL 829
date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串 后面的 '%Y%m%d' 主要是将返回值格式化 例如: mysql SELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' ) - 20071120 mysql SELECT FROM_UNIXTIME( 1249488000, '%Y年%m月%d' ) - 2007年11月20 UNIX_TIMESTAMP()是与之相对正好相反的时间函数 UNIX_TIMESTAMP(), UNIX_TIMESTA
野猪佩奇 2016-08-21 MySQL 1015
合并两个数据表,而被合并的表的列必须完全相同,也就是:列的数量一致,列的名字一致,列的顺序一致,列的类型一致。 两者的区别: union合并表之后,重复的行数据会被化作一条数据,而后者union all将所有数据行都显示,重复的时候依然保持重复。 union使用方法: SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 union all使用方法: SELECT column_name(s) FROM table_name
野猪佩奇 2016-08-21 MySQL 883
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。算法步骤:1 从数列中挑出一个元素,称为 “基准”(pivot),2 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准
野猪佩奇 2016-08-16 开发技巧 912
在安装一个php程序,执行mysql数据库sql文件时,一直报错,出现“1366 - Incorrect integer value: '' for column 'ID' at row 1 ”。出现错误的原因是没有给自增ID赋值,尽管之前的版本可以不赋值,自动增加,但是在新版本的msyql(mysql 5.X以上版本)中需要为其赋值NULL。下面这个sql插入就会出现“1366 - Incorrect integer value: '' for column 'ID' at row 1”INSERT INTO `test` (
野猪佩奇 2016-08-07 MySQL 879
var arr = new Array(); arr[0] = '123'; arr[1] = '456'; console.log(arr.length); var arr1 = new Array(); arr1['x0sdfdsfd'] = '123'; arr1['xsdfsd1'] = '456'; console.log(arr1.length);输出:20[Finished in 0.2s]
野猪佩奇 2016-07-30 JavaScript 1014
RequireJS是一个JS文件,主要的功能是优化页面JS的载入,在平时我们在html页面使用的是script标签来载入JS,如下示例: script src="1.js" /script script src="2.js" /script script src="3.js" /script 这样的写法有很大的缺点。首先,加载的时候,浏览器会停止网页渲染,加载文件越多,网页失去响应的时间就会越长;其次,由于js文件之间存在依赖关系,因此必须严格保证加载顺序(比如上例的1.js要在2.js的前面),依赖性最大的模块
野猪佩奇 2016-07-21 JavaScript 865
首先项目中,需要安装mysql模块:npm install --save-dev mysql然后就可以使用一下代码了:var mysql = require('mysql'); var database = { host: '127.0.0.1', user: 'root', password: 'root', database: '8081', // 前面建的user表位于这个数据库中 port: 3306
野猪佩奇 2016-07-15 Node.js 1010
Express 是一个基于 Node.js 的 web 应用程序框架,它提供了一系列强大特性来简化 web 应用的开发,其中路由系统是其核心组件之一。Express 的路由允许你定义如何响应客户端对不同 URL 和 HTTP 方法(如 GET、POST 等)的请求。下面是一些基础概念和使用示例: 基础路由设置 在 Express 中,你可以直接在应用级别定义路由,或者通过 express.Router 创建模块化的、可重用的路由处理器。 应用级别路由 const express = require('express'); const app = express(); // 定义一个 GET
野猪佩奇 2016-07-14 Node.js 915
如果你想不使用Express生成器从零开始手动创建一个Express应用,这也是完全可以的。下面是一个基本的手动设置步骤: 1. 初始化项目和安装Express 首先,在你希望存放项目的文件夹下,打开终端或命令提示符,初始化一个新的Node.js项目,并安装Express作为依赖: mkdir myManualExpressApp cd myManualExpressApp npm init -y npm install express 2. 创建服务器 在项目根目录下,创建一个名为app.js的文件,这将是你的应用程序的主要入口点。打开这个文件,然后输入以下代码来设置一个基本的Expre
野猪佩奇 2016-07-14 Node.js 952
随机推荐
HTML input range 数值范围选择器
JavaScript 自定义属性 dataset
Node.js 安装
JavaScript 使用剪切板
JavaScript 修改内容和属性
Node.js 实现 RBAC 权限模型
JavaScript 键盘事件
JavaScript Math 对象