js学习笔记
爱编译也爱吃肉的喵
方法总比问题多
展开
-
JavaScript上下文执行对象
在看Backbone源码解析中看到“Events对象可以理解为会被变成被调用的对象上下文”,由于对于js的对象上下文并不熟悉,便翻阅了多位前辈大神的博客,其中包括汤姆大叔的深入理解JavaScript系列(11):执行上下文(Execution Contexts)和360weboy 的深入理解Javascript之执行上下文(Execution Context);以下有大神们的理解解释也有自己初步的原创 2017-04-20 15:57:21 · 329 阅读 · 0 评论 -
Generator函数
1.是一个状态机,封装多个内部状态;2.执行Generator函数会返回一个遍历器对象,返回的遍历器对象,可以依次遍历Generator函数内部的每一个状态3.Generator函数特征:①function关键字与函数名之间有一个星号;②函数体内部使用yield表达式,定义不同的内部状态4.调用Generator函数,返回一个遍历器对象,代表Generator函数的内部指针。每次调用遍历器对原创 2018-01-10 22:06:00 · 222 阅读 · 0 评论 -
Promise
1. pending-进行中、resolved-已完成、rejected-已失败2. 注意:实例化的Promise对象会立即执行Promise.resolve() / Promise.reject()用来包装一个现有对象,将其转变为Promise对象,但Promise.resolve()会根据参数情况返回不同的Promise:参数是Promise:原样返回参数带有then方法:转换为Prom原创 2018-01-10 22:04:21 · 287 阅读 · 0 评论 -
ECMAScript6
最近公司用VUE做项目,使用的ECMAScript是ES6版本,相对于ES5来说,ES6还是有很多不一样的特性,通过对官网ES6的学习来进行一些对比归纳。let命令1、声明变量,类似于var。所声明的变量,只在let命令所在的代码块内有效 2、所声明的变量一定要在声明后使用,否则报错 4、如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明原创 2017-09-26 18:03:00 · 417 阅读 · 0 评论 -
javascript之面向对象、构造函数
javascript的面向对象、构造函数、原型与原型链 在微信公众号“前端大全”中看到了波同学的讲解面向对象、构造函数、原型与原型链等内容,之前对于这几个知识点有去理解与使用过,但大多是处于似懂非懂的阶段,会用而已。今天凑巧看到了波同学的讲解,就此记录。对象的定义 无序属性的集合,其属性可以包含基本值,对象或者函数。在javascript中由一些列无序的key-value对组成 /原创 2017-05-09 16:09:16 · 243 阅读 · 0 评论 -
视窗viewport
视窗viewport 严格等于浏览器的窗口,在桌面浏览器中,viewport就是浏览器窗口的宽度高度,但在移动端中,viewport太窄,所以提供了两个viewport:虚拟的viewport visualviewport和布局的viewport layoutviewport。布局视口是一个不可改变大小或者形状的大框,可以比可视视口大得多,包含出现在屏幕上但用户看不到的元素。(就像移动端页面被原创 2017-05-05 17:23:45 · 542 阅读 · 0 评论 -
用JS获取地址栏参数的方法
方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!)functionGetQueryString(name){ varreg = newRegExp("(^|&)"+ name +"=([^&]*)(&|$)"); varr = window.location.search.substr(1).matc转载 2017-05-05 10:49:04 · 249 阅读 · 0 评论 -
JavaScript之命名表达式
近期一直在看汤姆大叔写的博文,他所介绍的知识点与理论较为清晰,命名函数表达式是我之前从没有去进行深究过的原理,虽然已多次在项目中使用javascript,但基础还是不都扎实,多看多思多想是一直必须坚持的。这篇文章作为学习笔记,很多知识点都是汤姆大叔所总结的,汤姆大叔博客链接在文末。函数声明:function 函数名称(参数:可选){函数体}函数表达式:function 函数名称(可选)(参数:可选原创 2017-04-21 15:07:39 · 325 阅读 · 0 评论 -
ajax使用formdata上传文件流
今天在做项目的时候涉及到了ajax上传文件流的问题,由于是移动端两个页面的两个表单使用同一个ajax地址进行上传数据给后台,数据中涉及到了不同类型的input,其中存在了file类型的input,导致无法使用表单序列化直接传输数据。 只存在传递一般的参数时,可以使用$("#表单id").serialize()对form表单序列化,从而将form表单中的所有参数传递到服务端。而上传文件的文件流时原创 2017-05-03 21:23:00 · 2840 阅读 · 0 评论 -
javascript之原型
原型 每个函数都有一个prototype属性,它是一个对象,也称作原型对象,可以将方法和属性写在它上面,而通过这个函数创建出来的实例对象,都能共享这个原型对象下的方法和属性。只需要将想要共享的东西放在该函数的prototype下,不想共享的东西通过构造函数创建 function CretePerson(name){ this.name=name; }转载 2017-05-11 17:42:18 · 432 阅读 · 0 评论 -
JavaScript之eval函数
定义:eval函数可计算某个字符串,并执行其中的JavaScript代码 语法:eval(string):string是必须的,要计算的字符串,其中含有要计算的JavaScript表达式或要执行的语句,返回通过计算string的值 注意点:覆盖eval属性或者将eval()方法赋予另一个属性,并通过该属性调用它,则ECMAScript实现允许抛出一个EvalError异常以上是W3Sc原创 2017-04-21 10:49:42 · 954 阅读 · 0 评论 -
从对象数组中筛选符合条件的值
const arr = [1,2,3,4,5,6,7]const list = [ {openId: 1, timelineId: 1, showNo: 1, uid: 1}, {openId: 2, timelineId: 1, showNo: 1, uid: 1}, {openId: 9, timelineId: 1, showNo: 1, uid: 1}, {openId: 4, ...原创 2019-05-28 10:46:22 · 23135 阅读 · 0 评论