JavaScript 基础知识
文章平均质量分 51
。
fanhaozhi
这个作者很懒,什么都没留下…
展开
-
JavaScript 的 原型链
首先要明确的是,JavaScript 是面向对象的语言,但与 Java 、 C# 等语言有别,没有类的概念,而是基于原型链 (即使是ES6的"class"也是基于原型链的一种语法糖)。 理解原型对象 只要创建一个新函数,系统默认为其创建一个 prototype 属性,指向函数的原型对象。默认情况下,所有原型对象都自动获得一个 constructor 属性,指向prototype 属性所在...原创 2019-03-03 23:03:13 · 158 阅读 · 0 评论 -
JavaScript 的 this 指向
this 的定义 this 是一个指针,指向的是函数执行的环境对象。 用几个例子说明 this 的指向 普通函数内的 this 指向执行环境对象,例子中的执行环境是 window var a = 'window' function fn(){ let a = 'fn' return this.a } fn(); // 'window' 构造函数创建的对象的函数...原创 2019-03-03 17:09:37 · 120 阅读 · 0 评论 -
JavaScript 的 闭包
词法作用域: 首先我们看一个最简单的例子: var x = 100; function fn(){ console.log(x); } fn(); // 100 毫无疑问,"fn()" 函数是可以访问到外部定义的变量 "x"。函数被创建时,都会创建其"作用域"。"fn" 函数被创建,其作用域内未声明变量 "x" ,只能到上一级的作用域(这里是全局作用域)找,这里的 "x" 称之...原创 2019-02-17 22:59:11 · 149 阅读 · 0 评论 -
JavaScript 函数内的 arguments 对象
描述: arguments 是一个对应于传递给函数的参数的类数组对象。不是数组,但可以转化成数组。函数内部必定存在的一个对象。 function fn () { console.log(arguments); } fn('a', 'b', '', 'd'); // Arguments(4)["a", "b", "", "d", callee: ƒ, Symbol(Symbol.ite...原创 2019-01-06 21:29:28 · 177 阅读 · 0 评论 -
JavaScript 的 Symbol 类型
它是JavaScript的第七种原始类型: 有别于6种原始类型: Undefined(未定义)、Null(空值)Boolean、(布尔类型)、Number(数字类型)、String(字符串类型)、Object(对象类型) ES6新特性中的symbol也是值,但它不是字符串,也不是对象,而是是全新的——第七种类型的原始值。 常见的用途: symbol是程序创建并且可以用作属性键的值,并且...原创 2018-12-15 15:17:44 · 241 阅读 · 0 评论 -
JavaScript 的 RegExp 速查
创建 正则对象: // 以下三种方法均可以 const regex = /^[a-zA-Z]+[0-9]*\W?_$/gi; let regex2 = new RegExp(/^[a-zA-Z]+[0-9]*\W?_$/, "gi"); let regex3 = new RegExp("^[a-zA-Z]+[0-9]*\\W?_$", "gi"); 正则表达式中的特殊字符: 修饰符 ...原创 2018-12-11 22:49:20 · 149 阅读 · 0 评论 -
JavaScript 的 Object 类型
简单创建: // 构造函数体内的"this"将指向 实例对象 function Box(x, y){ this.x = x; this.y = y; }; var box1 = new Box(4, 5); // {x:4,y:5} // 使用JS内置构造函数创建对应对象,如Object/Array/Function/RegExp/String var obj = new Obj...原创 2018-12-06 22:44:39 · 169 阅读 · 0 评论 -
JavaScript 中 && 和 || 的返回值
&& 若两边的值都能转化成"true",则返回右边的值;若其中一个能转化成false的值,则返回false。 // 右边优先级高(其中一边false得到false) console.log(false && 1); // false console.log(false && false); // false console.log(...原创 2018-11-23 14:22:43 · 403 阅读 · 0 评论 -
ES6中的迭代器(Iterator)和生成器(Generator)及关键字yield
迭代器(Iterator): 迭代器是一种特殊对象,它具有一些专门为迭代过程设计的专有接口,所有的迭代器对象都有一个next()方法,每次调用都返回一个结果对象。结果对象有两个属性:一个是value,表示下一个将要返回的值;另一个是done,它是一个布尔类型的值,当没有更多可返回数据时返回true。迭代器还会保存一个内部指针,用来指向当前集合中值的位置,每调用一次next()方法,都会返回...原创 2018-11-18 22:27:31 · 355 阅读 · 0 评论 -
JavaScript 的 Promise、async/await
Promise 创建一个简单的promise对象: // 创建并执行Promise,传入匿名函数 new Promise( (resolve, reject) => { let timeOut = Math.random() * 2; log('set timeout to: ' + timeOut + ' seconds.'); // 1秒后执行判断,小于1输出'成功',...原创 2018-11-18 17:26:53 · 356 阅读 · 0 评论 -
JavaScript 的 "export"和"import"
抛出具名模块: // people.js export const people1 = { name: 'zhangsan', age: 30 } // 也以可以先定义后export const people2 = { name: 'lisi', age: 60 } export people2 // 导出其他类型数据的格式亦然 抛出匿名模块: // people_def...原创 2018-11-08 20:26:21 · 428 阅读 · 0 评论