
JS
程序员小周
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mouse的over/out和enter/leave
mouseover与mouseenter不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。mouseout与mouseleave不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。原创 2016-08-04 19:01:15 · 613 阅读 · 0 评论 -
JS实现继承
1.使用对象冒充实现继承(该种实现方式可以实现多继承) 实现原理:让父类的构造函数成为子类的方法,然后调用该子类的方法,通过this关键字给所有的属性和方法赋值function Parent(firstname) { this.fname=firstname; this.age=40; this.sayAge=function() {原创 2016-08-08 17:31:12 · 211 阅读 · 0 评论 -
js的预解析
(1)如果JavaScript仅是运行时自上往下逐句解析的,下面的代码能正确运行是可以理解的,因为我们先定义函数,然后才调用它。 function showMsg() { alert('This is message'); } showMsg(); // This is message (2)我们也知道函数可以定义在调用代码之后,如下代码也是能正常工作的。看起来调用showMsg()的时候s原创 2016-08-08 19:27:41 · 274 阅读 · 0 评论 -
数组中堆栈和引用类型的问题
1、栈(stack)和堆(heap)stack为自动分配的内存空间,它由系统自动释放;而heap则是动态分配的内存,大小不定也不会自动释放。2、基本类型和引用类型(1) 基本类型 :存放在栈内存中的简单数据段,数据大小确定,内存空间大小可以分配。5种基本数据类型有Undefined、Null、Boolean、Number 和 String,它们是直接按值存放的,所以可以直接访问。(2) 引用类型 :原创 2016-08-09 11:43:25 · 940 阅读 · 1 评论 -
js对ul列表中的项进行删除
题目要求: 有一个包含数据列表的页面,数据行数不确定。每一行数据都有一个删除按钮,单击删除按钮删除该列数据,请用JavaScript实现该功能。 代码:<script type="text/javascript">window.onload = function(){ var oUl = document.getElementsByTagName('ul')[0]; oUl.oncl原创 2016-08-20 17:20:11 · 7720 阅读 · 0 评论 -
js的原型链
友情链接:http://www.cnblogs.com/TomXu/archive/2012/01/05/2305453.html原创 2016-08-09 16:27:58 · 225 阅读 · 0 评论 -
JS数组去重
三种方法: Array.prototype.unique1 = function(){ var arr = [];//临时数组 for(var i = 0;i < this.length;i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过,原创 2016-08-21 10:44:17 · 345 阅读 · 0 评论 -
JS正则表达式
修饰符: i 执行对大小写不敏感的匹配。 g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 m 执行多行匹配。方括号 方括号用于查找某个范围内的字符: [abc] 查找方括号之间的任何字符。 [^abc] 查找任何不在方括号之间的字符。 [0-9] 查找任何从 0 至 9 的数字。 [a-z] 查找任何从小写 a 到小写 z 的字原创 2016-08-21 15:40:30 · 365 阅读 · 0 评论 -
网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示"××年还剩××天××时××分××秒"
<!doctype html><html><head> <meta charset="utf-8"> <title>TEst</title></head><body> <span id="target"></span><script type="text/javascript"> // 为了简化。每月默认30天 function getTimeStri原创 2016-08-21 16:40:33 · 3823 阅读 · 0 评论 -
有一个大数组,var a = ['1', '2', '3', ...];a的长度是100,内容填充随机整数的字符串.请先构造此数组a,然后设计一个算法将其内容去重
/** * 数组去重 **/ function normalize(arr) { if (arr && Array.isArray(arr)) { var i, len, map = {}; for (i = arr.length; i >= 0; --i) { if (arr[i原创 2016-08-21 17:36:25 · 2556 阅读 · 0 评论 -
document的createDocumentFragment()方法
转载自: http://www.cnblogs.com/yunfour/archive/2011/06/21/2085911.html在《javascript高级程序设计》一书的6.3.5:创建和操作节点一节中,介绍了几种动态创建html节点的方法,其中有以下几种常见方法:· crateAttribute(name): 用指定名称name创建特性节点· createComment(t转载 2016-08-22 10:42:32 · 267 阅读 · 0 评论 -
DOM操作节点
创建DOM元素 •createElement(标签名) 创建一个节点 •appendChild(节点) 追加一个节点 例子:为ul插入li<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html原创 2016-08-22 14:53:32 · 314 阅读 · 0 评论 -
JS判断一个对象是不是Array
typeof 操作符对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时var arr=new Array("1","2","3","4","5");alert(typeof(arr));你会收到一个object 的答案,有点让人失望。instanceof 操作符JavaScript中instanceof运算符会返回原创 2016-08-22 19:28:21 · 401 阅读 · 0 评论 -
正则表达式小结
1 . 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10})$2. 校验中文字符串仅能是中文。^[\\u4e00-\\u9fa5]{0,}$ 传送门:http://www.jianshu.com/p/e7bb9721894原创 2016-11-23 10:47:29 · 242 阅读 · 0 评论 -
js知识点整理
1、变量提升console.log(a);var a = 1;相当于var a;console.log(a)a=1;2、标识符第一个字符可以是任意 Unicode字母或者是美元符号($)或者是下划线(_)以后的字符还可以加上0-9的数字 3、Number和parseInt函数parseInt(’42 cats’) //42Number原创 2017-01-10 20:34:12 · 303 阅读 · 0 评论 -
select2插件实现列表的模糊搜索
select2插件基于bootstrap,可以实现列表的模糊搜索相关链接:http://www.cnblogs.com/wuhuacong/p/4761637.html原创 2017-01-10 20:35:48 · 5305 阅读 · 0 评论 -
js中call和apply
all方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明: call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 如果没有提供 thisObj 参数,那么 Global 对象被原创 2016-08-08 17:12:20 · 245 阅读 · 0 评论 -
DOM事件模型是如何的,编写一个EventUtil工具类实现事件管理兼容
1、DOM事件包含捕获(capture)和冒泡(bubble)两个阶段:捕获阶段事件从window开始触发事件然后通过祖先节点一次传递到触发事件的DOM元素上;冒泡阶段事件从初始元素依次向祖先节点传递直到window 2、标准事件监听elem.addEventListener(type, handler, capture)/elem.removeEventListener(type, handle原创 2016-08-08 16:49:37 · 967 阅读 · 0 评论 -
函数内部arguments变量有哪些特性,有哪些属性,如何将它转换为数组
arguments[index]分别对应函数调用时的实参,并且通过arguments修改实参时会同时修改实参 arguments.length为实参的个数(Function.length表示形参长度) arguments.callee为当前正在执行的函数本身,使用这个属性进行递归调用时需注意this的变化 换为数组:var args = Array.prototype.slice.call(a原创 2016-08-08 11:42:44 · 1475 阅读 · 0 评论 -
AJAX小解
使用XMLHttpRequest对象分为4部完成: 1.创建XMLHttpRequest组件 2.设置回调函数 3.初始化XMLHttpRequest组件 4.发送请求<html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <title>js中的Ajax经典示例</title> 6 <script type="tex原创 2016-07-31 18:09:06 · 209 阅读 · 0 评论 -
js中off和client以及scroll的高度宽度问题
offsetWidth/offsetHeight返回值包含content + padding + border,效果与e.getBoundingClientRect()相同clientWidth/clientHeight返回值只包含content + padding,如果有滚动条,也不包含滚动条scrollWidth/scrollHeight返回值包含content + padding + 溢出内容原创 2016-07-31 17:27:48 · 492 阅读 · 0 评论 -
WEB语义化
web语义化是指通过HTML标记表示页面包含的信息,包含了HTML标签的语义化和css命名的语义化。HTML标签的语义化是指:通过使用包含语义的标签(如h1-h6)恰当地表示文档结构。css命名的语义化是指:为html标签添加有意义的class,id补充未表达的语义。为什么需要语义化:去掉样式后页面呈现清晰的结构 盲人使用读屏器更好地阅读 搜索引擎更好地理解页面,有利于收录 便团队项目的可持续原创 2016-07-31 11:04:51 · 379 阅读 · 0 评论 -
JS对数组的操作
//数组元素的添加arr.push([item1],[item2]...[itemn]);//将一个或者多个元素添加到数组结尾,返回数组新长度arr.unshift([item1],[item2]...[itemn]);//将一个或者多个元素添加到数组开始,数组自动后移arr.splice(insertPos,0,[item1],[item2]...[itemn]);//将一个或者多个元素从i原创 2016-07-31 00:02:34 · 296 阅读 · 0 评论 -
JS三种简单排序算法
冒泡排序:最简单、最慢、长度小于7的时候最优 插入排序:比冒泡要快比快速排序和希尔排序慢,数据量小的时候优势大 快速排序:速度很快原创 2016-07-30 23:19:02 · 10605 阅读 · 4 评论 -
js利用jsonp实现跨域
什么是跨域: //本地代码<script> function getData(obj) { var data = JSON.parse(obj); console.log(data.name);//jiavan console.log(data.age);//20 }</script><script src="http://cv原创 2016-08-04 21:49:08 · 306 阅读 · 0 评论 -
js中bind、call、apply的方法使用
在JS中,这三者都是用来改变函数的this对象的指向的,他们有什么样的区别呢。 在说区别之前还是先总结一下三者的相似之处: 1、都是用来改变函数的this对象的指向的。 2、第一个参数都是this要指向的对象。 3、都可以利用后续参数传参。 那么他们的区别在哪里的,先看一个例子。 var xw = { name : "小王",原创 2016-08-04 22:08:23 · 201 阅读 · 0 评论 -
JS基础知识整理
对代码行进行折行您可以在文本字符串中使用反斜杠对代码行进行换行。下面的例子会正确地显示:document.write("Hello \World!");不过,您不能像这样折行:document.write \("Hello World!");向未声明的 JavaScript 变量来分配值 如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。这条语句:carname="Volvo";将原创 2016-08-27 20:16:50 · 557 阅读 · 0 评论 -
cookie和session小解
1、都会在浏览器端保存,有大小限制,同源限制 2、cookie会在请求时发送到服务器,作为会话标识,服务器可修改cookie 3、cookie有path概念,子路径可以访问父路径cookie,父路径不能访问子路径cookie 4、有效期:cookie在设置的有效期内有效,默认为浏览器关闭5、5、sessionStorage在窗口关闭前有效 5、cookie有secure属性要求HTTPS传输原创 2016-08-07 18:44:16 · 267 阅读 · 0 评论 -
js中闭包的概念
友情链接: http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.htmlhttps://github.com/ly1314529/ly/blob/master/Summary/%E9%97%AD%E5%8C%85%E7%9A%84%E6%A6%82%E5%BF%B5.md原创 2016-08-07 20:26:40 · 368 阅读 · 4 评论 -
JS有哪几种方法构造函数
函数声明表达式hoisted(); // logs "foo"function hoisted() { console.log("foo");}function操作符var math = { 'factorial': function factorial(n) { if (n <= 1) return 1; return n * factorial(n - 1)原创 2016-08-08 10:14:50 · 1638 阅读 · 0 评论 -
==和===运算符
===运算符判断相等的流程是怎样的 如果两个值不是相同类型,它们不相等 如果两个值都是null或者都是undefined,它们相等 如果两个值都是布尔类型true或者都是false,它们相等 如果其中有一个是NaN,它们不相等 如果都是数值型并且数值相等,他们相等, -0等于0 如果他们都是字符串并且在相同位置包含相同的16位值,他它们相等;如果在长度或者内容上不等,它们不相等;两个字符原创 2016-08-08 10:45:45 · 412 阅读 · 0 评论 -
对象到字符串、数字的转换
1、对象到字符串的转换: 如果对象有toString()方法,javascript调用它。如果返回一个原始值(primitive value如:string number boolean),将这个值转换为字符串作为结果 如果对象没有toString()方法或者返回值不是原始值,javascript寻找对象的valueOf()方法,如果存在就调用它,返回结果是原始值则转为字符串作为结果 否则,j原创 2016-08-08 10:53:58 · 2822 阅读 · 0 评论 -
+,<,>,<=,>=的运算比较规则
<,>,<=,>=的比较规则 所有比较运算符都支持任意类型,但是比较只支持数字和字符串,所以需要执行必要的转换然后进行比较,转换规则如下: 1. 如果操作数是对象,转换为原始值:如果valueOf方法返回原始值,则使用这个值,否则使用toString方法的结果,如果转换失败则报错 2. 经过必要的对象到原始值的转换后,如果两个操作数都是字符串,按照字母顺序进行比较(他们的16位unicod原创 2016-08-08 11:05:23 · 622 阅读 · 0 评论 -
一些经典算法的js实现方案
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。function Find(target,array){ //代码实现 for(var i=0;i<array.length;i++){ for(var j=0;j<array[i].leng原创 2017-01-18 14:28:53 · 2505 阅读 · 0 评论