javascript
MetaLuo
啦啦啦我是愉快的小布丁
展开
-
javascript面向对象编程
关于javascript要不要使用面向对象编程,每个人都会有自己的看法。如果是在后端使用javascript,那出于多方面的原因都会使用面向对象编程。但如果是作为浏览器的脚本语言,不同的人有不同的看法。 有些人觉得javascript更偏向于一门函数式语言。有些人觉得javascript要对dom进行频繁的操作,不适合面向对象编程。但是不同的公司有不同的语言规范,为了代码可读性,也为了更好的合作,原创 2016-02-06 17:00:43 · 535 阅读 · 0 评论 -
react生命周期概括
自定义组件的三种状态MOUNTINGRECEIVE_PROPSUNMOUNTING它们负责通知组件当前所处的状态,应该执行生命周期中的哪个步骤,是否可以更新 state。 三个状态分别对应三种方法:mountComponent -> MOUNTINGupdateComponent -> RECEIVE_PROPSunmountComponent -> UNMOUNTING并且这每原创 2017-06-05 15:16:20 · 442 阅读 · 0 评论 -
js的Date.parse()方法和getTime()的陷阱
之前一直记得getTime()和Date.parse()方法都是返回某个时间到1970年1月1日0:00的毫秒数,但是这次遇到了问题。 当我使用Date.parser()的时候,返回的却是这个时间点到1970年1月1日08:00的毫秒数。下面是我的代码:function startTime() { let date = new Date, year = date.getFu原创 2016-12-02 14:38:36 · 10066 阅读 · 2 评论 -
《javascript pattern》— javascript的继承
javascript不是一门基于类的语言,因此没有一个确定的继承的方法。(es6提供了class和extend关键词,用来实现像java这类强类型语言的继承的样子,实际上是一种语法糖。)虽然说js没有类,但是要实现继承却有很多种方法。主要分为类式继承及现代继承(就是不考虑像有类一样去继承)。要实现的继承效果是://parent构造函数function Parent(name) {this.na原创 2016-10-26 14:35:40 · 441 阅读 · 0 评论 -
理解js闭包
闭包是面试中很容易会问到的一个概念。 js的作用域分为全局作用域和局部作用域(es6里出现了块级作用域),函数内部可以获取外部的全局变量,但是函数外部不能获取函数内部的变量。 如果外部要获取函数内部的变量要怎么办呢? 这个时候只要在函数内部再构造一个函数,把内部的变量return出来就行了。function f1(){ var n=1; function f2(){原创 2016-07-21 15:44:01 · 567 阅读 · 0 评论 -
需要掌握的es6特性(二)
数组的扩展Array.from()Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3};// ES5的写法var ar原创 2016-07-21 11:48:38 · 356 阅读 · 0 评论 -
需要掌握的es6特性(一)
目前es6越来越火,很多公司都开始使用起了es6。因为掌握es6的一些常用特性是非常必要的。let和const原来定义变量时,都会使用var来定义。第一次使用的时候就觉得var的定义特别随性特别自由。但是由于太过自由总是容易犯一些很难找到的错。 首先var的作用域现在一般是全局作用域和局部作用域(一般为函数作用域),很容易造成作用域的混淆。 其次声明提前在一方面来说比较自由,因此比较方便。但是原创 2016-07-21 11:22:59 · 497 阅读 · 0 评论 -
javascript的继承模式的总结
js的继承方式可谓是五花八门啊,而且我用的频率也不高,因此很容易遗忘,很容易搞混。所以就来总结一下。先来看一张图:可以看到js的构造函数、原型、实例之间的关系。 接下来总结下js所有的继承方式:原型链function SuperType(){ this.property = true;}SuperType.prototype.getSuperValue = function(){原创 2016-07-25 15:27:17 · 370 阅读 · 0 评论 -
JS中encodeURI,escape,encodeURIComponent区别
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent1、传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。 例如:<script language="javas转载 2016-07-13 13:49:32 · 422 阅读 · 0 评论 -
模仿jquery的$选择符
function $(selector,context){ context=context||document; var elemengts=context.querySelectorAll(selector); return Array.prototype.slice.call(elements);} 来自 《css揭秘》原创 2016-04-27 14:16:41 · 379 阅读 · 0 评论 -
javascript的数组创建及方法
作为一门动态脚本语言,javascript真的是非常地易用。它的数组非常灵活,并且方法也很多,用起来较为方便。javascript的数组的创建js真的是一门很随性的语言啊,比如在创建数组的时候就反映出来了,我想怎么创就怎么创,我想创什么就创什么。 比如现在我想创建一个数组,但我不确定要给它开辟多少内存空间。没关系!因为你创建一个数组内容,它就会给你开辟一个内存空间。var arr=new Arra原创 2016-02-23 11:55:09 · 609 阅读 · 0 评论 -
javascript call()和apply()
在学习js的继承的时候,尤其是用到构造函数的时候,会用到call()方法,有时候是apply()方法。那这两个方法到底是用来干什么的?它们有什么区别吗? 比如以下这个经典的例子:function add(a,b){ alert(a+b);}function sub(a,b){ alert(a-b);}add.call(sub,4,2); //6可以看到,add方法代替了su原创 2016-03-07 15:12:52 · 445 阅读 · 0 评论 -
zepto与jquery冲突的解决
一般是不会把zepto和jquery一起来用的。但有时候要引入一些插件,可能就会遇到这样的问题。jquery noConflict()jquery有一个方法叫noConflict() ,可以把jquery的$改掉。var jq=$.noConflict();这个时候用jq来代替jquery的$吧。zepto的符号改掉window.$$=window.Zepto = Zepto在zepto里加入这一行原创 2016-03-04 11:50:20 · 14319 阅读 · 7 评论 -
javascript中undefined和null的区别
javascript中有七种内置类型,分别是: - 空值(null ) - 未定义(undefined ) - 布尔值(boolean ) - 数字(number ) - 字符串(string ) - 对象(object ) - 符号(symbol ,ES6 中新增)但是null和undefined这两种类型很让人迷惑。因为两者的差别很小。null == undefine原创 2017-06-02 14:05:57 · 1490 阅读 · 0 评论