JavaScript必知必会
文章平均质量分 89
分享实际应用场景中常用的JavaScript技巧。
响尾大菜鸟
这个作者很懒,什么都没留下…
展开
-
详解JavaScript对象深拷贝
详解JavaScript对象深拷贝在几乎所有编程语言中,对象都以引用形式保存给变量、复制给其他变量。JavaScript语言也是如此。因此简单的进行赋值操作进行复制仅仅是对对象数据的引用地址进行一个传递,并不会将对象内部的所有属性进行一个完整的复制。也就是说,当修改其中一个对象,另一个变量也会发生改变,因为他们本质上指向了同一个对象引用。let obj={ a:1};let cop...原创 2019-04-04 13:09:25 · 2397 阅读 · 0 评论 -
关于script标签,我们应该知道的
一、静态标签1、<script>标签按照它们出现的顺序被执行,不管是script代码块还是script外链,都遵循先出现先执行的原则。这意味着如果你的网站有很慢的脚本在页面较前部分被加载,你的网页加载就会被显著拖慢。这也意味着后加载的脚本可以依赖先加载的脚本;2、页面元素在它之前的所有脚本都加载完毕之前是不会执行渲染的,由此大段script代码可以引起页面加载卡顿;3、当一个 &...原创 2019-02-26 10:22:10 · 1803 阅读 · 0 评论 -
理解前端数据双向绑定原理——Object.defineProperty()
理解前端数据双向绑定原理——Object.defineProperty()Object.definedProperty方法可以在一个对象上直接定义一个新的属性、或修改一个对象已经存在的属性,最终返回这个对象。语法Object.defineProperty(obj, prop, descriptor)参数:obj 被定义或修改属性的对象;prop 要定义或修改的属性名称;descriptor 对翻译 2017-09-15 16:28:48 · 14256 阅读 · 0 评论 -
贝赛尔曲线及其应用全面解析
贝赛尔曲线及其应用全面解析1.概念贝塞尔曲线(Bezier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,一条贝塞尔曲线由路径点和控制点确定,控制点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。贝塞尔曲线是计算机图形学中相当重要的参数曲线,在一些比较成熟的位图软件中也有贝塞尔曲线工具,如原创 2017-03-23 11:44:49 · 7405 阅读 · 1 评论 -
详解JavaScript异步编程技术
详解JavaScript异步编程技术基于浏览器的事件轮询机制(以及Node.js中的事件轮询机制),JavaScript常常会运行在异步环境中。由于JavaScript本身语言的特性(不需要程序员操控线程/进程),在js中解决异步化编程的方法就显得相当重要。可以说一个完整的项目中,js开发人员是不可能不面对异步操作的。本文将详细介绍几种经典JavaScript异步编程串行化方法,同时也将简单介绍一下原创 2017-02-08 17:30:12 · 4366 阅读 · 6 评论 -
JavaScript打破作用域的牢笼
JavaScript打破作用域的牢笼JavaScript作为一种松散型语言,有着很多令人瞠目结舌的特性(往往是一些令人捉摸不透的奇怪特性),本文我们将介绍如何使用JavaScript的一些特性来打破常规编程语言“作用域的牢笼”。1.JavaScript声明提升很多人应该知道,js有变量声明提升、函数声明提升的特性。不管你之前是否了解,看下面的代码运行的结果是否符合你的预期:va原创 2017-01-25 11:20:57 · 554 阅读 · 0 评论 -
详解JavaScript函数柯里化
详解JavaScript函数柯里化百度百科对柯里化的解释:在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。这个技术由 Christopher Strachey 以逻辑学家 Haskell Curry 命名的,尽管它是 Moses Schnfinkel 和 Gottlob Frege原创 2017-02-05 17:38:00 · 5341 阅读 · 0 评论 -
详解JavaScript函数节流
详解JavaScript函数节流浏览器一个网页的UI线程只有一个,他同时会处理界面的渲染和页面JavaScript代码的执行(简单扩展一下,浏览器或者JavaScript运行大环境并不是单线程,诸如ajax异步回调、hybrid框架内与native通信、事件队列、CSS运行线程等等都属于多线程环境,不过ES6引入了Promise类来减少了部分异步情况)。因此当JavaScript代码运行计算量...原创 2016-12-12 10:52:53 · 955 阅读 · 0 评论 -
详解JavaScript操作URL的方法(单页应用常用)
详解JavaScript操作URL的方法(单页应用常用)JavaScript拥有许多可以操作浏览器历史记录的方法,不管是普通页面跳转,还是单页应用哈希值变化,我们都会经常与这些方法打交道,尤其在单页应用中这些方法几乎是页面路由的核心方法。本文将详细讨论这些方法。1.document.locationlocation是最有用的BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功原创 2017-02-05 17:34:30 · 5704 阅读 · 0 评论 -
详解JavaScript继承
在正式讨论js继承之前,先说说自己的工作体会。不像后端,对于大多数商业应用场景,对前端的要求往往会导致代码难以上溯(指难以抽象,难以写一遍代码在好几个场景都适用)。说个我熟悉的应用场景:比如一个信用评级模块,一个页面用一个折线图显示用户最近的消费水平,另一个页面用一个折线图展示用户的信用评级水平。看似很相似的需求吧?拿到java里肯定抽象出一个“折线图接口“了吧,但是在js里就很难统一。首先,这两原创 2016-12-09 20:42:01 · 521 阅读 · 0 评论 -
详解移动端页面细线实现方案
详解移动端页面细线实现方案特别提醒,本文写于2017-1-2,下面案例中出现的各大网站的实现方式随时有可能变化。先说下本文要做什么:解析一些主流的移动端H5虚线方案。见下图:很多注重用户体验的移动端web设计都会使用细线,在PC端也就是简单的一句:border-bottom:1px solid#e0e0e0;在PC端web上只要简单的使用border-bottom属性...原创 2017-01-02 10:36:51 · 7864 阅读 · 0 评论 -
HTML5-canvas绘图黑屏白屏解决方案(详解双缓冲绘图机制)
HTML5-canvas绘图黑屏白屏解决方案(详解双缓冲绘图机制)使用canvas绘图的前端工程师可能都会遇到过canvas绘图黑屏、白屏的问题。以前写过一篇文章描述过hybrid下canvas黑屏的一种可能性:http://blog.csdn.net/yuhk231/article/details/53560782那么如果我们面对的场景就是移动端各大浏览器呢?当出现黑屏、白屏的时候就...原创 2017-01-12 11:11:26 · 15737 阅读 · 3 评论