随笔分类 -  javascript

javascript 基础学习
摘要:函数对象和其他内部对象的关系 除了函数对象,还有很多内部对象,比如:Object、Array、Date、RegExp、Math、Error。这些名称实际上表示一个 类型,可以通过new操作符返回一个对象。然而函数对象和其他对象不同,当用typeof得到一个函数对象的类型时,它仍然会返回字符串 “fu 阅读全文
posted @ 2018-08-20 11:40 自然有道 阅读(1644) 评论(0) 推荐(1)
摘要:一、什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人"。 还有一个对象,叫做"医生"。 请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一个"中国医生"的对象? 这里要注意,这两个对象都是普通对象,不是构造函数,无法使用构造函数方法实现"继承"。 二、object() 阅读全文
posted @ 2018-08-17 16:30 自然有道 阅读(259) 评论(0) 推荐(0)
摘要:今天要介绍的是,对象之间的"继承"的五种方法。 比如,现在有一个"动物"对象的构造函数。 还有一个"猫"对象的构造函数。 怎样才能使"猫"继承"动物"呢? 一、 构造函数绑定 第一种方法也是最简单的方法,使用call或apply方法,将父对象的构造函数绑定在子对象上,即在子对象构造函数中加一行: 二 阅读全文
posted @ 2018-08-17 16:18 自然有道 阅读(136) 评论(0) 推荐(0)
摘要:Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。 那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成 阅读全文
posted @ 2018-08-17 15:13 自然有道 阅读(127) 评论(0) 推荐(0)
摘要:我一直很难理解Javascript语言的继承机制。 它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承。 一、从古代说起 要理解Javascript的设计思想,必须从它的诞生说起 阅读全文
posted @ 2018-08-17 14:42 自然有道 阅读(144) 评论(0) 推荐(0)
摘要:(一)原型链 ECMAScript中将原型链作为实现继承的主要方法。其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。(不理解原型链的童鞋们可以翻阅一下我之前的博客,里面有详细的说明) 实现原型链的一种基本模式 上面的例子中,instance指向SubType的原型,SubType的 阅读全文
posted @ 2018-08-17 14:23 自然有道 阅读(111) 评论(0) 推荐(0)
摘要:JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。如果你熟悉Java或C#,很好,你一定明白面向对象的两个基本概念: 类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学生类型,但不表示任何具体的某个学生; 实 阅读全文
posted @ 2018-08-16 18:26 自然有道 阅读(180) 评论(0) 推荐(0)
摘要:1、什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。 闭包的特点: 1. 作为一个函数变量的一个引用,当函数返回时,其处于激活状态。 2. 一个闭包就是当一个函数返回时,一个没有释放资源的栈区。 简单的说,Ja 阅读全文
posted @ 2018-08-16 17:25 自然有道 阅读(111) 评论(0) 推荐(0)
摘要:函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 我们来实现一个对Array的求和。通常情况下,求和的函数是这样定义的: 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数! 当我们调用lazy_sum()时, 阅读全文
posted @ 2018-08-16 11:05 自然有道 阅读(191) 评论(0) 推荐(0)
摘要:高阶函数 高阶函数英文叫Higher-order function。那么什么是高阶函数? JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 一个最简单的高阶函数 当我们调用add(-5, 6 阅读全文
posted @ 2018-08-16 10:43 自然有道 阅读(195) 评论(0) 推荐(0)
摘要:JavaScript 函数有 4 种调用方式。每种方式的不同在于 this 的初始化。 this 关键字 一般而言,在Javascript中,this指向函数执行时的当前对象。 注意 this 是保留关键字,你不能修改 this 的值。 以上函数不属于任何对象。但是在 JavaScript 中它始终 阅读全文
posted @ 2018-08-15 15:09 自然有道 阅读(145) 评论(0) 推荐(0)
摘要:JavaScript 函数参数 JavaScript 函数对参数的值没有进行任何的检查。 函数显式参数(Parameters)与隐式参数(Arguments) 函数显式参数在函数定义时列出。 函数隐式参数在函数调用时传递给函数真正的值。 参数规则 JavaScript 函数定义时显式参数没有指定数据 阅读全文
posted @ 2018-08-15 15:06 自然有道 阅读(171) 评论(0) 推荐(0)
摘要:函数定义 JavaScript 使用关键字 function 定义函数。函数可以通过声明定义,也可以是一个表达式。 函数声明 函数声明后不会立即执行,会在我们需要的时候调用到。 分号是用来分隔可执行JavaScript语句。 由于函数声明不是一个可执行语句,所以不以分号结束。 函数表达式 JavaS 阅读全文
posted @ 2018-08-15 14:51 自然有道 阅读(164) 评论(0) 推荐(0)
摘要:在执行JavaScript代码的时候,有些情况下会发生错误。 错误分两种,一种是程序写的逻辑不对,导致代码执行异常。例如: 对于这种错误,要修复程序。 一种是执行过程中,程序可能遇到无法预测的异常情况而报错,例如,网络连接中断,读取不存在的文件,没有操作权限等。 对于这种错误,我们需要处理它,并可能 阅读全文
posted @ 2018-08-15 11:22 自然有道 阅读(106) 评论(0) 推荐(0)
摘要:比较和逻辑运算符用于测试 true 或者 false。 比较运算符 比较运算符在逻辑语句中使用,以测定变量或值是否相等。 实际上,JavaScript允许对任意数据类型做比较: 要特别注意相等运算符==。JavaScript在设计时,有两种比较运算符: 第一种是==比较,它会自动转换数据类型再比较, 阅读全文
posted @ 2018-08-15 11:10 自然有道 阅读(142) 评论(0) 推荐(0)
摘要:JavaScript 运算符 运算符 = 用于给 JavaScript 变量赋值。 算术运算符 + 用于把值加起来。 指定变量值,并将值相加: JavaScript 算术运算符 y=5,下面的表格解释了这些算术运算符: JavaScript 赋值运算符 赋值运算符用于给 JavaScript 变量赋 阅读全文
posted @ 2018-08-15 10:47 自然有道 阅读(164) 评论(0) 推荐(0)
摘要:JavaScript 类型转换 Number() 转换为数字, String() 转换为字符串, Boolean() 转化为布尔值。 JavaScript 数据类型 在 JavaScript 中有 5 种不同的数据类型: string number boolean object function 3 阅读全文
posted @ 2018-08-14 18:06 自然有道 阅读(480) 评论(0) 推荐(0)
摘要:JavaScript 严格模式(use strict) JavaScript 严格模式(strict mode)即在严格的条件下运行。 使用 "use strict" 指令 "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。 它不是一条语句,但是 阅读全文
posted @ 2018-08-14 17:06 自然有道 阅读(109) 评论(0) 推荐(0)
摘要:JavaScript 变量提升 JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部: JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。 虽然是strict模式,但语句var x = 'Hello, ' + y;并不报错, 阅读全文
posted @ 2018-08-14 16:43 自然有道 阅读(100) 评论(0) 推荐(0)
摘要:变量作用域 在JavaScript中,用var申明的变量实际上是有作用域的。 如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量: 如果两个不同的函数各自申明了同一个变量,那么该变量只在各自的函数体内起作用。换句话说,不同函数内部的同名变量互相独立,互不影响: 由于 阅读全文
posted @ 2018-08-14 16:32 自然有道 阅读(193) 评论(0) 推荐(0)