JavaScript中的数组基础精讲

作者: 日期:2017-11-23 点击: 8

JavaScript中的数组基础精讲以及t数组常用方法,想看更多视频或者想了解更多关于前端技术的文章,请关注"zhufeng-peixun"的微信公告号

JQ源码解读和插件封装

作者: 日期:2017-11-23 点击: 6

Jquery源码解读和Jquery插件的封装,,想看更多视频或者想了解更多关于前端技术的文章,请关注"zhufeng-peixun"的微信公告号

详解JavaScript中的严格模式

作者: 日期:2017-08-24 点击: 107

JavaScript 严格模式除了正常运行模式,ECMAscript 5添加了第二种运行模式:”严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。设立”严格模式”的目的,主要有以下几个: 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为; 消除代码运行的一些不安全之处,保证

最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等

作者: 日期:2017-08-08 点击: 122

什么是 RegExp? RegExp 是正则表达式(Regular expression)的缩写,作用是对字符串执行模式匹配。 通常用于格式验证、正则替换、查找子串等 各种编程语言的正则表达式基本相同,不同的语言可能会有一些细小的差别 RegExp 语法1.// 直接实例化2.var reg = new RegExp(pattern [, flags]);3.// 隐式

前端事件绑定知识点(面试常考)

作者: 日期:2017-08-04 点击: 98

简介事件是可以被 JavaScript 侦测到的行为。网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。事件通常与函数配合使用,当事件发生时函数才会执行。执行JS 事件的方式: HTML 事件属性可以直接执行 JavaScript 代码 HTML 事件属性可以调用 JavaScript 函数 你可以为 HTML 元素指定自己的事件处

JavaScript 中的尾调用优化

作者: 日期:2017-07-30 点击: 40

JavaScript 中的尾调用优化(tail call optimization)我在学习尾调用优化的过程中,有两个误解:第一个是,我们一谈优化,经常说时间的优化。但是尾调用优化却主要是指空间的优化。第二个是,既然尾调用优化是在 es6 中支持的,那么可能又要学新的语法了。然而,尾调用优化并不需要新的语法,而只是是在解释器(如V8)中做的改进。尾调用是一直

19种JavaScript常用简写方法

作者: 日期:2017-07-26 点击: 95

1.三元操作符当想写if…else语句时,使用三元操作符来代替。1.const x = 20;2.let answer;3.if (x > 10) {4. answer = 'is greater';5.} else {6. answer = 'is lesser';7.}简写:1.const answer = x > 10 ? 'is greater' :

一个博客爬取网站的设计思路与流程

作者: 日期:2017-07-22 点击: 64

前后花了两个月的时间,终于把数据库课设做完了。。。考虑到wooyun关闭后各种wooyun资源dump的流行,加上正好最近在通过各个博客学习安全知识,就想着做一个博客爬取网站吧,首先是写出一个爬虫来爬取整个博客的文章,然后再展示出来。这是网站的登陆界面,在左侧的文字概述了我做整个网站的初衷,希望做一个blog的收集平台,能够方便的爬

JS构造函数及new运算符

作者: 日期:2017-07-18 点击: 65

JS中的函数即可以是构造函数又可以当作普通函数来调用,当使用new来创建对象时,对应的函数就是构造函数,通过对象来调用时就是普通函数。普通函数的创建有:显式声明、匿名定义、new Function() 等三种方式。当通过new来创建一个新对象时,JS底层将新对象的原型链指向了构造函数的原型对象,于是就在新对象和函数对象之间建立了一条原

javascript中的mouseenter与mouseover区别

作者: 日期:2017-07-14 点击: 83

不知道大家在面试或者工作过程中有没有被mouseover和mouseenter(对应的是mouseout和mouseleave)事件所困扰。自己之前在面试的时候就有被问到诸如mouseover和mouseenter事件的异同之类的问题?当时没有答出来,一直也对这两个事件有点模糊不清,趁着最近正在读zepto源码,准备写一篇这方面的文章,如果有错误,请大家指正。mouseenter与

JavaScript的六种继承方式

作者: 日期:2017-06-24 点击: 107

继承是面向对象编程中又一非常重要的概念,JavaScript支持实现继承,不支持接口继承,实现继承主要依靠原型链来实现的原型链首先得要明白什么是原型链,在一篇文章看懂proto和prototype的关系及区别中讲得非常详细原型链继承基本思想就是让一个原型对象指向另一个类型的实例function SuperType() { this.property = true}SuperTyp

