JavaScript
劼哥stone
阿里云后端开发专家,熟悉云原生及Java核心技术,在分布式、微服务、编排调度场景有较丰富的实战经验,业务上对工业智能制造、影院运营管理、协同办公管理有不错的理解。
展开
-
《JavaScript 闯关记》之变量和数据类型
当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量,值的类型称作数据类型。变量JavaScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于保存值的占位符而已。定义变量时要使用关键字 var 来声明的,如下所示:var message;这行代码定义了一个名为 message 的变量,该变量可以用来保存任何值(像这样未经过初始化的变量,会原创 2016-08-16 23:14:55 · 1369 阅读 · 0 评论 -
《JavaScript 闯关记》之语句
表达式在 JavaScript 中是短语,那么语句就是整句命令。表达式用来计算出一个值,语句用来执行以使某件事发生。从本质上看,语句定义了 JavaScript 中的主要语法,语句通常使用一或多个关键字来完成给定任务。语句可以很简单,例如通知函数退出;也可以比较复杂,例如指定重复执行某个命令的次数。下表列出了 JavaScript 大部分语句的语法和用途: 语句 语法 用途 break原创 2016-08-30 22:39:47 · 1184 阅读 · 0 评论 -
《JavaScript 闯关记》之对象
对象是 JavaScript 的数据类型。它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值,因此我们可以把它看成是从字符串到值的映射。对象是动态的,可以随时新增和删除自有属性。对象除了可以保持自有的属性,还可以从一个称为原型的对象继承属性,这种「原型式继承(prototypal inheritance)」是 JavaScript 的核心特征。对象最常见的用法是创建(create)、设原创 2016-09-07 22:47:11 · 1117 阅读 · 0 评论 -
《JavaScript 闯关记》之表达式和运算符
表达式表达式是由数字、运算符、数字分组符号(如括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。JavaScript 表达式主要有以下几种形式:原始表达式:常量、变量、保留字。对象、数组初始化表达式:var obj={a:1,b:2};,var arr=[1,2,3];。函数定义表达式:var fn=function(){}。属性访问表达式:Math.abs。调用表达式:原创 2016-08-23 21:11:48 · 1377 阅读 · 0 评论 -
《JavaScript 闯关记》
为何写作此课程stone 主要负责基于 Web 的企业内部管理系统的开发,虽然能够熟练地使用 JavaScript,但随着对 JavaScript 的理解越来越深,才发现自己尚未掌握其精髓。2015年,公司请来 大胡子姜志辉 为我们培训 JS Dota 课程,让我对 JavaScript 有了全新的认识,他一步步引导我们手写 jQuery、Backbone 等 JavaScript 主流框架,更是原创 2016-07-24 01:19:25 · 1240 阅读 · 0 评论 -
《JavaScript 闯关记》之数组
数组是值的有序集合。每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。JavaScript 数组是无类型的,数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型。数组的元素甚至也可能是对象或其他数组。JavaScript数组是动态的,根据需要它们会增长或缩减,并且在创建数组时无须声明一个固定的大小或者在数组大小变化时无须重新分配空间。JavaScript 数组可原创 2016-10-07 22:57:32 · 1882 阅读 · 0 评论 -
《JavaScript 闯关记》之 DOM(上)
DOM(文档对象模型)是针对 HTML 和 XML 文档的一个 API。DOM 描绘了一个层次化的节点树,允许开发人员添加、移除和修改页面的某一部分。节点层次DOM 可以将任何 HTML 或 XML 文档描绘成一个由多层节点构成的结构。节点分为几种不同的类型,每种类型分别表示文档中不同的信息及(或)标记。每个节点都拥有各自的特点、数据和方法,另外也与其他节点存在某种关系。节点之间的关系构成了层次,而原创 2016-11-15 23:46:29 · 1695 阅读 · 0 评论 -
《JavaScript 闯关记》之事件
JavaScript 程序采用了异步事件驱动编程模型。在这种程序设计风格下,当文档、浏览器、元素或与之相关的对象发生某些有趣的事情时,Web 浏览器就会产生事件(event)。例如,当 Web 浏览器加载完文档、用户把鼠标指针移到超链接上或敲击键盘时,Web 浏览器都会产生事件。如果 JavaScript 应用程序关注特定类型的事件,那么它可以注册当这类事件发生时要调用的一个或多个函数。请注意,这种原创 2016-11-29 07:17:23 · 1801 阅读 · 2 评论 -
《JavaScript 闯关记》之单体内置对象
ECMA-262 对内置对象的定义是「由 JavaScript 实现提供的、不依赖于宿主环境的对象,这些对象在 JavaScript 程序执行之前就已经存在了」。意思就是说,开发人员不必显式地实例化内置对象,因为它们已经实例化了。前面我们已经介绍了大多数内置对象,例如 Object、Array 和 String。ECMA-262 还定义了两个单体内置对象:Global 和 Math。Global 对原创 2016-11-01 22:21:14 · 1021 阅读 · 0 评论 -
《JavaScript 闯关记》之 DOM(下)
Element 类型除了 Document 类型之外,Element 类型就要算是 Web 编程中最常用的类型了。Element 类型用于表现 XML 或 HTML 元素,提供了对元素标签名、子节点及特性的访问。Element 节点具有以下特征:nodeType 的值为1;nodeName 的值为元素的标签名;nodeValue 的值为 null;parentNode 可能是 Documen原创 2016-11-22 20:15:56 · 1159 阅读 · 0 评论 -
《JavaScript 闯关记》之作用域和闭包
作用域和闭包是 JavaScript 最重要的概念之一,想要进一步学习 JavaScript,就必须理解 JavaScript 作用域和闭包的工作原理。作用域任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在 JavaScript 中,变量的作用域有全局作用域和局部作用域两种。全局作用域(Global Scope)在代码中任何原创 2016-12-13 22:39:04 · 1709 阅读 · 0 评论 -
《JavaScript 闯关记》之垃圾回收和内存管理
JavaScript 具有自动垃圾收集机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。而在 C 和 C++ 之类的语言中,开发人员的一项基本任务就是手工跟踪内存的使用情况,这是造成许多问题的一个根源。在编写 JavaScript 程序时,开发人员不用再关心内存使用问题,所需内存的分配以及无用内存的回收完全实现了自动管理。这种垃圾收集机制的原原创 2016-12-29 20:45:59 · 3022 阅读 · 0 评论 -
《JavaScript 闯关记》之原型及原型链
原型链是一种机制,指的是 JavaScript 每个对象都有一个内置的 __proto__ 属性指向创建它的构造函数的 prototype(原型)属性。原型链的作用是为了实现对象的继承,要理解原型链,需要先从函数对象、constructor、new、prototype、__proto__ 这五个概念入手。函数对象前面讲过,在 JavaScript 里,函数即对象,程序可以随意操控它们。比如,可以把函原创 2016-12-20 23:51:16 · 10330 阅读 · 9 评论 -
《JavaScript 闯关记》之语法
JavaScript 的语法大量借鉴了 C 及其他类 C 语言(如 Java 和 Perl)的语法。因此,熟悉这些语言的开发人员在接受 JavaScript 更加宽松的语法时,一定会有种轻松自在的感觉。本章主要按照 ECMAScript 3 介绍这门语言的基本概念,并就 ECMAScript 5 的变化给出说明。字符集JavaScript 程序是用 Unicode 字符集编写的,Unicode 是原创 2016-08-08 01:42:44 · 1282 阅读 · 2 评论 -
《JavaScript 闯关记》之初探
初探当学习一门新的编程语言的时候,应该边学边做,反复演练以加深理解。因此,你需要一个 JavaScript 解释器。幸运的是,每一个 Web 浏览器都包含一个 JavaScript 解释器。可以通过在 HTML 文件里写一个 <script> 元素来嵌入 JavaScript 代码,当浏览器加载 HTML 文件的时候,它会自动执行这段代码。如果运行的是一小段 JavaScript 代码,则不必每次都原创 2016-07-31 14:28:46 · 670 阅读 · 0 评论 -
《JavaScript 闯关记》之简介
JavaScript 是面向 Web 的编程语言,绝大多数现代网站都使用了 JavaScript,并且所有的现代 Web 浏览器(电脑,手机,平板)均包含了 JavaScript 解释器。 这使得 JavaScript 能够称得上史上使用最广泛的编程语言。 JavaScript 也是前端开发工程师必须掌握的三种技能之一:描述网页内容的 HTML、描述网页样式的 CSS、以及描述网页行为的 JavaS原创 2016-07-24 01:20:31 · 2094 阅读 · 0 评论 -
Javascript俄罗斯方块
前段时间论坛上看到,大牛贴出来的Javascript版俄罗斯方块,实在是佩服之极,恰巧本人也在学习Javascript,所以先看懂了那段代码,然后自己写了一个出来,说真的看懂和能写出来完全是天壤之别,写的时候很多次都实在想不通了,只有回头再看看代码、再想想逻辑,才能接着写下去,最终还是写出来了,不过只是具备基本功能的版本而已,之后准备再出N个版本的方块出来,一步一步完善各种功能,做一个高品质的方块原创 2012-03-24 14:37:54 · 3494 阅读 · 3 评论 -
《Node.js开发指南》MicroBlog项目的问题汇总
最近对Node产生了点兴趣,就看了《Node.js开发指南》一书,按照书中的例子敲完了所有代码。书是好书,非常适合新手学习,但是例子中的代码太旧,造成一些麻烦,以下列出来供大家参考:《Node.js开发指南》MicroBlog项目完整代码下载问题一:安装 ejs 模板的语法有问题,安装不成功,如下:express -t ejs microblog需要改成:e原创 2014-04-02 19:10:58 · 8042 阅读 · 2 评论 -
简单介绍 javascript 中 __proto__ 属性的原理
简单来说,在 javascript 中每个对象都会有一个 __proto__ 属性,当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去 __proto__ 里找这个属性,这个 __proto__ 又会有自己的 __proto__,于是就这样一直找下去,也就是我们平时所说的原型链的概念。原创 2015-04-12 11:29:56 · 7750 阅读 · 2 评论 -
《编写可维护的JavaScript》之编程实践
最近读完《编写可维护的JavaScript》,让我受益匪浅,它指明了编码过程中,需要注意的方方面面,在团队协作中特别有用,可维护性是一个非常大的话题,这本书是一个不错的起点。本书虽短,却五脏俱全,主要涵盖:编程风格(基本格式化、注释、语句和表达式、变量),编程实践(UI层松耦合、避免使用全局变量等)、自动化,3个部分的内容。本文主要整理归纳了书中编程实践章节的核心内容,其他两章编码风格和自动化部分,原创 2016-06-13 07:14:51 · 539 阅读 · 0 评论 -
JavaScript检测原始值、引用值、属性
上周写过一篇读书笔记《编写可维护的JavaScript》之编程实践,其中 第8章 避免『空比较』是博主在工作中遇坑较多的雷区,所以特意把此章节的内容重新整理分享,希望大家不再坑队友(>﹏<)。内容较多分了3篇文章讲解,传送门如下:JavaScript检测原始值(一)JavaScript检测引用值(二)JavaScript检测属性(三)检测属性另外一种用到null(以及undefined)的场原创 2016-06-20 01:19:00 · 641 阅读 · 0 评论 -
tab.js分享及浏览器兼容性问题汇总
在 样式布局分享-基于frozen.js的移动OA 文章中,用了到第三方组件 tab.js(带菜单的横屏滑动插件),其兼容性很差,进行优化后,已兼容全平台(且支持IE6+)。tab.js 百度网盘 下载地址tab.js GitHub Clone 地址 一直听说过IE6~IE9浏览器的兼容性问题是深坑,这次终于有所体会,就本次优化tab.js而言,如果不对IE6~IE9进行兼容,工作量可以减少一原创 2016-05-31 23:48:09 · 1834 阅读 · 0 评论 -
JavaScript检测之basevalidate.js
上篇文章「JavaScript检测原始值、引用值、属性」中涉及了大量有用的代码范例,为了让大家更方便的使用这些代码,博主特意把这些代码重新整理并托管到 GitHub,项目地址是:https://github.com/stone0090/base-validate,如果 basevalidate.js 对您有帮助,请帮忙在 GitHub 上 Star 该项目,谢谢大家。basevalidate.js原创 2016-06-25 20:03:16 · 795 阅读 · 0 评论 -
「前端开发者」如何把握住「微信小程序」这波红利?
由于前两周一直在老家处理重要事情,虽然朋友圈被「微信小程序」刷爆了,但并没有时间深入了解。昨天回广州之后,第一件事情就是把「微信小程序」相关的文章、开发文档、设计规范全部看了一遍,基本上明白了「微信小程序」是怎么回事,我关注的公众号都很看好「微信小程序」的前景。作为一个「前端开发者」,确实觉得「微信小程序」是个不错的机会,但从哪个方向投入到这股的热潮中呢?咨询了好几位公众号的作者,得到了以下回复:原创 2016-09-27 10:15:31 · 1676 阅读 · 0 评论 -
《JavaScript 闯关记》之函数
函数是一段代码,它只定义一次,但可以被执行或调用任意次。在 JavaScript 里,函数即对象,程序可以随意操控它们。比如,可以把函数赋值给变量,或者作为参数传递给其他函数,也可以给它们设置属性,甚至调用它们的方法。如果函数挂载在一个对象上,作为对象的一个属性,就称它为对象的方法。如果函数嵌套在其他函数中定义,这样它们就可以访问它们被定义时所处的作用域中的任何变量。函数定义在 JavaScript原创 2016-10-12 21:40:44 · 1027 阅读 · 0 评论 -
《JavaScript 闯关记》之基本包装类型
为了便于操作基本类型值,JavaScript 还提供了3个特殊的引用类型:Boolean、Number 和 String。实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。来看下面的例子。var s1 = "some text";var s2 = s1.substring(2);这个例子中的变量 s1 包含一个字符串,字符串当原创 2016-10-26 22:47:49 · 1602 阅读 · 0 评论 -
《JavaScript 闯关记》之 BOM
ECMAScript 是 JavaScript 的核心,但如果要在 Web 中使用 JavaScript,那么 BOM(浏览器对象模型)则无疑才是真正的核心。BOM 提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。多年来,缺少事实上的规范导致 BOM 有很多问题,因为浏览器提供商会按照各自的想法随意去扩展它。W3C 为了把浏览器中 JavaScript 最基本的部分标准化,已经将原创 2016-11-07 21:55:38 · 1685 阅读 · 0 评论 -
被「李笑来老师」拉黑之「JavaScript微博自动转发的脚本」
故事的背景如下图,李笑来 老师于10月19日在 知乎Live 开设 一小时建立终生受用的阅读操作系统 的讲座,他老人家看到大家伙报名踊跃,便在微博上发起了一个 猜数量赢取iPhone7 的活动。因为该活动注明了「不限猜的次数」,我便用 JavaScript 写一个自动转发的脚本,用机器代替手工转发,结果转发不到200次就被 李笑来 老师拉黑了,实在扫兴。与其独自郁闷,不如把技术细节分享给大家,祝大家原创 2016-10-02 15:52:38 · 5400 阅读 · 1 评论 -
《JavaScript 闯关记》之正则表达式
由于本课程的核心是 JavaScript,所以本文着重讲解了「正则表达式」在 JavaScript 中的用法,并未深入「正则表达式」的具体细节。如果您尚不了解「正则表达式」,强烈推荐您先学习 正则表达式30分钟入门教程 http://deerchao.net/tutorials/regex/regex.htm 之后,再进行本课程的学习。正则表达式(regular expression)是一个描述字原创 2016-10-17 22:34:30 · 1412 阅读 · 0 评论 -
《JavaScript闯关记》视频版硬广
stone 在菜航工作时,兼任内部培训讲师,主要负责 JavaScript 基础培训,2016年整理的《JavaScript闯关记》课程在 github 上收获了近 1000 的 star,帮助了很多同学在学习 JavaScript 的道路上由浅入深。但由于文字的表达力有限,很多技术细节、编码技巧、思维方式无法准确的传递给大家。故跟 极客学院 合作,把《JavaScript闯关记》中部分较难的知识点原创 2017-09-24 20:04:14 · 726 阅读 · 0 评论