【JS基础】变量类型和计算

2018-12-18
阅读 2 分钟
1.1k
1. js中使用typeof能得到那些类型 {代码...} 2. 何时使用 === 何时使用 == 判断对象属性是否存在可以使用 == ,其他情况都使用 === {代码...} 3. 发生强制类型转换的情况 {代码...} {代码...} 4. js中有哪些内置函数 - 数据封装类对象 {代码...} 5. js变量按照存储方式区分为那些类型,描述一下特点 值类型 number strin...

【挥舞JS】vue双向数据绑定v-model实现原理

2018-11-29
阅读 1 分钟
5.2k
Vue.js 数据观测原理在技术实现上,利用的是ES5 Object.defineProperty()和存储器属性: getter和setter(所以只兼容IE9及以上版本),可称为基于依赖收集的观测机制。核心是VM,即ViewModel,保证数据和视图的一致性。Vue.js 采用数据劫持结合发布者-订阅者模式的方式,在数据变动时发布消息给订阅者,触发相应的监听回调。

【挥舞JS】前端MVC,JS模板替换实现原理

2018-11-29
阅读 1 分钟
1.3k
我们常用的框架,比如Vue、Angular等,都有属于它们自己的表达式,比如{{}},它们的数据绑定实现原理其实是利用了正则表达式。 MVC模式 M model 模型 数据 V view 视图层 C control 控制器 view。注意:这里的script标签的type属性要设置为“text/html”,这样浏览器在渲染页面时不会把script标签里面的内容渲染到页面上。...

【挥舞JS】JS实现继承,封装一个extends方法

2018-11-29
阅读 1 分钟
1.7k
父类 {代码...} 子类 {代码...} 封装一个 extends 方法 {代码...} 子类可以继承父类的属性和方法,也可以扩展自己的属性和方法。extends 方法参数:1.父类 2.需要扩展的属性和对象的一个对象集合。 {代码...}

【ES6入门14】:模块化

2018-10-28
阅读 1 分钟
1.3k
模块化就是为了使功能单一,把各个耦合性不高的功能抽离出来成单一的模块,每个模块提供单一的功能export 导出模块;import 导入模块 使用多个export module.js {代码...} index.js {代码...} {代码...} {代码...} 使用export default module.js {代码...} index.js {代码...}

【ES6入门13】:Iterator

2018-10-28
阅读 2 分钟
1.2k
es6中,操作某些数据结构(array object map set)时,怎么用一个统一的方法操作,Iterator接口实现了这样的功能 1.Iterator在数组中的应用 {代码...} 2.自定义Iterator接口 {代码...} 3.for...of循环 {代码...}

【ES6入门12】:Promise

2018-10-28
阅读 4 分钟
1.4k
Promise基本用法 Promise是一种异步编程的解决方案 1.es5的回调 {代码...} 2.es6的Promise {代码...} 3.then()的串联操作 {代码...} 4.catch方法 {代码...} Promise.all() 例子:所有图片加载完再统一添加到页面 {代码...} Promise.race() 例子:有一个图片加载完就添加到页面,其余的不管,只显示最先加载完成的一张图...

【ES6入门11】:类和对象

2018-10-26
阅读 2 分钟
1.2k
1.基本定义和生成实例 {代码...} 2.继承 {代码...} 3.继承传递参数 {代码...} 4.getter setter {代码...} 5.静态方法 {代码...} 6.静态属性 {代码...}

【ES6入门10】:Proxy和Reflect

2018-10-25
阅读 4 分钟
1.6k
Proxy代理 {代码...} Reflect反射 反射的是 object,Reflect的方法跟Proxy一样,都有get,set,has... {代码...} 数据校验例子 {代码...}

【ES6入门09】:Set和Map数据结构

2018-10-25
阅读 5 分钟
1.3k
Set 1.add()方法和size属性 {代码...} 2.Set的元素必须是唯一的 {代码...} 3.has(),delete(),clear() {代码...} 4.Set的遍历 {代码...} WeakSet WeakSet和Set的不同点: WeakSet的元素只能是对象,不能是数值、字符串、布尔值... WeakSet中的对象都是弱引用,垃圾回收机制不考虑WeakSet对该对象的引用。WeakSet里面的引...

【ES6入门08】:Symbol用法

2018-10-24
阅读 1 分钟
2.2k
1.Symbol是ES6新增的数据类型,它提供独一无二的值 {代码...} 2.在对象中声明Symbol类型的属性 {代码...} 3.Symbol的遍历 {代码...}

【ES6入门07】:函数扩展

2018-10-21
阅读 1 分钟
1.2k
函数扩展 函数参数的默认值 {代码...} 参数的作用域 {代码...} rest参数和扩展运算符 {代码...} 箭头函数 {代码...} 函数尾调用 {代码...}

【ES6入门06】:对象扩展

2018-10-21
阅读 2 分钟
1.3k
对象扩展 简洁表示法 {代码...} 属性表达式 {代码...} Object.is() {代码...} Object.assign() {代码...} Object.entries() {代码...}

【ES6入门05】:数组扩展

2018-10-21
阅读 3 分钟
1.3k
数组扩展 Array.of() {代码...} Array.from() {代码...} Array.fill() {代码...} Array.copyWithin() {代码...} 数组的遍历 {代码...} Array.find() 和 Array.findIndex() {代码...} Array.includes() {代码...}

【ES6入门04】:数值扩展

2018-10-21
阅读 2 分钟
1.2k
数值扩展 Number.isFinite() {代码...} Number.isNaN() {代码...} Number.isInteger() {代码...} Number.isSafeInteger() {代码...} Math.trunc() {代码...} Math.sign() {代码...} Math.cbrt() {代码...}

【ES6入门03】:字符串扩展

2018-10-21
阅读 2 分钟
1.4k
字符串扩展 1.str.includes() str.startsWith() str.endsWith() {代码...} 2.str.repeat() {代码...} 3.str.padStart() 和 str.padEnd() {代码...} 4.模板字符串 {代码...} 5.标签模板,作用:防止XSS攻击,处理多语言转换 {代码...} 6.String.raw {代码...}

【ES6入门02】:解构赋值

2018-10-18
阅读 2 分钟
1.3k
数组解构赋值 1.基本用法 {代码...} 2.变量交换 {代码...} 3.函数返回结果赋值 {代码...} 4.忽略某些返回值,只取需要的 {代码...} 5.函数返回结果不确定,只关心第n个,剩余的赋值到一个数组 {代码...} 对象解构赋值 1.基本用法 {代码...} 2.json数据的解构赋值 {代码...}

【ES6入门01】:let 和 const 命令

2018-10-17
阅读 1 分钟
1.4k
let命令 1.使用let命令,会创建一个块作用域 {代码...} 2.let声明的变量只在块作用域内有效 {代码...} 3.同个作用域里,使用let不能重复声明变量 {代码...} const命令 1.使用const声明一个常量 {代码...} 2.使用const声明的常量不能被修改 {代码...} 3.使用const声明常量时就要赋值 {代码...} 4.使用const声明一个引用类...