JavaScript 专题之惰性函数
JavaScript 专题系列第十五篇,讲解惰性函数 需求 我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意是首次。 解决一:普通方法 var t; function foo() { if (t) return t; t = new Date()…
给程序员看的Javascript攻略 - Prototype (上)
原文发表在: holmeshe.me , 本文是汉化重制版。本系列在 Medium和掘金上同步连载。还记得早先用ajax胡乱做项目的时候踩过好多坑,然后对JS留下了“非常诡异”的印象。最近换了一个工作,工作语言就是JS。然后发现这个语言真不得了,前面后面都能干,基本成了全栈的同义…
有关placeholder在ie9中的一点折腾
placeholder属性给予了用户很友好的提示,但是在老版本的浏览器中就不会起作用(Internet Explorer 9 及之前的版本不支持 placeholder 属性),这是一个很头疼的问题,于是就产生了一些思考。
原生JS实现最简单的图片懒加载
试一下自己撸一个图片懒加载... 懒加载其实就是延迟加载,是一种对网页性能优化的方式,比如当访问一个页面的时候,优先显示可视区域的图片而不一次性加载所有图片,当需要显示的时候再发送图片请求,避免打开网页时加载过多资源。 当页面中需要一次性载入很多图片的时候,往往都是需要用懒加载…
翻译 | 像 JavaScript 一样思考
「几天前我在一个专题讨论会讲 JavaScript,午饭时候一个学员跑来向我请教一个 JS 难题,而它确实把我给难住了。他保证说这个问题是偶然间遇到的,而我对此表示怀疑,因为这极有可能是一道有意而为之的烧脑题。」
渲染树构建、布局及绘制 | Web | Google Developers
面试经常问,你还不看看?
JavaScript工作机制:第1部分
JavaScript工作机制:第1部分
我了解到的JavaScript异步编程
一、 一道面试题 前段时间面试,考察比较多的是js异步编程方面的相关知识点,如今,正好轮到自己分享技术,所以想把js异步编程学习下,做个总结。 下面这个demo 概括了大多数面试过程中遇到的问题: for(var i = 0; i < 3; i++) { setTimeout(f…
浏览器兼容性问题解决方案 · 总结
普及:浏览器的兼容性问题,往往是个别浏览器(没错,就是那个与众不同的浏览器)对于一些标准的定义不一致导致的。俗话说:没有IE就没有伤害。 贴士:内容都是自己总结的,不免会出现错误或者bug,欢迎更正和补充,本帖也会不断更新。 Normalize.css 不同浏览器的默认样式存在差…
理解构造函数与原型对象
前言 在Es6之前,由于javascript没有对类的支持,也就是说它并不具备如传统后台语言(比如java)拥有类的功能,所谓类就是用来描述事物中的属性和行为的,类的特征是由成员组成的,而属性对应的就是类中的成员变量,而方法对应的就是类中的成员方法,这是传统oop语言的描述,然…
关于函数式编程的思考(2)
作者:李英杰,美团金融前端团队成员。欢迎大家一起来探讨FP 题外话:只是单纯地谈谈个人对函数式编程的理解,欢迎大家来一起探讨。也不会提及高阶函数与范畴学的内容,只聊一些很入门的问题。函数式编程的优点这里也不做过多说明,会推荐大家看几篇文章,里面有很好的阐述。 斜体灰字部分是一些…
JavaScript 中的执行上下文和调用栈是什么?
在这篇文章里,我会深入地探讨 JavaScript 中最基本概念之一,那就是执行上下文。通过这篇文章,你应该能够清楚地了解到 JS 解释器究竟在干嘛,为什么可以在一些函数和变量声明之前就能使用,以及它们的值是怎样被决定的。
JS开发中的一些小技巧和方法
在JavaScript开发中有一些有意思的小技巧和方法,本文记录了一些我工作中遇到的一些技巧和方法。
给程序员看的Javascript攻略(完结)- 异步
原文发表在: holmeshe.me , 本文是汉化重制版。 本系列在 Medium上同步连载。 简单来讲,异步有两层含义,1)让慢操作不要阻塞;2)非线性触发事件。稍稍讲深一点,在操作系统里,事件也叫中断,这里一次中断可以代表一个网络收包,一次时钟,或者一次鼠标点击,等。那从…
带你理解 JS 容易出错的坑和细节
当执行 JS 代码时,会生成执行环境,只要代码不是写在函数中的,就是在全局执行环境中,函数中的代码会产生函数执行环境,只此两种执行环境。 想必以上的输出大家肯定都已经明白了,这是因为函数和变量提升的原因。通常提升的解释是说将声明的代码移动到了顶部,这其实没有什么错误,便于大家理…
原生JS+Canvas实现五子棋游戏
一、功能模块 先看下现在做完的效果: 效果图 线上体验:https://wj704.github.io/five_...:1.人机对战功能2.悔棋功能3.撤销悔棋功能 二、代码详解 2.1 人机对战功能实现 从效果图可以看到,棋盘的横竖可以放的位置为1…
10 个 JavaScript 难点
能够读懂这篇博客的 JavaScript 开发者,运气不会太差...
当你在浏览器中输入 baidu.com 并且按下回车后发生了什么?
点进来你会发现新世界。
翻译连载 | JavaScript轻量级函数式编程-第7章: 闭包vs对象 |《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTML 最坚实的梁柱;分享,是 CSS 里最闪耀的一瞥;总结,是 JavaScript 中最严…
利用 javascript 实现富文本编辑器
不打算考虑兼容性,所以没有必要采用UEditor这么重的插件。为此决定自研一个富文本编辑器。本文,主要介绍如何实现富文本编辑器,和解决一些不同浏览器和设备之间的bug。
JavaScript的记忆函数真的可以提升性能吗?
进入测试阶段 ~~~ (利用console.time 和 console.Endtime)看看执行时间.....
js两个变量互换值,你了解多少
这个问题看似很基础,但是有很多的实现方式,你知道的有多少呢,网上也有很多的方法,下面就来总结一下 中间变量(临时变量) 使用加减(针对数字) 对象和数组 万能法(运用运算符优先级) ES6的解构赋值 什么是解构赋值?
解构赋值允许你使用类似数组或对象字面量的语法将数组和对象的属…
响应式开发心得
什么是响应式?响应式的页面在不同的屏幕有不同的布局,换句话说,使用相同的html在不同的分辨率有不同的排版。如下图所示: 响应式布局是为了解决适配的问题,传统的开发方式是PC端开发一套,手机端再开发一套,而使用响应式布局只要开发一套就好了。因为它是用的同样html,所以它的JS…
探测浏览器对 video 和 audio 格式 的兼容性
对 video 除了基本的 api 的了解,还需要做好对应的兼容性。Chrome 最早在 11年开始了对于 video 的支持,不同的浏览器当时对于格式支持也是不同...
阿里校招前端笔试题小结
阿里前端笔试题,题目不多,难度也不大,我只记录了两道稍微有点难度的编程题。题目如下: 1.JSON.stringify 的功能是,将一个 JavaScript 字面量对象转化为一个 JSON 格式的字符串。例如 当要转化的对象有“环”存在时(子节点属性赋值了父节点的引用),为了…
关于函数式编程的思考(1)
作者:李英杰,美团金融前端团队成员。欢迎大家一起来探讨FP 题外话:只是单纯地谈谈个人对函数式编程的理解,欢迎大家来一起探讨。也不会提及高阶函数与范畴学的内容,只聊一些很入门的问题。函数式编程的优点这里也不做过多说明,会推荐大家看几篇文章,里面有很好的阐述。 斜体灰字部分是一些…
JavaScript 字符串转数字:陷阱(示例)
有很多种方式可以将字符串转为数字。我能想到的方式就至少有5种!
该使用哪种方式?什么时候?为什么?这得分析每一种方式和使用它们时常见的陷阱。
根据 JsPerf.com 上的 benchmarks 一组测试表明,大多数浏览器都对 ParseInt 做过优化。虽然它可能是最快的一…
翻译连载 | JavaScript 轻量级函数式编程-第2章:函数基础 |《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson - 《You-Dont-Know-JS》作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTML 最坚实的梁柱;分享,是 CSS 里最闪耀的一瞥;总结,是 JavaScript 中…
【 js 基础 】 setTimeout(fn, 0) 的作用
1、浏览器的内核是多线程的,它们在内核控制下相互配合以保持同步,一个浏览器通常由以下常驻线程组成:GUI 渲染线程,javascript 引擎线程,浏览器事件触发线程,定时触发器线程,异步 http 请求线程。 GUI 渲染线程:负责渲染浏览器界面 HTML 元素,当界面需要重…
JavaScript 运算符规则与隐式类型转换详解
JavaScript 运算符规则与隐式类型转换详解 从属于笔者的现代 JavaScript 开发:语法基础与工程实践系列文章,主要探讨 JavaScript 中令人迷惑的加减乘除与比较等常见运算中的规则与隐式类型转换;本文中涉及的参考资料全部声明在了JavaScript 数据结…
理解 JavaScript 中的作用域
作用域是 中的一个重要而又模糊的概念。只有正确使用 作用域,才能使用优秀的设计模式,帮助你规避副作用。本文中,我们将会详细分析 的不同类型的作用域,以及为了写出更好的代码,介绍它们是如何工作的。
作用域的简单定义是编译器需要变量和函数时去查找它们的地方。听起来很容易对吗?我们来…
翻译 | 摆脱浏览器限制的JavaScript
技术世界在发展,JavaScript也在同步发展。JavaScript在软件世界建起地盘的头几年,它从没想过涉足服务应用程序、移动端应用程序以及机器人之类业务。今天…
JavaScript专题之函数组合
JavaScript 专题系列第十六篇,讲解函数组合,并且使用柯里化和函数组合实现 pointfree 模式 需求 我们需要写一个函数,输入 'kevin',返回 'HELLO, KEVIN'。 尝试 var toUpperCase = function(x) { return…