详解JavaScript中的严格模式

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

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

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

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

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

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

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

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

JavaScript 中的尾调用优化

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

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

19种JavaScript常用简写方法

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

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 点击: 26

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

JS构造函数及new运算符

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

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

javascript中的mouseenter与mouseover区别

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

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

JavaScript的六种继承方式

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

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

JavaScript创建对象的七种方式

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

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

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

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

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

JavaScript 实现 Popover

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

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

JavaScript中的Date对象详解

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

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

前端常见算法面试题

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

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

DOM API获取元素的几种方法

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

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

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

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

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

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

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

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

javascript柯理化函数思想

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

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

javascript策略模式

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

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

javascript事件基础学习笔记

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

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 点击: 73

我们先回顾一下这个经常被用来演示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 点击: 69

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

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

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

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

ES6(ECMAScript 6)箭头函数详解

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

基本用法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 点击: 88

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 点击: 61

变量定义的新方式: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 点击: 48

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 点击: 35

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

前端热门JavaScript 框架和库

作者: 日期:2017-02-27 点击: 79

前端热门JavaScript 框架和库JavaScript 框架和库可以说是开源项目中最庞大也是最累的类目了,目前在github 上这一类的项目是最多的,并且几乎每隔一段时间就会出现一个新的项目席卷网络社区,虽然这样推动了创新的发展,但不得不说苦了前端的开发者们。 这篇文章主要描述现今流行的一些 Javascript web 前端框架,库以及它们的适用场

jQuery中的ready和load事件

作者: 日期:2017-02-23 点击: 44

使用HTTPS正在变的越来越普遍,因此我们应该知道怎么在Node.js程序中实现SSL/TSL——不论是为了访问HTTPS资源还是为了提供加密的资源。HTTPS到底是什么意思呢?它暗示了什么?有什么限制和约束?我们将试着为所有的这些问题找到答案。另外,我们不应该仅仅通过提供HTTPS来保护我们的客户端,而且我们也应该严格要求来自服务

jQuery回调对象使用方法

作者: 日期:2017-02-20 点击: 109

jQuery回调对象jQuery向开发者提供了外部接口调用,但是$.Callbacks()模块的开发目的是为了给内部$.ajax() 和 $.Deferred()模块提供统一的基本功能组件。它可以用来作为类似基础定义的新组件的功能。jQuery.Callbacks是jquery在1.7版本之后加入的,是从1.6版中的_Deferred对象中抽离的,主要用来进行函数队列的add、remove、fire

深入理解 ES6 的解构赋值

作者: 日期:2017-02-10 点击: 41

解构赋值(destructuring assignment)语法是一个 Javascript 表达式,这种语法能够更方便的提取出 Object 或者 Array 中的数据。这种语法可以在接受提取的数据的地方使用,比如一个表达式的左边。有明确的语法模式来告诉我们如何使用这种语法提取需要的数据值。Object 的解构解构 Object:const obj = { first: 'Jane', last: '

浅谈前端跨域的几种解决方式

作者: 日期:2017-02-08 点击: 453

搞大前端的,肯定都会遇到跨域问题的,虽然网上这方面的资料也很多,但我还是喜欢自己写一遍,自己理解过、总结过的东西才记得最深刻。同源策略JavaScript 的同源策略,是由Netscape提出的一个著名的安全策略,为了阻止A站的JS去操作别的网站的数据。你想啊,你现在打开了浏览器,在一个tab窗口中打开了银行网站,在另外一个tab窗口中打开了

前端冷知识集锦(一)

作者: 日期:2017-01-21 点击: 86

前端冷知识集锦(一)— 珠峰培训 / 孟倩HTML篇浏览器地址栏运行JavaScript代码这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以 javascript: 开头后跟要执行的语句。比如: javascript:alert('hello from address bar :)');将以上代码贴到浏览器地址栏回车后alert正常执行,一个弹窗神现。需

快速掌握es6,让自己的前端更精彩

作者: 日期:2017-01-17 点击: 158

ES6环境搭建 npm init -y 项目初始化; 创建.gitignore 和 readme.md文件:touch .gitignore README.md 初始化package.json文件 npm install babel-cli babel-preset-es2015 &ndash;save-dev 在package.json的scripts中配置:”dev”:”babel src -d

开启es6学习之旅

作者: 日期:2017-01-15 点击: 224 es6入门学习

es6介绍ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。但是大家也会想一个问题 ECMAScript和JavaScript是什么关系?ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现(另外的ECMAScri

前端工程师简历怎么写?

作者: 日期:2017-01-11 点击: 101

其实前端工程师并不少,但很多时候合适的前端工程师难找。可能是由于程序员比较内向,前端工程师都没有把自己最厉害的那一面表现出来。今天我们来聊聊前端工程师的简历怎么写,希望能够对大家有帮助。

写给想成为前端工程师的同学们

作者: 日期:2017-01-11 点击: 57

前端工程师是互联网时代软件产品研发中不可缺少的一种专业研发角色。从狭义上讲,前端工程师使用 HTML、CSS、Java 等专业技能和工具将产品UI设计稿实现成网站产品,涵盖用户PC端、移动端网页,处理视觉和交互问题。从广义上来讲,所有用户终端产品与视觉和交互有关的部分,都是前端工程师的专业领域。

 165    1 2 3 4 5 6 7 下一页 尾页