javascript
文章平均质量分 74
季诗筱
分享我的个人公众号-【季诗筱】
展开
-
jsonp跨域请求
这一周都在使用jsonp跨域请求,记录一下做的项目和过程中遇到的问题。JSONP:JSON with padding的简写 (填充式JSON/参数式JSON)。 JSONP与JSON看起来差不多,只不过是包含在函数调用中的JSON。上面这句话要好好理解,JSONP其实是一个函数调用,如: 函数名( { json内容 } ); javascript高级程序设计中这么说的:原创 2016-03-04 17:06:21 · 631 阅读 · 0 评论 -
【JavaScript】变量、作用域和内存问题
重新刷一遍红宝书,把之前没有注意到的,这次刷书觉着还是很陌生的很重要的地方记录下来。1、变量:2、执行环境与作用域链1)、执行环境有全局环境和函数执行环境之分;2)、每次进入一个新执行环境,都会创建一个用于搜索变量和函数的作用域链;3)、函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其包含(父)环境,乃至全局化境;4)、全局环境只能访问在全局环境中定义的变量和函数,而不能直接访问局部环境原创 2016-06-10 16:36:58 · 747 阅读 · 0 评论 -
【JavaScript】引用类型
引用类型是一种数据结构,用于将数据和功能组织在一起,相当于Java的类。 对象是某个特定应用类型的实例。1、Object类型2、Array类型(1)创建数组 1、使用Array构造函数 var array = new Array(1,2,3); 2、使用数组字面量表示法 var array = [1,2,3];数组的length属性:通过该属性可以从数组的末尾移除或者添加新项。var原创 2016-06-11 10:59:22 · 1107 阅读 · 0 评论 -
【JavaScript设计模式】(一)
最近在学习JavaScript设计模式,学习过之后感觉很有收获,现把自己的学习内容总结如下: 模式:是一种可服用的解决方案,可用于解决软件设计中遇到的常见问题。 设计模式:有三大好处,模式是已经验证的解决方案;模式很容易被复用;模式富有表达力。本篇主要介绍8种设计模式,其余模式将在后续博文中继续介绍原创 2016-07-10 13:16:31 · 4669 阅读 · 2 评论 -
【JavaScript】事件
事件流;事件处理程序;跨浏览器的事件处理程序;HTML5事件;鼠标事件……原创 2016-06-29 11:36:24 · 5667 阅读 · 4 评论 -
【JavaScript】难点1-继承
对象创建继承原创 2016-06-13 18:18:42 · 1442 阅读 · 3 评论 -
【JavaScript】难点2-闭包
闭包:是指有权访问另一个函数作用域中的变量的函数。创建闭包城建的方式,就是在一个函数内部创建两一个函数。—《JavaScript高级程序设计》 照这句话理解的话,闭包就是一个嵌套函数嘛!嵌套函数对包含它的函数的变量当然可以访问,这是没有问题的。面试的时候经常会被问到闭包有关的问题,什么是闭包?为什么使用闭包?最近就把闭包仔细的研究了一下,现在总结如下原创 2016-06-15 13:24:10 · 808 阅读 · 0 评论 -
移动端屏幕自适应
移动端屏幕自适应原创 2016-06-27 22:34:55 · 1334 阅读 · 1 评论 -
正则表达式
正则表达式,我一直学的云里雾里的,很多的元字符都弄不清楚,今天看完了《正则表达式必知必会》这本书,觉着讲的很棒,现在把相关知识总结如下: 写在前面:其实正则表达式并不难,只要静下心来去学习,就会发现真的不难。这篇博文主要介绍了 正则表达式的语法知识 以及 JavaScript中的RegExp对象原创 2016-07-03 19:12:51 · 4697 阅读 · 4 评论 -
【JavaScript】BOM
BOM(浏览器对象模型)1、window对象BOM对象的核心是window,他表示浏览器的一个实例。window对象既是通过JavaScript访问浏览器窗口的一个接口,有事ECMAScript规定的Global对象。(1)全局作用域所有在全局作用域中声明的变量/函数都会变成window对象的属性和方法。 定义全局变量与在window对象上直接定义属性的差别: 全局变量不能通过delete操作符原创 2016-06-20 15:15:24 · 616 阅读 · 0 评论 -
【JavaScript】Cookie and Web Storage
这一块自己学习了有一阵子了,但是今天看面试题的时候,让说一下cookie的弊端以及web storage与cookie的区别,竟然还是不知道从何说起,所以,还是要自己认真的梳理一遍。支持离线的Web应用开发,是HTML5的一个重点。离线Web应用,就是在设备不能上网的时候依然可以运行的应用。开发离线Web应用需要几个步骤: 1、确保应用知道设备能否上网,以便下一步执行正确的操作。可以使用HT原创 2016-07-18 21:40:55 · 4402 阅读 · 4 评论 -
HTML5-Web Workers
问题:长时间运行的JavaScript进程会导致浏览器冻结用户界面,让用户感觉屏幕“冻结”了。解决:使用Web Workers,浏览器实现Web Workers 规范的方式有很多种,可以使用线程、后台进程或者运行在其他处理器核心上的进程等。这些具体实现细节并没有那么重要,重要的是开发人员可以放心的运行JavaScript了。1、使用Workervar worker = new Worker("wor原创 2016-08-03 21:24:07 · 984 阅读 · 0 评论 -
【JavaScript】精准定位参数学习
pageX,offsetX,clientX,各种各种的定位参数让人会很晕啊,用的时候会不知道该用哪一个…… 看书的时候觉着好像看的挺明白了,但是到真的要定位要用的时候,就开始懵逼,到底哪个是哪个阿……今天来梳理一下。再扯一点,其实这篇博客早就想整理一下了,但是却总被别的内容给挤掉了,所以这么久了,还是觉着自己对这些的定位参数掌握不牢固。加上最近简历也投了,总在等着电话面试,心里慌慌,导致我只能去准备原创 2016-07-27 23:48:12 · 1543 阅读 · 2 评论 -
【JavaScript】排序算法
找工作心好累,各种等电话啊等等等……不过机会总是留给有准备并且准备好的人的,所以,继续加油!今天总结4种JS的排序算法,分别是冒泡排序,快速排序,选择排序和插入排序。分别介绍其原理和代码实现,所有代码均可在github上下载。正文开始:1、冒泡排序 原理: 从头开始比较相邻的两个待排序元素,如果前面元素大于后面元素,就将两个元素的位置互换。这样对序列的第0个元素到第n-1个元素进行一次遍历后,最原创 2016-08-08 22:56:27 · 1143 阅读 · 0 评论 -
继承再学习
对于继承,是面试经常会面到的问题,而且也是平时写代码的时候常用到的地方。之前也写过继承的文章 ,再次翻看,之前写的是啥呀。学习这个东西真的很奇怪,它永远是那个只要你付出就会有汇报的家伙。最近面试也面了很多,几乎都会问到,如何理解原型链,如何理解继承?我的回答基本是一样的: 原型链就是让一个对象的原型等于另一个对象的实例。 继承比较好的方法就是用借用构造函数来继承属性,用原型链来继承方法。 个原创 2016-08-20 12:33:20 · 1574 阅读 · 6 评论 -
【JavaScript】类型转换
前天面试,面试官问到了一个超级简单的题目:“true==3”返回什么?我不假思索,脱口而出,true!,因为存在隐式类型转换,会把3转换为true,所以最后返回true。欧买嘎,我说的还特别理直气壮。挂完电话后,觉着,不对啊,true==3,返回的是false啊!!!false啊!!! 因为会进行隐式类型转换的不是3,而是true会转换成1,所以1==3,返回false啊。突然觉着天都黑了,这么基础原创 2016-08-11 12:37:09 · 2401 阅读 · 3 评论 -
【JavaScript】DOM
DOM,DOM扩展,HTML扩展,DOM2 DOM3原创 2016-06-25 21:23:32 · 5787 阅读 · 2 评论 -
【JavaScript】-原生JavaScript实现Ajax
XHR1级、XHR2级、Ajax的原生代码实现、进度事件原创 2016-05-30 10:43:48 · 2731 阅读 · 0 评论 -
javascript代码获取css属性
今天做项目,过程中需要用js代码获取到css属性的值,网上百度了一下,有自己写函数的,但是实在太长了,我都不爱看啊,后来在张鑫旭的博客鑫空间鑫生活里看到了几行代码,恰巧是可以获取css属性的。//获取相关CSS属性var getCss = function(o,key){ return o.currentStyle? o.currentStyle[key] : document.d原创 2016-03-04 17:49:05 · 1021 阅读 · 0 评论 -
Drag,js实现鼠标拖拽元素
今天有个需求,就是实现移动端元素的拖拽功能,自己用原生代码写了一个在PC端通过鼠标进行拖拽的例子,代码如下:<!DOCTYPE html><html><head> <title>实现拖拽功能</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/style.css">原创 2016-03-09 17:29:36 · 4221 阅读 · 4 评论 -
Hammer.js 实现移动端元素的拖拽库
Hammer.js是一个可以实现移动端元素拖拽的库。其功能还是比较全的,主要针对触屏的6大事件进行监听:【引用内容转自李林峰的园子】 1、 Pan事件:在指定的dom区域内,一个手指放下并移动事件,即触屏中的拖动事件。这个事件在屏触开发中比较常用,如:左拖动、右拖动等,如手要上使用QQ时向右滑动出现功能菜单的效果。该事件还可以分别对以下事件进行监听并处理: Panstart:拖原创 2016-03-09 17:45:01 · 13862 阅读 · 1 评论 -
Swiper.js 实现移动端元素左右滑动
swiper.js也是一个很好用的移动端的js库,需要引入它的css文件和js文件。用法很简单,加入相应的类即可,看一下Demo,很容易看懂。 我的例子如下:<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"> <title>Swiper demo</title> <meta name="viewpor原创 2016-03-09 17:53:46 · 15473 阅读 · 4 评论 -
【JavaScript 高级程序设计阅读笔记】JSON
JSON是JavaScript的一个严格的自己,利用了JavaScript中的一些模式来表示结构化数据,它是一种数据格式,不是一种编程语言。1、语法JSON的语法可以表示以下三种类型的值:(1)简单值(2)对象(3)数组(1) 简单值 :字符串、数值、布尔值和null,不支持undefined(2) 对象 与JavaScript对象字面量相比,原创 2015-12-23 10:51:12 · 508 阅读 · 0 评论 -
canvas绘图 -实现图片围绕中心点旋转
今天想要学习制作一个抽奖的转盘,想用canvas来绘制转盘,于是重新学习了一下canvas. 1、canvas的使用 要使用元素,必须先设置其width和height属性,制定额可以绘图的区域大小。出现在开始和结束标签中的内容是后备信息,如果浏览器不支持元素,就会显示后备信息。<canvas id="inner-circle" width="510px" height="510px">您的浏览器原创 2016-02-24 16:52:35 · 26987 阅读 · 1 评论 -
js计数器方法:setInterval()和clearInterval();setTimeout()和clearTimeout()
1、setInterval()和clearInterval() 定义: setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。 用法:var p=se原创 2016-02-24 17:25:22 · 3752 阅读 · 0 评论 -
编写JavaScript函数解析查询字符串
今天用到了一个功能,就是获取页面URL的参数,编写的函数如下:function getQueryStringArgs(){ //取得查询字符串并去掉开头的? var quetyString = (location.search.length > 0 ? location.search.substring(1) : "");原创 2016-02-25 21:39:22 · 986 阅读 · 0 评论 -
ajax 实现 JavaScript与jsp数据的传递
ajax 实现 JavaScript与jsp数据的传递原创 2016-02-25 21:34:12 · 14864 阅读 · 3 评论 -
javascript原生代码实现ajax请求
如何用js原生代码实现ajax原创 2016-02-29 16:41:46 · 6900 阅读 · 0 评论 -
【JavaScript】 高级函数
函数是JavaScript中最有趣的部分之一。它们本质上十分简单和过程化,但也可以是非常复杂的,一些额外的功能可以使用闭包来实现,此外,由于所有函数都是对象,所以使用函数指针非常简单。接下来,描述集中在JavaScript中使用函数的高级方法。安全的类型检测问题;作用域安全的构造函数;惰性载入函数原创 2016-05-31 17:23:18 · 714 阅读 · 0 评论 -
【JavaScript】函数节流
函数节流,设置定时器,避免一些代码在很短的时间间隔内连续调用,影响页面性能。原创 2016-06-01 14:41:57 · 2227 阅读 · 0 评论 -
【JavaScript 高级技巧】防篡改对象+高级定时器
高级技巧之 防篡改对象 和高级定时器原创 2016-06-01 20:57:22 · 1310 阅读 · 0 评论 -
【JavaScript 】函数柯里化
柯里化:柯里化是这样的一个转换过程,把接受多个参数的函数变换成接受一个单一参数(译注:最初函数的第一个参数)的函数,如果其他的参数是必要的,返回接受余下的参数且返回结果的新函数。(译注)函数柯里化用于创建已经设了好了一个或多个参数的函数。其基本方法和函数绑定是一样的:使用一个闭包放回一个函数,但柯里化返回的函数还需要设置一些传入的参数原创 2016-05-31 16:33:59 · 806 阅读 · 0 评论 -
【JavaScript】跨源资源共享CORS和其他跨域技术(Comet、JSONP、SSE、Web Sockets)
通过XHR实现Ajax通信的一个主要限制,来源于跨域安全策略。默认情况下XHR对象只能访问与包含它的页面位于同一个域中的资源,这种安全策略可以预防某些恶意行为。但是,实现合理的跨域请求也是很重要的。一、CORS跨源资源共享CORS(Cross-Origin Resource Sharing),跨源资源共享,是W3C的一个工作草案,定义了在必须访问跨源资源时,浏览器与服务器该如何沟通。其背后的基本思想原创 2016-05-30 17:05:43 · 4456 阅读 · 0 评论 -
闭包再学习
之前写过博客,也看了无数博客,去学习闭包,理解闭包。后来,得出的结论是,闭包是一个函数,它能访问另一个函数定义的变量和方法。 前几天面试网易,面试官的一个反问让我有点懵,他说只是可以访问另一个函数的变量和方法吗?什么函数都可以?回来后,觉着我对于作用域,执行环境的理解太片面,那么对于闭包的理解就更不用说有多片面了。今天又看了很多博客,重新刷了《高级程序设计》,包括维基百科和MDN的英文原版都学习了一原创 2016-08-22 23:09:01 · 2280 阅读 · 5 评论