JavaScript创建对象的七种方式

作者: 日期:2017-06-20 点击: 82

JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以创建单个对象,显然这两种方式会产生大量的重复代码,并不适合量产。接下来介绍七种非常经典的创建对象的方式,他们也各有优缺点工厂模式function createPerson(name, job) { var o = new Object() o.name = name o.job = job o.sayName = functio

盘点ES6/ES7好玩实用的特性

作者: 日期:2017-06-12 点击: 478

本文介绍一些ES6/ES7好玩实用又简单的特性,或许对写代码的效率也有一定帮助噢。ES6/ES7的出现已经有一段时间了,里面的一些新特性你们是否了解呢?本骚年将结合自身的一些使用经历介绍一些简单实用的新特性/语法糖。 基础常用的一些如let、const等这里就不详细介绍了,关于ES6/ES7的一些具体说明介绍大家可以参考ECMAScript 6 入

JavaScript 实现 Popover

作者: 日期:2017-06-05 点击: 62

简介Popover 是我们日常开发中用得比较多的组件,通常用于给定一个触发元素,当某特定事件 (hover, click等) 在该元素上触发时,弹出相关的菜单供用户选择。目标我们的 Popover 需要实现如下特性: 点击触发元素时,Popover 出现/消失 点击 Popover 内部时,Popover 不消失 点击 Popover 外部时(不包含触发元素),Popover 消失

JavaScript中的Date对象详解

作者: 日期:2017-05-14 点击: 72

时间的发现日常生活中,各种形式的时间字符到处都是。时间观念的产生,时间单位、计时工具的发明,给人类带来的变化实在一言难尽。今天就来谈谈日期那些事儿。一起来看看 JavaScript 中的日期对象 Date。Date 对象和其他对象如 Math、RegExp 等一样,Date 对象是 JavaScript 语言中的内建(build-in)对象。在工作中,Date 对象有着许多

前端常见算法面试题

作者: 日期:2017-05-01 点击: 171

判断回文(Palindromic Words)结果是,使用循环来判断,性能远高于数组方法。接下来,在其他一些例子中也能看到,借用数组方法,往往很耗性能。// Array methodsconst isPalindromicA = w => w === w.split('').reverse().join('');// while loopconst isPalindromicB = (w) => { let

DOM API获取元素的几种方法

作者: 日期:2017-04-21 点击: 126

DOM节点DOM的最小组成单位叫做节点(node)。文档的树形结构(DOM树),就是由各种不同类型的节点组成。节点有以下7种类型 Document:整个文档树的顶层节点(root node) DocumentType: doctype标签 Element:网页的各种HTML标签 Attribute:网页元素的属性(如calss=”aa”) Text:标签之间包含的文本内容 Comment:注

ES6 的扩展(spread)与剩余(rest)运算

作者: 日期:2017-04-18 点击: 253

扩展语法 允许在需要多个参数(用于函数调用)或多个元素(用于数组文本)或多个变量(用于解构分配)的位置扩展表达式. 剩余参数(rest parameter)允许长度不确定的实参表示为一个数组。 扩展 - spread 运算符是三个点… 。它好比 剩余 - rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。扩展语法 - spread直接上代码:consol

javascript几种变量交换方式及性能分析

作者: 日期:2017-04-08 点击: 80

前言“两个变量之间的值得交换”,这是一个经典的话题,现在也有了很多的成熟解决方案,本文主要是列举几种常用的方案,进行大量计算并分析对比。起由最近做某个项目时,其中有一个需求是交换数组中的两个元素。当时使用的方法是:arr = [item0,item1,...,itemN];//最初使用这段代码来交换第0个和第K(k<N)个元素arr[0] = ar

javascript柯理化函数思想

作者: 日期:2017-04-02 点击: 186

【柯里化函数思想(JS高级编程技巧)】柯里化的定义 柯里化通常也称部分求值,其含义是给函数分步传递参数,每次传递参数后,部分应用参数,并返回一个更具体的函数接受剩下的参数,中间可嵌套多层这样的接受部分参数函数,逐步缩小函数的适用范围,逐步求解,直至返回最后结果。一个通用的柯里化函数var curring = function(fn){

javascript策略模式

作者: 日期:2017-03-30 点击: 57

生活中的策略模式:比如出去旅游,到达目的地,有很多可选的方法,汽车,火车,飞机等.策略模式的定义: 定义一系列的算法,并进行封装,把算法的实现(逻辑部分)和算法的使用分离开来一个策略模式至少包含这两部分组成: 策略类:里面封装了具体的算法,也就是逻辑处理部分. 环境类:负责对外接受客户的请求,把请求委托给某一策略

javascript事件基础学习笔记

作者: 日期:2017-03-27 点击: 63

5.1.1 事件基础1. 鼠标事件对象:MouseEvent 产生的位置:MouseEvent在绑定事件的时候,产生在绑定事件对应的那个函数中,并且可以将鼠标事件对象作为参数传递给别人;var div1 = document.getElementById("div1");div1.onclick = fn;function fn(e){ console.log(e);//MouseEvent对象 foo(e);}function foo(

ES6的yield是如何执行接受参数的

作者: 日期:2017-03-25 点击: 161

我们先回顾一下这个经常被用来演示yield语法的函数例子function* gen () { for (let i = 0; i < 5; i++) { yield i }}const g = gen();g.next() // {value: 0, done:false}g.next() // {value: 1, done:false}g.next() // {value: 2, done:false}g.next() // {value: 3, don

JS模块(module)、加载(load)与捆绑(bundle)简介

作者: 日期:2017-03-23 点击: 120

JS模块简介js模块化,简单说就是将系统或者功能分隔成单独的、互不影响的代码片段,经过严格定义接口,使各模块间互不影响,且可以为其他所用。 常见的模块化有,C中的include (.h)文件、java中的import等。为什么JS需要模块很显然,没有模块我们也可以实现同样的功能,为什么我们还要使用模块来写js代码呢?下面几点是模块化给我们带来的一

ES6 中的模式匹配和默认参数

作者: 日期:2017-03-14 点击: 61

ES6 中,引入了其他很多语言都具备的模式匹配和默认参数语法糖,使得代码简洁了不少。但是使用的时候还是有些细节需要注意。模式匹配原理模式匹配的种类具体来说,有三种类型的模式匹配:直接赋值let a = 1;对象模式let {name, age: age} = {name: 'yibuyisheng', age: 25};数组模式let [a, b] = [1, 2];模式匹配的过程直接赋值:x

ES6(ECMAScript 6)箭头函数详解

作者: 日期:2017-03-12 点击: 193

基本用法ES6允许使用“箭头”(=>)定义函数。var f = v => v;上面的箭头函数等同于:var f = function(v) { return v; };如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。var f = () => 5; // 等同于 var f = function () { return 5 };var sum = (num1, num2) => num1 + num

彻底掌握this,call,apply

作者: 日期:2017-03-10 点击: 111

Function.prototype.call 格式:fx.call( thisArg [,arg1,arg2,&hellip; ] );call的传参个数不限,第一个数表示调用函数(fx)函数体内this的指向.从第二个参数开始依次按序传入函数.var age = 40;var xiaoMing = { age:30};var xiaoLi = { age: 20};var getAge = function(){ console.log(

ES6新特性学习

作者: 日期:2017-03-08 点击: 81

变量定义的新方式:let/ constlet 特性: 不允许重复声明 没有变量提升(预解析) 块级作用域(一对 {} 包括的区域称为一个代码块,let 声明的变量只在该代码块起作用)例子1 :简单的打印数据使用 var:for(var i = 0; i<10 ; i++ ){ setTimeout(()=>console.log(i)) // 执行10次,全都打印 10}使用 let:for(let i = 0; i<10 ; i

javascript非严格模式下this的用法

作者: 日期:2017-03-05 点击: 70

this的用法========周末班:王艺霏1. 绑定事件函数中的this只有当事件被触发的时刻,才知道this是谁,谁(DOM元素)触发该事件,谁就是该事件函数中的this。 例:var div1 = document.getElementById('div1');div1.onclick = function() { console.log(this); //当该事件被触发的时候,该this是div1} 2. 函数中的thi

ECMAScript 2015 (ES6) 概览

作者: 日期:2017-03-01 点击: 54

Sublime Text 中运行 ES6 安装最新版的 node 配置新的 build 系统 1.打开 Tools -> Build System -> New Build System&hellip; 2.编辑如下:{ “cmd”: [“/usr/local/bin/node”, &ld

 177    1 2 3 4 5 6 7 8 下一页 尾页