
JavaScript
文章平均质量分 96
c-Tomorrow
如果你能力撑不起野心的时候,那么就应该静下心来好好学习了。
展开
-
new运算符的模拟实现
一句话介绍JavaScript中的new运算符new运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一我们都知道在JavaScript中new运算符是利用构造函数的方式创建对象的,今天就来模拟一个这个new运算符的功能。new关运算符通过构造函数创建对象得到的对象,来分析一下1.得到的对象的属性中有构造函数中this所绑定的属性2.得到的对象可以访问构造函数原型链上...原创 2018-10-29 23:18:21 · 588 阅读 · 0 评论 -
JavaScript之eval用法
在JavaScript史中,出现过这样一个方法,这个方法可以修改变量环境进行代码执行,这个方法就是eval()。 eval() 这个函数只有一个参数,当传入的参数不是字符串的时候,则返回这个参数。当传入的参数是字符串的时候,则它会把这个字符串当做js代码来执行,当然传入的字符串在语法上必须得讲得通的。 eval最重要的是调用了它的变量作...原创 2018-03-12 19:44:09 · 1126 阅读 · 0 评论 -
JavaScript之运算符表及含义
在js里面运算符占有着重要的意思,今天在一本书上看到了运算符全解,特来分享一下。来自JavaScript权威指南第六版,喜欢就收藏吧--主页传送门--...原创 2018-03-11 20:59:28 · 392 阅读 · 0 评论 -
JavaScript之脚本化CSS
到了实战性的东西了,JavaScript虽然不能直接改变CSS,但可以通过其他方式间接改变CSS dom.style.prop 可读写行间样式,没有兼容性问题,碰到float这样的保留字或者关键字属性前面应加css 例:float --> cssFloat。 复合单词必须拆解,组合单词变成小驼峰式写法。写入值必须是字符串。var di...原创 2018-02-24 21:34:10 · 235 阅读 · 0 评论 -
JavaScript之窗口属性
说到窗口属性,我们随着编程技能的提升,从刚开始的html到加上css再到单独的JavaScript再接着JavaScript和DOM连接我们都离不开和浏览器窗口打交道,当然,熟悉浏览器窗口操作也是我们向更深一层进阶。 查看滚动条滚动距离 随着IE版本的提升 同样浏览器窗口属性也出现了一些变化。 window.pageXOffset/windowpageYOffs...原创 2018-02-24 21:01:32 · 395 阅读 · 0 评论 -
JavaScript之正则表达式精解
在所有的语言中基本上都有一个通用的东西,那就是正则表达式了,正则表达式定义了字符串的组成规则,使得匹配环节更加灵活。同样,在前端领域中,我们知道处理数据源的终端在前端,随着交互式输入信息的格式的核查,使得正则表达式奇为重要。 在进入正文之前,先铺垫一点小知识 转义字符 在前端JavaScript代码编写中,有很多字符是带有语法规则的,如果你...原创 2018-03-10 18:58:33 · 274 阅读 · 0 评论 -
JavaScript之定时器
在JavaScript定时器中有两种:一种是定时循环器,一种是真正的定时器。定时循环:setInterval() 使用方法: 1.setInterval(function(){},1000) 2.var timer = setInterval(function(){},1000)两种都是定时循环...原创 2018-02-23 19:36:11 · 489 阅读 · 0 评论 -
JavaScript之Date()对象(日期对象)
日期对象Date()对象是系统定义好的对象。Date()这是个构造函数。特点:返回的是当日的日期,不是实时性,表示时间记录作用。Date()属性Date()的一些方法 var date = new Date(); console.log(date); console.log(date.getDate()); //表示当日是月时间轴的第几天 ...原创 2018-02-23 19:14:30 · 1353 阅读 · 0 评论 -
JavaScript之Dom节点操作
上次在Dom选择器和Dom节点类型的时候说了Dom查找节点的方法。今天说一下Dom节点的其他方法。创建节点 增加节点,增加的有三种节点:1.元素节点,2.文本节点3.注释节点。 1.元素节点var div = document.createElement('div'); 2.文本节点var text = document.createTex...原创 2018-02-20 23:57:22 · 276 阅读 · 0 评论 -
JavaScript之Dom结构树及基本操作
Dom结构树 在JavaScriptDom操作里面,每一个元素节点都有一种继承关系,这种关系和ECMAscript里原型差不多,同样在每一个原型上的属性和方法被继承到了元素上及Document上,这些属性和方法才得以使用。这就是在Dom中节点继承关系。这种继承是基于原型链的。Dom的基本操作 1.getElementById方法定义在Document。p...原创 2018-02-20 23:43:10 · 699 阅读 · 2 评论 -
JavaScript之Dom节点类型、遍历节点数。
在Dom文档查的结构中,实际上各级标签呈现树状排列。我们可以把整个html文档看成一个树形,可以通过遍历节点树的形式进行标签的选取。 Dom文档中,遍历节点的节点有,文本节点,注释节点和标签节点。遍历节点树 以下找孩子节点包括文本节点和注释节点 parentNode -->父节点(最顶端的parentNode是docuemnt)<!D...原创 2018-02-20 23:35:58 · 840 阅读 · 0 评论 -
JavaScript之再谈对象之属性的特性
在各种语言中对象的属性都有很对特性,JavaScript也不例外。 对象属性中除了名字和值外,还有一些标识着它们可写,可枚举,可配置的特性,存取器也是可以看成属性的特性的。 一般属性有一个名称,四个特性分别是:值(value),可写性(writable),可枚举性(enumerable),可配置性(configurable)。 存取器不具有...原创 2018-03-15 00:30:30 · 203 阅读 · 0 评论 -
JavaScript之再谈数组之数组方法、ES5方法
稀疏数组 在数组中有那个一种形式:忽略索引,显示长度。这种形式就是稀疏数组。 稀疏数组定义方法是:两种方式,var a = new Array(5);console.log(a.length);console.log(a);var arr = [];arr[1000] = 0;console.log(arr); 数组方法 ...原创 2018-03-18 23:46:48 · 342 阅读 · 0 评论 -
JavaScript之JSON
我们知道,前端和后端进行沟通的桥梁是数据的传输。在数据的传输中不同的时代也有着各种各样的数据传输格式。从开始的XML到如今的JSON格式传输,也包含着各种各样的变化。从繁到简。 JSON json说白了就是一种对象,也可以说是一种命名空间,json是一种数据传输格式,本质上是对象,但用途不同,对象就是本地用的,而json是作为数据传输用的。 ...原创 2018-03-05 22:07:09 · 2093 阅读 · 0 评论 -
关于跳出while(1)死循环问题
最近也是再看题的时候看到了这个东西。同样也是再写需求中出现的东西。也就是while(1)死循环,有时候我们想让一个while一直循环。到需要的时候跳出循环。这种要怎么办???来看一道题:while(1){ switch("a"){ case "a" : console.log(true); //修改代码不让while死循环,...原创 2018-08-07 18:31:33 · 30952 阅读 · 1 评论 -
JavaScript原生运动框架
在网页交互过程中,运动是比不可少的,每次交互产生运动的时候,都要写一次关于这次运动的代码,显然很麻烦,封装运动框架能让代码的可读性增强很多。 匀速运动 匀速运动就是让dom元素匀速的进行某一个动作(位置,大小等)。var timer = null;function anmite(dom,target){ var speed; if(dom.offset...原创 2018-05-19 13:19:11 · 445 阅读 · 0 评论 -
JavaScript之函数式编程思想--函数记忆
函数记忆编程是一种编程思想,主要是解决当我们在编程过程中有些部分或者有些功能是重叠的,可以利用记忆函数来把重叠的部分记录下来。 典型的例子就是阶乘和斐波那契数列了。这里我们用数组来示范一下。var content = 0;function jiece(n) content ++; if(n == 0 || n == 1){ return...原创 2018-03-29 01:05:58 · 735 阅读 · 2 评论 -
JavaScript之函数式编程思想-纯函数
在任何一个语言中都避免不了Bug的存在。我们只能用一系列编程的思想尽量避免Bug的产生。 Bug守恒定律 当我们在开发网站的时候,一旦网站的应用代码量达到一定程度的时候,它将不可避免的包含某种Bug,这个东西并不是JavaScript特有的,而是几乎所有的语言都有的通病--虽然不是不可能,想要彻底清除代码中的Bug是非常难办到的,但是,这并不意味着我们不...原创 2018-03-29 00:41:39 · 806 阅读 · 0 评论 -
JavaScript之函数式编程不完全函数
不完全函数编程是一种函数编程技巧,即把一次完整的函数调用拆成多次函数调用,每次传入的参数都是完成参数的一部分,每次才分开的函数就叫做不完全函数。每次函数调用就叫做不完全调用。 特点: 每次调用都返回一个函数,知道调用最终位置。 在函数式编程中ES3.0模拟bind的方法就是一个很好的例子。先看代码。Function.prototype.newBind(t...原创 2018-03-29 00:08:22 · 407 阅读 · 0 评论 -
JavaScript之高阶函数详解
最近在狂刷JavaScript权威指南(第六版),看到高阶函数这里。高阶函数在稍微大一点的项目里也是很常用的。 所谓高阶函数就是以一个函数作为参数传入高阶函数里面经过一些算法再返回一个函数,精准的利用了闭包的特性--私有化变量,防止污染全局。 看例子吧 function not(f){ return function(){ var args ...原创 2018-03-28 21:17:22 · 390 阅读 · 0 评论 -
JavaScript之ES3.0模拟map和reduce
我们知道浏览器的发展是相对快速的,当然浏览器的不断更新同样面临着前端的更新,在我们前端编程中由于用户所用浏览器的不同,我们是必须要做兼容性处理的,有些浏览器的版本比较低,一些前端语言不兼容,做方法的兼容性处理衡很好的避免Bug的出现。 ES3.0实现数组map方法var map = Array.prototype.map ? function(a,f){ retur...原创 2018-03-28 20:43:16 · 608 阅读 · 0 评论 -
JavaScript简单拖拽
说到交互,基本上是在JavaScript语言中占据了大分量,JavaScript行为 为页面增添了光彩,而现在大多数网站都是运用交互式的,拖拽在交互这个大系统中也是很有重量的。 把一个东西放在大盒子里移动拖拽,计算拖拽公式是非常重要的,基本上明白了拖拽公式就可以写出拖拽代码了。 假设我们把物体1 拖拽到物体2 的地方,此刻可以知道拖拽的步骤...原创 2018-03-30 22:43:13 · 392 阅读 · 0 评论 -
JavaScript之bind及bind的模拟实现
在JavaScript编程中有很多改变this的方法和方式,今天说的bind与众不同,像call、apply改变this指向的时候会直接执行。而bind则不是,话不多说,直接进入正题。 bind bind是函数原型上的一个方法,作用是改变this指向并且返回一个函数等待被执行。Function.prototype.bind() bind()...原创 2018-03-23 23:49:38 · 2360 阅读 · 1 评论 -
JavaScript之js加载时间线精解
在js加载开始的时候,浏览器会记录js执行的这段过程。 1.创建Document对象,开始解析web页面,解析HTML元素和他们的文本内容后添加Element对象和Text节点到文档中。这个阶段Document。readyState = "loading"。 2.遇到link外部css,创建线程加载,并继续解析文档。 ...原创 2018-03-05 23:13:30 · 1909 阅读 · 0 评论 -
JavaScript之js异步加载精解
在解释之前先铺垫几个知识点。 DomTree:在页面渲染时候会把html构建成一个树形结构,把标签全部挂在树形结构上,构建DOM树采用深度优先原则。 Dom解析:绘制DOM树过程中,当遇到外部引入的文件标签时候,不用等到DOM元素全部加载完成再放到DOM树上,只知道是什么就可以了,DOM树的构建完毕表示所有DOM节点解析完毕。 CssTre...原创 2018-03-05 23:02:12 · 334 阅读 · 1 评论 -
JavaScript之再谈对象之getter、setter存取器
在JavaScript对象中,有两种属性getter、setter。 getter 和 setter是一种存取器,也可以说成是对象定义属性是读写属性的方法,getter定义可读属性,setter定义可写属性,读取只写属性总是返回undefined。 var obj = { x : 1, get getX(){ return this.x; }, set...原创 2018-03-15 00:15:50 · 263 阅读 · 0 评论 -
JavaScript之再谈对象之枚举对象的工具函数
在JavaScript中,由于JavaScript的弱类型特征,使得JavaScript变的更加灵活,同样JavaScript中对象也是如此。var o = { name : "wang", age : 20,}var p = { name : "zhou", age1 : 21,} 以上两个函数为例。 把p中的可枚举属性复制到o中,并返回o,如果...原创 2018-03-14 23:33:36 · 291 阅读 · 0 评论 -
JavaScript之 callee及caller
callee 大家都知道arguments是函数的实参列表,而这个callee就是arguments的一个方法。arguments.callee指向自身函数function person (){console.log(arguments.callee);}person();//输出的就是person这个函数//arguments.callee == test ...原创 2018-02-12 21:10:44 · 185 阅读 · 0 评论 -
JavaScript之this
this在JavaScript中访问全局变量,访问函数内部变量,大家都知道,this,是用起来最舒服的一个指针。对于this有几个特点 1.在预编译过程中this指向window(全局) function test(){var a = 123;var b = 456;}test();/*在test函数预编译阶段,AO中除了有a和b还有两个参数,arguments和this,这里的a...原创 2018-02-12 20:54:29 · 281 阅读 · 0 评论 -
JavaScript之事件及事件的绑定与解除
在网页交互过程中,事件起到了很大的作用。事件--是交互体验的核心功能。 事件的绑定 事件的绑定有三种。 1.on + 时间类型 例:div.onclick =fucntion(){}; 兼容性很好,凡是一个元素在同一时间只能绑定一个处理函数。这个东西相当于作用在行间。var div = documen...原创 2018-02-26 21:46:45 · 327 阅读 · 0 评论 -
JavaScript之作用域及作用域链精解
上次说了一下JavaScript预编译,在预编译过程中JavaScript函数会生成AO对象这个东西,个AO对象也称之为“执行期上下文”。今天说一下这个作用域和作用域链,明白这个东西,会更明白JavaScript代码。一,作用域 其实每个JavaScript函数都是一个对象,对象中有些属性我们可以访问,有的不可以,就像test()函数的test.name是可以访问的,[[scope]]原创 2018-02-06 17:04:04 · 287 阅读 · 0 评论 -
JavaScript之区别一个变量是数组还是对象的三种方法
var num = {} // || [];上面代码表示这个num是对象或者数组我们不知道,如何区分有三种方法。1.constructor2.instanceof3.toString.call() JavaScript语言我个人感觉是最有意思的了,我也是一个初学者,遇到问题,喜欢在博客上分享,也希望能帮到大家。一个初学者,有什么不足或者纰漏的话,希望在下面评论出来,相互学习,...原创 2018-02-11 20:49:51 · 259 阅读 · 0 评论 -
JavaScript之命名空间
在大程序做项目的时候,一个项目的完成不可能是一个人完成的,往往需要很多人,就像前端,一个团队写界面会有很多个HTML文件,很多个CSS文件和很多个JS文件,就JavaScript而言,对于每个人的命名规则不一样,相近的功能可能会产生同样的变量名以及函数名,产生变量覆盖现象。那么设置命名空间就很重要了。命名空间 作用:管理变量,防止污染全局,适用于模块化开发。 方...原创 2018-02-11 18:12:19 · 254 阅读 · 0 评论 -
JavaScript之继承模式。
个人感觉作为一个程序员在编写程序时,快捷,高效,简便,是写代码的最大特点。在相对于相同的代码不用去写第二遍,在别处写好的功能在这里直接拿来去用,就是快捷的一种方式。继承模式 在继承模式的发展史上,出现过很多种继承模式,经过不断完善最终成就完美模式 原型链 别人的东西我如果需要我自己拿来用。Grand.prototype.lastName = "wan...原创 2018-02-11 17:10:08 · 292 阅读 · 0 评论 -
JavaScript之预编译
初学JavaScript,遇到预编译这个梗,学完,感觉对于JS代码的理解和执行过程又更深了一步。首先说一下,众所周知,JavaScript语言是一种解释性语言。JavaScript代码执行分为三个步骤:1.语法分析 2.预编译 3.解释执行在预编译阶段简单总结两句话:1,函数声明整体提升----提升到逻辑的最前面 2,变量声明提升---只是把声明提升到最前面预编译阶段原创 2018-02-05 19:23:58 · 309 阅读 · 0 评论 -
JavaScript之call、apply
我认为编程也是随着科技的发展实现,高效性,简介性的重要理念。call和apply是JS中知识点少而又非常重要的。call/apply 作用:他们两个的作用相同,改变this指针的指向,借别人的方法实现自己的功能。 区别:要说它们两个的区别有两个:1、书写不同。2、传参列表不同。call:需要把实参按照形参的个数传进去,apply:传的是数组,是实参列表(ar...原创 2018-02-10 18:20:04 · 279 阅读 · 0 评论 -
JavaScript之原型、原型链
原型 定义 原型是function对象的一个属性,它定义了构造函数制造出的对象的公有祖先,通过该构造函数产生的对象, 可以继承该原型的属性和方法,原型也是对象。 构造函数不懂的话 点击这里 上面说原型是function对象的一个属性---prototype。 Per...原创 2018-02-09 22:24:59 · 225 阅读 · 0 评论 -
JavaScript之类型转换
本人是一个初学小萌新,对什么都比较好奇,开始学JavaScript,对JS的感兴趣,学到类型转换这个地方,总结了一下类型转换的知识点,给大家分享一下。 类型转换分为“显示类型转换“和“隐式类型转换”。顾名思义,显示类型转换就是以各种转换函数进行的转换;隐式类型转换是暗藏在表达式里面的转换。一,显示类型转换 显示类型转换:Number(),parseInt(),parseFloat(),原创 2018-02-05 17:14:37 · 415 阅读 · 1 评论 -
JavaScript之事件的处理模型---事件冒泡,捕获及取消冒泡,阻止默认事件
在时间处理机制上分为两种:一种是事件冒泡,一种是事件捕获。而这两种中机制,一个事件对象只能触发一种事件处理模型,要么冒泡,要么捕获。 所谓事件对象:在事件处理函数里面写一个形参,系统会自动的传进来一个事件对象。 事件冒泡 结构上(非视觉上)嵌套父子关系的元素,会存在事件冒泡的功能。即。同一时间,由子元素冒泡向父元素(自下而上)。 ...原创 2018-02-26 23:01:17 · 559 阅读 · 0 评论 -
JavaScript之克隆
在JavaScript如何把一个对象的属性和方法完完整整的搬过来到另一个空对象身上,对于继承的使用方法不能完成上述操作,所以我们开始另一种方法----克隆。克隆分为:浅层克隆和深度克隆。浅层克隆 var obj = {name : "wang",age : 20,say : [1,2,3],family : {name :"zhou",baobao : {name : "...原创 2018-02-12 21:58:37 · 340 阅读 · 0 评论