随笔分类 -  JS / ES / TS

JavaScript / ECMAScript / TypeScript
摘要:一、函数参数的默认值 1、基本用法 ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。 function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China' 阅读全文
posted @ 2019-07-16 22:24 Leophen 阅读(203) 评论(0) 推荐(0)
摘要:一、新增二进制和八进制的表示 ES6 提供了二进制和八进制数值的新写法,分别用前缀 0b/0B 和 0o/0O表示。 0b111110111 503 // true 0o767 503 // true 二、新增 Number.isFinite() 和 Number.isNaN() 与传统的全局方法  阅读全文
posted @ 2019-07-16 17:45 Leophen 阅读(186) 评论(0) 推荐(0)
摘要:一、新增 flags 属性 ES6 为正则表达式新增了 flags 属性,会返回正则表达式的修饰符 1、ES5 的 source 属性 返回正则表达式的正文 /abc/ig.source // "abc" 2、ES6 的 flags 属性 返回正则表达式的修饰符 /abc/ig.flags // ' 阅读全文
posted @ 2019-07-14 16:42 Leophen 阅读(248) 评论(0) 推荐(0)
摘要:一、ES6 模板字符串 传统的 JavaScript 输出模板通常是这样写的: let firstName = 'Will'; let lastName = 'Smith'; let name = 'My firstName is:' + firstName + ',my lastName is:' 阅读全文
posted @ 2019-07-13 22:33 Leophen 阅读(211) 评论(1) 推荐(0)
摘要:解构赋值是对赋值运算符的扩展,可以将属性/值从对象/数组中取出,赋值给其他变量 一、数组的解构赋值 1、基本用法 只要等号两边的模式相同,左边的变量就会被赋予对应的值 let [a, [[b], c]] = [1, [[2], 3]]; a // 1 b // 2 c // 3 let [a, , 阅读全文
posted @ 2019-07-13 01:06 Leophen 阅读(1597) 评论(1) 推荐(0)
摘要:一、let 1、基本用法 ES6 新增了let命令,用来声明变量。 let 的用法类似于 var,但所声明的变量只在 let 命令所在的代码块内有效(一个“{}”相当于一个代码块) { let a = 123; var b = 123; } a // ReferenceError: a is not 阅读全文
posted @ 2019-07-11 22:30 Leophen 阅读(1062) 评论(0) 推荐(1)
摘要:正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式,是用于匹配字符串中字符组合的模式。 一、JS 如何创建正则表达式 1、隐式创建 通过直接量定义 var str = 'I love js'; var pattern = /js/; / 阅读全文
posted @ 2019-07-07 12:36 Leophen 阅读(1387) 评论(2) 推荐(1)
摘要:一、什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人"。 var Chinese = { nation:'中国' }; 还有一个对象,叫做"程序员"。 var Programmer ={ career:'程序员' } 要怎样才能让"程序员"去继承"中国人"? 这里两个对象都是普通对象 阅读全文
posted @ 2019-07-05 20:21 Leophen 阅读(461) 评论(0) 推荐(0)
摘要:现在有一个"动物"对象的构造函数。 function Animal(){ this.species = "动物"; } 还有一个"猫"对象的构造函数。 function Cat(name,color){ this.name = name; this.color = color; } 怎样才能使"猫" 阅读全文
posted @ 2019-07-05 20:00 Leophen 阅读(2995) 评论(0) 推荐(0)
摘要:this 是 JavaScript 语言的一个关键字。 它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。 上面代码中,函数 test 运行时,内部会自动有一个 this 对象可以使用。 一、this 的值是什么 函数的不同使用场合,this 有不同的值。 总的来说,this 就 阅读全文
posted @ 2019-07-04 19:13 Leophen 阅读(3069) 评论(0) 推荐(0)
摘要:Javascript是一种基于对象的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程语言,因为它的语法中没有 class(类)。 那么,如果我们要把"属性"和"方法",封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢? 一、生成实例对象的原始模式 这里我们把 阅读全文
posted @ 2019-07-04 19:04 Leophen 阅读(578) 评论(0) 推荐(0)
摘要:一、函数对象 所有引用类型(函数、数组、对象)都拥有__proto__属性(隐式原型) 所有函数拥有 prototype 属性(显式原型)(仅限函数) 原型对象:拥有 prototype 属性的对象,在定义函数时就被创建 关于 prototype 与__proto__ js中所有的函数都有一个 pr 阅读全文
posted @ 2019-07-04 18:13 Leophen 阅读(1999) 评论(0) 推荐(0)
摘要:一、对象的声明 1. 使用字面量(json格式)的方式构建对象 2. 使用 new Object() 的方式构建对象 3. 使用 Object.create(obj) 的方式构建对象 注意:使用此方式创建出来 obj.__proto__ = Foo 4. 使用构造函数的方式构建对象 5. 使用工厂方 阅读全文
posted @ 2019-07-04 14:57 Leophen 阅读(524) 评论(0) 推荐(0)
摘要:一、变量的作用域 要理解闭包,首先需要理解JavaScript的变量作用域。 变量的作用域包括:全局变量和局部变量 函数内部可以直接读取全局变量 函数内部可以直接读取全局变量 函数外部无法读取函数内的局部变量 函数外部无法读取函数内的局部变量 注意:函数内部声明变量时,如果不用var命令的话,实际上 阅读全文
posted @ 2019-07-04 14:39 Leophen 阅读(216) 评论(0) 推荐(0)
摘要:一、什么是数据类型 1、基本类型 值是不可改变的 var name = 'java'; name.toUpperCase(); // 输出 'JAVA' console.log(name); // 输出 'java' 占用空间固定,保存在栈中 原始数据类型直接存储在栈(stack)中的简单数据段,占 阅读全文
posted @ 2019-07-04 14:19 Leophen 阅读(373) 评论(2) 推荐(0)