fn

聚焦JavaScript面向对象的思想

馋奶兔 提交于 2019-12-22 21:04:38
面向对象是一种软件开发方法,是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。随着时代的发展,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程,今天我们就来学习一下JavaScript面向对象的思想。 面向过程和面向对象编程概述 面向过程编程就是分析出解决问题的步骤,然后使用函数把这些步骤一步步实现,重心放在完成的每个过程上。 面向对象则是以封装的思想,将问题分析得到的数据封装成一个个的对象,然后通过对对象的操作来完成相应的功能。 举个栗子:厨师炒菜 以面向过程的思想来分析应该分为下面几个步骤: ​ 1.检查食材是否齐全 2.如果不不够,去菜市场买菜 3.洗菜 4.开火 5.按炒菜(按顺序放入相应的食材,调料等) 6.出锅装盘 以面向对象的思想分析则是这样的: ​ 1.厨师,检查食材,炒菜 2.采购员,去菜市场买菜 3.墩子,洗菜,切菜,备菜 ​ 通过调用上面对象中的行为方法即可完成炒菜的整个过程 从上面的例子可以看出,面向对象和面向过程最大的不同在于,面向对象关心的是由哪些对象,每个对象应该有哪些功能,而面向过程关心的是实现过程中的每个步骤。 那么这两种思想到底孰优孰劣呢?从表面上看,貌似面向对象更好,为什么呢

Js变量定义——fn里 var与不var的区别

只愿长相守 提交于 2019-12-22 13:43:01
js运行时内置了一个Global对象。 这个Global对象跟运行环境有关。在浏览器运行环境中。Global就是window对象。 在nodejs中。Global对象是global对象。 当你在浏览器环境中,直接使用一个未经定义的变量, 例如foo=123;那么foo这个变量自动声明为全局变量。变量引用自动挂载到了Global对象,即window对象上,使用上等同于全局对象的属性,你可以试试来验证。 如: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var a=3; console.log(window.a); //3 </script> </body> </html>    在全局对象下定义的函数体里,不用var声明的变量,首先,它会尝试在当前作用域链(如在方法中声明,则当前作用域链代表全局作用域和方法局部作用域etc。。。)中解析 该变量; 如果在任何当前作用域链中找到该变量,则会执行对该变量赋值; 如果没有找到该变量,它才会在全局对象(即当前作用域链的最顶层对象,如window对象)中定义该变量为全局变量并赋值。 测试代码如下: <!DOCTYPE html> <html lang="en">

基于短时时域处理中短时能量和过零率的语音端点检测方法

徘徊边缘 提交于 2019-12-22 10:34:21
基于短时时域处理中短时能量和过零率的语音端点检测方法 1.背景 在语音信号处理中检测出语音的端点是相当重要的。语音端点的检测是指从包含语音的一段信号中确定的起始点和结束点位置,因为在某些语音特性检测和处理中,只对有话段检测或处理。例如,在语音减噪和增强中,对有话段和无话段可能采取不同的处理方法;在语音识别和语音编码中同样有类似的处理。 处理没有噪声的情况下的语音端点检测,用短时平均能量就可以检测出语音的端点。但实际处理语音往往处于复杂的噪声环境中,这时,判别语音段的起始点和终止点的问题主要归结为区别语音和噪声的问题。 所以本项目实现的是短时平均能量和短时平均过零率的方法,同时简单介绍在低信噪比条件下端点的检测。 2.主要内容 2.1、画出“f.m4a”和“b.m4a”的语音信号波形和它的短时能量图 2.2、画出“f.m4a”和“b.m4a”的语音信号波形和它的短时平均零交叉率图 2.3、利用2.2和2.3短时能量和短时平均零交叉率进行端点检测两级判决法示意图。 3.具体实验内容 3.1短时能量 设语音波形时域信号为x(n),加窗函数w(n),分帧处理后得到的第i帧语音信号为yi(n),则yi(n)满足: 式中,w(n)为窗函数,一般为矩形窗或汉明窗;yi(n)是一帧的数值,n=1,2,…,L, i=1,2,…,fn,L为帧长;inc为帧移长度;fn为分帧后的总帧数。

javascript——函数

蓝咒 提交于 2019-12-22 05:43:24
函数的定义和调用 函数定义 1.函数声明方式,使用function关键字,声明命名函数 function fn ( ) { } ; 2.函数表达式定义匿名函数 var func = function ( ) { } ; 3.new Function(‘参数1’,‘参数2’,‘函数体’),参数和函数体要以字符串方式书写,执行效率低,书写麻烦,使用较少,所有函数都是Function的实例对象,函数属于对象 var func = new Function ( 'a' , 'b' , 'console.log(a+b)' ) ; 函数调用 1.普通函数 function fn ( ) { console . log ( '人生巅峰' ) ; } //调用 f ( ) ; //fn.call() 2.对方的方法 var 0 bj = { sayHi : function ( ) { console . log ( '人生巅峰' ) ; } } //调用 obj . sayHi ( ) ; 3.构造函数 function Star ( ) { } ; //调用 new Star ( ) ; 4.绑定事件函数 btn . onclick = function ( ) { } ; //调用 //点击按钮就会调用 5.定时器函数 setInterval ( function ( ) { } ,

javascript Array对象

