- 博客(17)
- 收藏
- 关注
原创 JS中的对象克隆
数据类型分类js中两大数据类型:简单数据类型和对象类型。简单类型值::数值、字符串、布尔值、null、undefined引用类型值:函数、数组简单类型值保存的是实际数据,;对象类型值保存的是对于对象的引用。克隆浅度克隆:简单类型为值传递,对象类型是引用的传递。深度克隆:所有元素或属性完全复制,与元对象完全脱离,也就是说所有对于新对象的修改都不会反映到原对象中。浅度克隆简单...
2018-03-28 23:24:20 1080
转载 浏览器页面渲染过程与页面优化
本文原文链接https://segmentfault.com/a/1190000010298038 由一道面试题引发的思考:从用户输入浏览器输入url到页面最后呈现 有哪些过程? 一道很常规的题目,考的是基本网络原理,和浏览器加载css,js过程。答案大致如下: 1.用户输入URL; 2.浏览器解析URL解析出主机名; 3.浏览器将主机名转换成服务器IP地址(浏览器先查找本地...
2018-03-24 22:21:08 303
转载 前端常见跨域解决方案
本文基于https://www.cnblogs.com/roam/p/7520433.html整理前端跨域是指在浏览器同源策略的限制下去请求另一个域下的资源同源策略 同源是指协议+域名+端口都相同,是浏览器最和县的安全功能,如果没有同源策略,浏览器容易受到XSS,CSFR等攻击。 同源策略限制以下几种行为:1)cookie 、loaclstorage和indexDB无法读取;...
2018-03-23 13:07:58 255
原创 闭包的理解
闭包:是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式就是在一个函数内部创建另一个函数function createComparisonFunction(propertyNmae){ return function()object1,object2){ var value1=object1(propertyName); var valu...
2018-03-15 15:21:26 206
转载 JS继承的实现
许多OO语言支持两种方式的继承:接口继承和实现继承。接口继承只继承方法的签名,实现继承则继承实际的方法。ECMAScript中函数没有签名,因此只支持实现继承,实现继承有原型链来实现;基本思想是:利用原型让一个引用类型继承另一个引用类型的属性和原型链原型链的基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。每一个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指...
2018-03-14 22:34:28 146
原创 JS中创建对象的方式
工厂模式(1). 用函数封装以特定接口创建对象的细节,解决了相似对象的问题,没有解决对象识别的问题(2).function createPerson(name,age,job){ var o=new Object(); o.name='name'; o.age=age; ...
2018-03-14 20:13:51 525
原创 Array.prototype.slice.call(arguments,1),类数组转化为数组
实现函数 callIt,调用之后满足如下条件:返回的结果为调用 fn 之后的结果;fn 的调用参数为 callIt 的第一个参数之后的全部参数2.`function callIt(fn) {var newArr = Array.prototype.slice.call(arguments,1); var result = fn.apply(null,newArr); return r...
2018-03-13 21:18:48 2135 1
原创 原生js实现贪吃蛇
写这个小例子时在学习构造函数创建对象,所以元素都是以构造函数形式创建的。1.创建地图 function map(){ //相关属性 this.className='map'; //构造地图对象 this._map=null; this.createMap= function () {
2017-07-25 15:59:51 8534 3
原创 交换类排序(冒泡排序及快速排序)
交换类排序算法的基本思想是:对带排序记录的关键字两两比较,只要发现两个记录为逆序就进行交换,直到没有逆序为止 一.冒泡排序 冒牌排序也叫相邻比较法,即在扫描带排序记录序列是,顺次比较两个记录的关键字大小,如果逆序就交换记录 动画示意(此处用http://blog.csdn.net/wall1999/article/details/55192744中的动图) ```/
2017-07-25 09:28:03 960
转载 堆与栈的区别
转载自http://blog.csdn.net/hairetz/article/details/4141043/ 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(*stack)— 由编译器自动分配释放* ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(h
2017-06-12 23:36:24 174
原创 javascript高级程序教程中关于闭包与变量的问题
引入一个经典的闭包与变量的问题function createFunction(){ var result=new Array(); for(var i=0;i<10;i++){ retrun i; } return result; }闭包只能取得包含函数中任何变量的最后一个
2017-06-12 22:13:09 307
原创 JS中for循环输出同一变量值的问题
例一var data = [];for(var k = 0; k < 3; k++){ data[k] = function(){ return k; }; } alert(data[0]());预想中应输出0,但结果为3 首先必须清楚一下几点. 在JS中没有块级作用域的概念,for循环中定义的var k实际上是一个window全局变量。
2017-06-12 18:05:39 6060
原创 关于创建对象的两种方式
填写内容让下面代码支持a.name = “name1”; b.name = “name2”;function obj(name){ 1}obj. prototype.name = "name2";var a = obj("name1");var b = new obj;关于本题有以下两种答案 方法1: if(name){ var obj ={}; obj.name =
2017-06-08 20:59:01 774
原创 jquery中bind,live,on,one,delegate的区分
1.bind()方法,将一个事件处理程序添加到每一个匹配元素的事件上,并返回jquery对象.. bind(eventType,[,eventData],handler(eventObject)).bind(eventType[,eventData][,preventBubble]).bind(events) Events,object,使用json的形式,为当前元素定义多个事件简单的给固定的
2017-05-31 18:11:02 369
原创 javascript练习题中遇到的小技巧
1.练习遇到JSON对象数组的迭代,常规会想着采用for循环,但使用javascript数组迭代方法更简单有效。 > function lookUp(firstName, prop){ var temp = contacts.filter(function(item){ return item.firstName == firstName; }); //此处的co
2017-05-10 21:08:24 333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人