为何写作此课程 stone 主要负责基于 Web 的企业内部管理系统的开发,虽然能够熟练地使用 JavaScript,但随着对 JavaScript 的理解越来越深,才发现自己尚未掌握其精髓. 2015年,公司请来 大胡子姜志辉 为我们培训 JS Dota 课程,让我对 JavaScript 有了全新的认识,他一步步引导我们手写 jQuery.Backbone 等 JavaScript 主流框架,更是激发了我对 JavaScript 浓厚的兴趣. 俗话说「教是最好的学」,我是公司的兼职教员,正好…
<JavaScript闯关记>视频版硬广 stone 在菜航工作时,兼任内部培训讲师,主要负责 JavaScript 基础培训,2016年整理的<JavaScript闯关记>课程在 github 上收获了近 1000 的 star,帮助了很多同学在学习 JavaScript 的道路上由浅入深. 但由于文字的表达力有限,很多技术细节.编码技巧.思维方式无法准确的传递给大家.故跟 极客学院 合作,把<JavaScript闯关记>中部分较难的知识点录制成视频,便于大家更好的理…
表达式 表达式是由数字.运算符.数字分组符号(如括号).自由变量和约束变量等以能求得数值的有意义排列方法所得的组合.JavaScript 表达式主要有以下几种形式: 原始表达式:常量.变量.保留字. 对象.数组初始化表达式:var obj={a:1,b:2};,var arr=[1,2,3];. 函数定义表达式:var fn=function(){}. 属性访问表达式:Math.abs. 调用表达式:alert('hello');. 对象创建表达式:new object();. 运算符 Java…
表达式(expression)是 JavaScript 中的一个短语(phrases),JavaScript 解释器会将其计算(evaluate)出一个结果.程序中的常量.变量名.数组访问等都是表达式 简单表达式组合成复杂表达式最常用的方法就是使用运算符(operator) 原始表达式 是最简单的表达式是「原始表达式」(primary expression).是表达式的 最小单位 ---- 不再包含其他表达式.常量.直接量.关键字.变量都是原始表达式 1.23 "hello" /pat…
1.==和===的区别(!=和!==是相反的比较) 它们采用了同一性的两个不同定义.==是相等性,===是等同性. ①“===”进行两个值的比较 两个值的类型不同,就不相等 两个值是数字,并且值相同,除非其中一个或者两个都是NaN,否则他们是相同的.NaN和NaN也是不同的,判断一个值是否是NaN,可以使用全局函数isNaN(). 两个值是字符串:如果长度不相等就不相同,如果长度相同并且每一个索引的字符也相同就认为两个字符串相同. 两个值是布尔值,同为true或者false就认为相同 两个值是对…
为了便于操作基本类型值,JavaScript 还提供了3个特殊的引用类型:Boolean.Number 和 String.实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据.来看下面的例子. var s1 = "some text"; var s2 = s1.substring(2); 这个例子中的变量 s1 包含一个字符串,字符串当然是基本类型值.而下一行调用了 s1 的 substring() 方法,并将返回的结…
由于本课程的核心是 JavaScript,所以本文着重讲解了「正则表达式」在 JavaScript 中的用法,并未深入「正则表达式」的具体细节.如果您尚不了解「正则表达式」,强烈推荐您先学习 正则表达式30分钟入门教程 http://deerchao.net/tutorials/regex/regex.htm 之后,再进行本课程的学习. 正则表达式(regular expression)是一个描述字符模式的对象,使用正则表达式可以进行强大的模式匹配和文本检索与替换功能.JavaScript 的正…
函数是一段代码,它只定义一次,但可以被执行或调用任意次.在 JavaScript 里,函数即对象,程序可以随意操控它们.比如,可以把函数赋值给变量,或者作为参数传递给其他函数,也可以给它们设置属性,甚至调用它们的方法.如果函数挂载在一个对象上,作为对象的一个属性,就称它为对象的方法.如果函数嵌套在其他函数中定义,这样它们就可以访问它们被定义时所处的作用域中的任何变量. 函数定义 在 JavaScript 中,函数实际上是对象,每个函数都是 Function 构造函数的实例,因此函数名实际上也是一…
数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引. JavaScript 数组是无类型的,数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型.数组的元素甚至也可能是对象或其他数组. JavaScript数组是动态的,根据需要它们会增长或缩减,并且在创建数组时无须声明一个固定的大小或者在数组大小变化时无须重新分配空间. JavaScript 数组可能是稀疏的,数组元素的索引不一定要连续的,它们之间可以有空缺.每个JavaScript数组都…
对象是 JavaScript 的数据类型.它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值,因此我们可以把它看成是从字符串到值的映射.对象是动态的,可以随时新增和删除自有属性.对象除了可以保持自有的属性,还可以从一个称为原型的对象继承属性,这种「原型式继承(prototypal inheritance)」是 JavaScript 的核心特征. 对象最常见的用法是创建(create).设置(set).查找(query).删除(delete).检测(test)和枚举(enumerat…