て烟熏妆下的殇ゞ 提交于 2019-12-22 05:29:35
数组是一段线性分配的内存,它通过整数去计算偏移并访问其中的元素。数组是很快的数据结构,但不幸的是,Javascript并没有像这种数组一样的数据结构。Javascript的数组实质是对象,它把数组的下标转换成字符串,用其作为属性,因此它明显比真正的数组慢,但它可以更方便地使用。 改变自身pop,push,reverse,shift,sort,splice,unshift, 不改变自身concat,join,slice,indexOf,lastIndexOf(后两个为1.6),1.6新增的迭代器:map,filter,forEach,every,some,1.8新增reduce,reduceRight Array 对象的方法 FF: Firefox, N: Netscape, IE: Internet Explorer 方法 描述 FF N IE concat() 方法concat()将创建并返回一个新数组,这个数组是将所有参数都添加到array中生成的。它并不修改array。如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。 var a = [1,2,3]; a.concat(4, 5); // Returns [1,2,3,4,5] a.concat([4,5]); // Returns [1,2,3,4,5] a.concat([4,5],

线程的那些事儿

岁酱吖の 提交于 2019-12-21 23:51:07
一、线程的基本概念:      线程被称为轻量级进程。   计算机的执行单位以线程为单位。计算机的最小可执行是线程。   进程是资源分配的基本单位。线程是可执行的基本单位,是可被调度的基本单位。   线程不可以自己独立拥有资源。线程的执行必须依赖所属进程中的资源。   进程中必须至少有一个线程。   由于GIL(全局解释锁,只在Cpython中有),导致线程没有真正的并行。   线程分为用户级线程和内核级线程。 二、进程由  代码段、数据段、PCB(进程控制块)组成   线程由  代码块、数据块、TCB(线程控制块)组成 三、线程和进程的比较   thread -- 线程   导入线程模块的两种方法:   import threading   from threading import Thread   (1) cpu 切换进程比切换线程 慢很多。在python中,如果IO操作过多的话,使用多线程最好了。   (2) 在同一进程内,所有线程共享这个进程的pid,也就是说所有的线程共享所属进程的资源和内存。   (3) 在同一个进程内,所有线程共享该进程中的全局变量   (4) 因为有GIL锁的存在,在Cpython中,没有真正的线程并行。但是有多进程并行      当任务是计算密集的情况下使用多进程。   (5) 守护线程和守护进程的区别      守护进程:要么自己正常结束

10.矩阵覆盖

给你一囗甜甜゛ 提交于 2019-12-21 05:08:39
题目描述 我们可以用2 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 代码 class Solution { public : int rectCover ( int number ) { int result [ ] = { 0 , 1 , 2 } ; if ( number < 3 ) return result [ number ] ; int f1 = 1 , f2 = 2 , fn ; for ( int i = 3 ; i <= number ; i ++ ) { fn = f1 + f2 ; f1 = f2 ; f2 = fn ; } return fn ; } } ; 来源: CSDN 作者: 含糖的八宝粥 链接: https://blog.csdn.net/weixin_42905141/article/details/92805983

兼容主流浏览器的事件绑定函数

不羁的心 提交于 2019-12-21 03:29:36
标准dom添加事件是用addEventListener,ie6-8则是attachEvent。 今天写了一个兼容两者的添加事件函数,并且支持同时绑定多种事件类型,代码如下: 1 var addEvent = (function() { 2 if(window.addEventListener) { 3 return function(elem, type, fn, capture) { 4 if(type.indexOf(",") !== -1) { 5 var types = type.split(/(?:\s+)?\,(?:\s+)?/); 6 for(var i = 0; i < types.length; i++) { 7 elem.addEventListener(types[i], fn, capture); 8 } 9 } else { 10 elem.addEventListener(type, fn, capture); 11 } 12 } 13 } else { 14 return function(elem, type, fn, capture) { 15 if(type.indexOf(",") !== -1) { 16 var types = type.split(/(?:\s+)?\,(?:\s+)?/); 17 for(var i = 0; i <

【默默努力】PixelFire

拟墨画扇 提交于 2019-12-21 02:59:23
先放下我玩游戏的效果图: 关于游戏最后的结束部分其实我还没有截图,看着挺好看的,后面的效果 再放作者大大的项目地址:https://github.com/panruiplay/PixelFire 接下来我们一起学习项目哇哇哇 这个项目用到了webpack,其实这个webpack的功能我觉得这个项目中用到了就是因为可以使用localhost:8080直接打开这种 我们可以仔细研究代码看看是不是我这样认为的 index.html中,有所有会在界面上渲染的静态页面效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>元素射击</title> </head> <body> <div class="root"> <!--加载面板--> <div class="panel loading" id="loading"> <div class="box"> <div class="text">正在加载</div> </div> </div> <!--加载面板--> <div class="panel intoGame hide" id="intoGame"> <div class="btn" id="intoBtn">点击进入游戏</div> </div> <!--菜单面板--> <div class=

javascript 执行顺序详解

﹥>﹥吖頭↗ 提交于 2019-12-20 04:16:25
  JavaScript是一种描述 型脚本语言,它不同于java或C#等编译性语言,它不需要进行编译成中间语言,而是由浏览器进行动态地解析与执行。如果你不能理解javaScript 语言的运行机制,或者简单地说,你不能掌握javascript的执行顺序,那你就犹如伯乐驾驭不了千里马,让千里马脱缰而出,四处乱窜。   那么JavaScript是怎么来进行解析的吗?它的执行顺序又是如何的呢?在了解这些之前,我们先来认识几个重要的术语:   1、代码块    JavaScript中的代码块是指由<script>标签分割的代码段。 例如: 1 2 3 4 5 6 <script type= "text/javascript" > alert( "这是代码块一" ); </script> <script type= "text/javascript" > alert( "这是代码块二" ); </script>    JS是按照代码块来进行编译和执行的,代码块间相互独立,但变量和方法共享。 什么意思呢? 举个例子,你就明白了: 1 2 3 4 5 6 7 8 9 <script type= "text/javascript" > alert(str); //因为没有定义str,所以浏览器会出错,下面的不能运行 alert( "我是代码块一" ); //没有运行到这里 var test =