二分搜索BinarySearch的 “来龙去脉” 二分搜索用于检索某个key是否在已排好序的序列中,我们还记得上编程语言的基础课程:猜字游戏吗?...因为这个笨拙的游戏规则只会告诉你是对的还是错误的!!!...然后你得进行下一次的瞎猜… 猜字游戏第二版: 程序预先选取一个数字(假设是40)作为猜想的目标; 用户键盘输入自己猜想的数字(假设是5); 如果不相等则提示错误,并且有内容:您猜的太小了;...第二版的游戏相比第一版增加了游戏提示,这个提示有利于用户缩小下一次猜想的数字的大概范围。 我们的二分搜索就可以认为来自这个猜想,思路是: 在有序数组中查找关匹配键字的元素。...如果中间索引值arr[mid] < key,则表名key在中间索引的右边,猜的数字比较小,需要往大的方向猜。
Promise 是一个 ECMAScript 6 提供的类,目的是更加优雅地书写复杂的异步任务。...由于 Promise 是 ES6 新增加的,所以一些旧的浏览器并不支持,苹果的 Safari 10 和 Windows 的 Edge 14 版本以上浏览器才开始支持 ES6 特性。...我们之前遇到的异步任务都是一次异步,如果需要多次调用异步函数呢?...可想而知,在一个复杂的程序当中,用 "函数瀑布" 实现的程序无论是维护还是异常处理都是一件特别繁琐的事情,而且会让缩进格式变得非常冗赘。...Promise 将嵌套格式的代码变成了顺序格式的代码。
二、JavaScript编辑工具 三、JavaScript在HTML的引用方式 四、JavaScript和Java的关系 五、训练题 2、JavaScript入门基础 一、数据结构 二、JavaScript...十一、split()方法 十二、从字符串提取字符串 7、日期对象 一、创建日期对象 二、日期对象方法 ---- 预备知识与后续知识及项目案例 [HTML入门与进阶以及HTML5] [CSS] [JS-上]...JavaScript和Java虽然名字相似,但是本质上是不同的。...(1)JavaScript往往都是在网页中使用,而Java却可以在软件、网页、手机App等各个领域中使用; (2)Java是一门面向对象的语言,而从本质上讲,JavaScript更像是一门函数式编程语言...有可能这些技巧一时半会你用不上,但是学习知识有一种说法是:你只有接触了某个知识点,即使将来你已经忘记了这个知识点具体是怎样的了,不过你却能想到用这么一个知识去帮你解决某些问题。
在JavaScript中,事件往往是页面的一些动作引起的,例如当用户按下鼠标或者提交表单,甚至在页面移动鼠标时,事件都会出现。...二、JavaScript事件 在JavaScript中,调用事件的方式共有2种: (1)在script标签中调用; 在script标签中调用事件,也就是在</script标签内部调用事件...(2)在元素中调用; 在元素事件中引入JS,就是指在元素的某一个属性中直接编写JavaScript程序或调用JavaScript函数,这个属性指的是元素的“事件属性”。...举例1:(在元素事件属性中直接编写JavaScript) <!...因为它是直接在JavaScript元素中调用的。 这2种调用JavaScript事件的方式,大家刚刚开始看不理解没关系,我们只是给大家说个语法,留个印象。在接下来的章节中,我们会经常接触。
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数... 此外,JavaScript 允许自定义对象。...---- 所有事物都是对象 JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。 布尔型可以是一个对象。...; var x=message.length; 在以上代码执行后,x 的值将是: 12 ---- 访问对象的方法 方法是能够在对象上执行的动作。...---- 创建 JavaScript 对象 通过 JavaScript,您能够定义并创建自己的对象。 创建新对象有两种不同的方法: 使用 Object 定义并创建对象的实例。...使用 Object 在 JavaScript 中,几乎所有的对象都是 Object 类型的实例,它们都会从 Object.prototype 继承属性和方法。
目前 Javascript 虚拟机(VM) 的优化利用了只有一个执行线程的基本事实,因此高并发肯定会带来一些性能问题。本文考虑的问题是这是否在技术上是可行的,如果可行,那代价会是什么?...目前还无法从经验上评估这套方案的性能,但我们的实现思路能够有助于直观感受到性能也许看上去像是什么样的。...与 DOM 进行交互 对于所有的 Javascript 来扩展高并发会很难;将其扩展到所有 DOM 上难度更甚。...垃圾回收器拥有固定数量的分配器,而且我们已经有了快速的线程局部存储,因此这会是一个机制上的改变。 像 Javascript 一样,那些语言由多层 JIT 机制实现,也许还有一个解释器。...在 Javascript 上,这些才能正常运行。 如 Javascript 的实现一样,这些语言使用内联缓存技术(inline caching) 来加速动态操作。
---- JavaScript 数据类型 在 JavaScript 中有 6 种不同的数据类型: string number boolean object function symbol 3 种对象类型...: Object Date Array 2 个不包含任何值的数据类型: null undefined ---- typeof 操作符 你可以使用 typeof 操作符来查看 JavaScript 变量的数据类型...number 数组(Array)的数据类型是 object 日期(Date)的数据类型为 object null 的数据类型是 object 未定义变量的数据类型为 undefined 如果对象是 JavaScript...Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 object。...---- constructor 属性 constructor 属性返回所有 JavaScript 变量的构造函数 "John".constructor // 返回函数
极大或极小的数字可通过科学(指数)计数法来写: 实例 var y=123e5; // 12300000 var z=123e-5; // 0.00123 ---- 所有 JavaScript...与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。 在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。...JavaScript 采用 IEEE754 标准定义的 64 位浮点格式表示数字,它能表示最大值(Number.MAX_VALUE)为 ±1.7976931348623157e+308,最小值(Number.MIN_VALUE...所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以Infinity表示。...同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以-Infinity表示。
图片 假设现在有 A 和 B 两个页面,当我们从 A 页面跳转到 B 页面的时候,需要将 A 页面的两个值传递到 B 页面当中,前端可以通过读取缓存的方式,从 B 页面获取到 A 页面的数据,但这样的方式...,会让其他端上的数据不同步,所以我们往往通过 url 传参的方式,在 A 页面跳转到 B 页面的时候,通过字符串拼接的方式,将 A 页面上的值链到 url 上,可参考下面的栗子 A 页面 12 $('body').on('click'...year=2017&month=12,则 B 页面获取参数值的方式如下 var date = { init: function(){ this.bindCusEvent();...= that.getQueryString('year'), b_month = that.getQueryString('month'); // 利用得到的参数值进行其他操作
https://blog.csdn.net/FE_dev/article/details/78821578 说明 这篇文章说JavaScript中的事件委托,这次先说一些比较基本的知识。...事件:JavaScript 侦测到的行为就是事件,比如鼠标点击、某个键盘的键被按下、元素获得焦点。 委托:就是把原来自己做的事,交给别人做。...,并不在生成的元素上绑定事件,而是在生成元素的父元素上绑定事件,因为父元素是一直存在的,所以绑定的事件就可以生效。...,而是绑定在已经存在于页面上的父元素,冒泡到父元素上时,执行绑定在父元素上的事件处理函数,这样能减少很多不必要的工作。...还有 JQuery中的事件委托 又是怎么做的呢? 看这里 简单说 JavaScript中的事件委托(下)
我们之前介绍了javascript面向对象的封装的相关内容,还介绍了js的call方法,今天开始讨论js的继承 这篇文章参考了《javascript高级程序设计》(第三版),但内容不局限于,网上很多关于...留意代码注释内容 //创建自定义构造函数 function Hqg() { this.name = '洪七公'; } //在当前构造函数的原型链上添加属性skill Hqg.prototype.skill...gj的skill屏蔽掉了原型链上的skill,所以gj的skill是降龙十八掌,而hr的skill依然是打狗棒 问题即将暴露 function Hqg() { this.name = '洪七公'...这样既通过在原型上定义方法实现了函数复用,又能保证每个实例都有自己的属性 一个栗子 function Hqg(name) { this.name = name this.skill = ["降龙十八掌...我们把这个组合继承和之前的两个原型链继承和借用构造函数继承进行比较 不难发现组合继承融合了他们的优点,成为javascript中最常用的继承模式 今天就讨论前三个,还有三个明天继续,不见不散
一些必要的概念 纯函数(Pure Function) Pure function 意指相同的输入,永远会得到相同的输出,而且没有任何显著的副作用。 纯函数就是数学里的函数,这也是函数式编程的全部。...可变状态(mutable state) 不受限的副作用(unrestricted side effects) 无原则设计(unprincipled design) 函数是一等公民的意义 在 JavaScript...Professor Frisby’s Mostly Adequate Guide to Functional Programming》[11],翻译版本为《JS 函数式编程指南中文版》[12] Pointfree Javascript...JS 函数式编程指南中文版》: https://jigsawye.gitbooks.io/mostly-adequate-guide/content/SUMMARY.md [13] Pointfree Javascript...: http://lucasmreis.github.io/blog/pointfree-javascript/ [14] Favoring Curry: http://fr.umio.us/favoring-curry
开发者的javascript造诣取决于对【动态】和【异步】这两个词的理解水平。 ?...this在javascript语言中的意义,就如同代词在汉语中的意义是一样的。 2.2 不同作用域中的this 在ES6出现前,javascript中的作用域只分为全局作用域和函数作用域两种。...全局作用域中使用this 全局作用域中的this是指向window对象的,但window对象上却并没有this这个属性: ?...,那实际上就算不确定this的指向,函数的执行过程也不会有歧义。...当函数作为对象被赋值在另一个对象的属性上时,这个对象的属性值里会保存函数的地址,因为用函数作为赋值运算的右值时是一个引用类型赋值。
本章节使用的是 JavaScript 来创建 Angular 的应用,当然你也可以使用 TypeScript 和 Dart 来创建 Angular 应用 。...npm 来作为包的管理工具,如果你还没安装npm或者不了解 npm 可以查看我们的教程:NPM 使用介绍。...---- 创建 Angular 组件 组件(Component)是构成 Angular 应用的基础和核心,一个组件包装了一个特定的功能,并且组件之间协同工作以组装成一个完整的应用程序。...一般来说,一个组件就是一个用于控制视图模板的JavaScript类。...Component方法接受一个包含两个属性的配置对象,Class方法是我们实现组件本身的地方,在Class方法中我们给组件添加属性和方法,它们会绑定到相应的视图和行为。
普通函数和箭头函数的this 原始数据类型及其判断和转化方法 深浅拷贝及实现 JS 事件模型 常见的高阶函数 普通函数和箭头函数的 this 还是一道经典题目,下面的这段代码的输出是什么?...① es5 普通函数: 函数被直接调用,上下文一定是window 函数作为对象属性被调用,例如:obj.foo(),上下文就是对象本身obj 通过new调用,this绑定在返回的实例上 ② es6 箭头函数...原始类型转化 当我们对一个“对象”进行数学运算操作时候,会涉及到对象 => 基础数据类型的转化问题。 事实上,当一个对象执行例如加法操作的时候,如果它是原始类型,那么就不需要转换。...否则,将遵循以下规则: 调用实例的valueOf()方法,如果有返回的是基础类型,停止下面的过程;否则继续 调用实例的toString()方法,如果有返回的是基础类型,停止下面的过程;否则继续 都没返回原始类型...值得提醒的是,ES6 的Object.assign()和 ES7 的...解构运算符都是“浅拷贝”。
统计出Github中所有项目的数量,几乎是不可能的,而明确指出哪些是最优秀的项目就更不可能了。如果说到JavaScript,曾经极富创新的项目(很可能)在一两个月后就会变得过时、落后。...以防被淹没在大量的项目中,去研究(哪个项目更好),我们可以来看看2016年Github上最热门的Javascript项目。 Vue.JS ?...前端,Electron采用Chromium,后端使用Node.js,因此可以使用 HTML、CSS、JavaScript 构建App。它具有跨平台性,可运行在Linux、Windows及Mac上。...除了JavaScript扩展,Bootstrap包含HTML和基于CSS的设计模板。...---- 我们已经看到2016年 GitHub上的Top10 JavaScript项目。毫无疑问,不久将有更多的项目产生。
大家好,又见面了,我是你们的朋友全栈君。...第一种方法: 返回上一步 返回上一页 第二种方法: window.history.back(-1); 发布者:全栈程序员栈长
本书属于基础类书籍,会有比较多的基础知识,所以这里仅记录平常不怎么容易注意到的知识点,不会全记,供大家和自己翻阅; 上中下三本的读书笔记: 《你不知道的JavaScript》 (上) 读书笔记 《你不知道的...JavaScript》 (中) 读书笔记 《你不知道的JavaScript》 (下) 读书笔记 第一部分 作用域和闭包 第二章 词法作用域 词法查找 全局变量会自动成为全局对象(浏览器中是 window...) 的属性,因此是不可以直接通过全局对象的此法名称,而是间接地通过全局对象属性的应用来对其进行访问 window.a,通过这种方法可以访问那些被同名变量所遮蔽的全局变量。...foo() { console.log(1) } function foo() { console.log(2) } 第二部分 this和对象原型 第一章 关于this this到底是什么 this 实际上是在函数被调用时发生的绑定...当一个函数被调用时,会创建一个执行上下文,它包含函数在哪里被调用(调用栈)、函数的调用方式、传入的参数等信息,this 就是这个记录的一个属性,会在函数执行的过程中用到。
以防被淹没在大量的项目中,去研究(哪个项目更好),我们可以来看看2016年Github上最热门的Javascript项目。 1. Vue.JS ?...由于简单小巧的核心,加上可渐进式使用的工具栈,Vue.js被认为非常“多才多艺”。 2. React ? 2016年,React在Github上名列第二,同样引起了我们的注意。...前端,Electron采用Chromium,后端使用Node.js,因此可以使用 HTML、CSS、JavaScript 构建App。它具有跨平台性,可运行在Linux、Windows及Mac上。...这便于开发者直接专注于编码及应用的业务逻辑上。 Create React App为具有基本结构的命令行工具。它提供了运行、测试、创建package.json的脚本。...除了JavaScript扩展,Bootstrap包含HTML和基于CSS的设计模板。
Web前端-JavaScript必备知识点 Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读!...JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript是必备的前端技能。...HTML是用来描述网页的结构,css是用来描述网页的延时,而JavaScript是用来描述网页的行为的。 JavaScript是一种高端,动态,弱类型的编程语言。...JavaScript的数据类型有: 基本数据类型: String, Boolean, Number, Undefined, Null 引用数据类型: Object JavaScript中的继承: 原型链继承...) } $.fn.parseArray = function(array) { return JSON.parse(array) } jquery是一个js库,而jquery ui是在jquery基础上,
领取专属 10元无门槛券
手把手带您无忧上云