代码实践

闭包举例:

function closure(){var innerVariable = 'inner';function innerFn(){    return innerVariable;}return innerFn();
}
var innerVariable = 'defined in outer';
var outerVariable = closure();
console.log(outerVariable);

测试字符串是否回文:

function testString(testString){var length = testString.length;for(var i = 0; i <= (length-1)/2;i++){if(testString[i] !== testString[length - 1 - i]){return false;}}return true;
}

 

var isPalindrome = function(testString){var length = testString.length;var splittedArray = testString.split('');return splittedArray.join() == splittedArray.reverse().join();
}console.log(isPalindrome('1221'));
console.log(isPalindrome('1344'))

 

var isPalindrome = function(testString){var length = testString.length;for(var i = length - 1,j=0; i >= 0;i--){
     if(i <= j){
      return true;
     }
if(testString[i] == testString[j++]){continue;}else{return false; } }return true; }console.log(isPalindrome('121')) console.log(isPalindrome('1221')) console.log(isPalindrome('1234'))

 

function isPalindrome(testString){var reversedString = '';for(var i = testString.length; i >= 0; i-- ){reversedString += testString.charAt(i);}if(reversedString == testString){return true;}else{return false;}
}console.log(isPalindrome('121'));
console.log(isPalindrome('1213'));

 

数组去重:

function uniqueArray(array){
var isArray = function(array){
var isArray = Object.prototype.toString.call(array) == "[object Array]";
if(isArray){
console.log(array + ' is an array');
}
else{
console.log(array + ' is not an array');
}
return isArray;
}
if(!!isArray(array)){
var length = array.length;
for(var i = length - 1; i >=0; i--){
if(i == 0){
continue;
}
for(var j = i - 1; j>=0;j--){
if(array[j] == array[i]){
console.log(array[j]);
array.splice(j,1);
}
console.log(array)
}
}
console.log(array);
return array;
}else{
return null;
}
}var testArray = [12,123,34,12];
testArray = uniqueArray(testArray);
console.log(testArray)

 

Curry Function:

function curry(fn,arg1,arg2){
var toArray = function(args,n){return Array.prototype.slice.call(args,n);}
var requiredArgsLength = fn.length;
console.log('requiredArgsLength:' + requiredArgsLength);
if((arguments.length - 1) < requiredArgsLength){
console.log('lack of arguments'); 
var partialArgs = toArray(arguments,1);
console.log(partialArgs);
return function(){
var args = partialArgs.concat(toArray(arguments,0));
console.log('completeArgs:' + args);
return fn.apply(null,args);
}
}
else{
return fn.apply(null,toArray(arguments,1));}
}function add(arg1,arg2){
return arg1 + arg2;
}
console.log(curry(add,4,5))
var curriedFn = curry(add,4);
curriedFn(5)

 

Fibnacci:

function fib(n){if(n==1 || n ==0) {return n;} else{return n*fib(n-1)}}

 

//indexof test

var testNum = 9;

~testNum + 1 == -testNum;

 

 

查找特定tag:

function tagCounter(tagName){
switch(tagName.toLowerCase()){
case 'p': return document.getElementsByTagName('p');
case 'a': return document.getElementsByTagName('a');
}
}

实现继承:

var parent = function(){this.parentName = 'parent';}
var child = function(){this.childName = 'child'}
child.prototype = new parent();
var childInstance = new child();
childInstance.childName
childInstance.parentName
childInstance.__proto__ instanceof parent

 

闭包:


function outerFunction(){
var innerValue = 10;
return function(){
return innerValue;
}
}

var outerValue = outerFunction()();
console.log(outerValue);

利用构造函数实现继承:

var parentObject = {parentName:'parent'}
var childObject = {childName: 'child'}
var tempFunction = function(){}
tempFunction.prototype = parentObject
childObject = new tempFunction
childObject.parentName

比较对象是否相等:

function isEqualObject(src,obj){
var srcJSONString = JSON.stringify(src)
var objJSONString = JSON.stringify(obj)
if(!( (/:/.test(srcJSONString)).length == (/:/.test(objJSONString)).length){return false;}
if(keys(src) != keys(obj)){
return false;
}
for(var i in src){ if(src[i] == obj[i]){ continue;} else{return false}} return true;
}function keys(obj){
var keysArray = [];
for(var i in obj){
if(obj.hasOwnProperty(i)){
keysArray.push(i)
}
else{continue;}
}
}

underscorejs自己实现:

function delay(fn,milliseconds){setTimeout(fn,milliseconds)}

多态:

function multiple(){
if(arguments.length == 0){
console.log('please provide params');
return false;
}
else if(arguments.length == 1){
return arguments[0]
}
else if(arguments.length == 2){
return arguments[0]+ arguments[1]
}
}

console.log(multiple())
console.log(multiple(2))
console.log(multiple(2,3))

 

throttled Version:

var clickHandler = function(e){console.log(e);console.log(new Date())}

var throttledClickHandler = _.throttle(clickHandler,2000)

window.addEventListener('click',throttledClickHandler)

 

debounce version:

var clickHandler = function(e){console.log(new Date())}

var debouncedClickHandler = _.debounce(clickHandler,2000)

window.addEventListener('click',debouncedClickHandler)

 

extend example:

 

var testPropertyObject = {name:'test'}
var targetObject = {testProperty:testPropertyObject}
var destinationObject = _.extend(targetObject,{extendProperty:'extended'})
destinationObject.testProperty == testPropertyObject
destinationObject.testProperty === testPropertyObject

绑定多个事件:

$('.noresult').on({'click':function(e){console.log('click')},'touchstart':function(e){console.log('touchStart')}})

 

取消多个事件的绑定:

$('.noresult').on('touchstart',function(e){console.log('touchstart')})

$('.noresult').on('click',function(e){console.log('click')})

$('.noresult').off(['click','touchstart'])

转载于:https://www.cnblogs.com/social/p/4325226.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 读取excel太慢_Python 读取excel并转换为字典

方法一&#xff1a;利用利用xlrd读取excel文件其实整个过程比较简单&#xff0c;利用xlrd读取excel文件&#xff0c;再把读取到的数据转换为dict即可。1.安装 xlrdpip install xlrd2.读取文件&#xff0c;并进行格式转换导入的excel表格的格式是这样的&#xff1a;解析后的格式…

windows上编译zlib-1.2.8

MSVC编译 使用VS&#xff08;x86&#xff09;命令行工具进入到zlib根目录&#xff0c;执行 nmake -f win32/Makefile.msc ,在根目录下生成&#xff1a;zlib.lib(静态库) zdll.lib(动态库的导入库) zlib1.dll(动态库) 。必要的头文件有zlib.h和zconf.h 默认生成的是release版的…

大表与大表join数据倾斜_技术分享|大数据技术初探之Spark数据倾斜调优

侯亚南数据技术处支宸啸数据技术处在大数据计算中&#xff0c;我们可能会遇到一个很棘手的问题——数据倾斜&#xff0c;此时spark任务的性能会比预期要差很多&#xff1a;绝大多数task都很快执行完成&#xff0c;但个别task执行极慢或者报OOM(内存溢出)。数据倾斜调优&#xf…

NYOJ 289 苹果(01背包)

苹果 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;3描述ctest有n个苹果&#xff0c;要将它放入容量为v的背包。给出第i个苹果的大小和价钱&#xff0c;求出能放入背包的苹果的总价钱最大值。 输入有多组测试数据&#xff0c;每组测试数据第一…

磁盘剩余空间策略_MySQL磁盘消耗迅猛掌握这点就够了,包你事半功倍

Part1:写在最前当一张单表10亿数据量的表放在你面前&#xff0c;你将面临着什么&#xff1f;Part2:背景介绍为了提升数据库资源利用率&#xff0c;一个实例中&#xff0c;在不互相影响&#xff0c;保证业务高效的前提下&#xff0c;我们会将同一个大业务下的不同小业务放在一个…

Date Picker控件:

Date Picker控件&#xff1a; 中文&#xff1a;日期/时间选取器UIDatePicker有一个实例方法setDate:animated&#xff0c;以编程的方式选择日期。UIDatePicker有四种模式&#xff08;model&#xff09;&#xff1a;Time&#xff08;只选时间&#xff09;Date&#xff08;只选日…

logback日志pattern_@Slf4j 实现日志输入到外部文件

添加一个配置文件\src\main\resources\logback-spring.xml<?xml version"1.0" encoding"UTF-8"?><configuration scan"true" scanPeriod"10 seconds"> <contextName>logbackcontextName> <prope…

C++ Prime:sizeof运算符

sizeof运算符的结果部分地依赖于其作用的类型&#xff1a; 对char或者类型为char的表达式执行sizeof运算结果得1&#xff1b; 对引用类型执行sizeof运算得到被引用对象所占空间的大小&#xff1b; 对指针执行sizeof运算得到指针本身所占空间的大小&#xff1b; 对解引用指针执行…

前驱和后驱什么意思_为什么只有豪车才敢用后驱

为什么只有豪车才敢用后驱https://www.zhihu.com/video/1156959599864147968一般的家用车&#xff0c;基本上都是前驱为主&#xff0c;前驱够用&#xff0c;成本还低。但前驱满足不了豪华车的运动需求&#xff0c;所以豪华车后驱才是王道。有人这个时候肯定要跳出来不服了&…

leetcode 第五题 Longest Palindromic Substring (java)

Longest Palindromic Substring Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. time255ms accepted 暴力遍历 public String longes…

思科光传输功率查询_常见的6款40G QSFP+光模块型号介绍及应用

近些年来&#xff0c;云计算和大数据在我国兴起一股热潮&#xff0c;为了提供足够的带宽&#xff0c;许多接入交换机已经发展到可以连接40G以太网的核心交换机。互连数据传输的快速发展&#xff0c;离不开40G光模块&#xff0c;因为它可以提供足够的带宽&#xff0c;以确保数据…

sigquit信号默认忽略吗_老妹儿,你真的搞懂了 Shell 信号吗?

作者&#xff1a;李振良OK链接&#xff1a;https://blog.51cto.com/lizhenliang/1899347哈喽&#xff0c;各位新来的小伙伴们&#xff0c;大家好&#xff01;由于公众号做了改版&#xff0c;为了保证公众号的资源能准时推送到你手里&#xff0c;大家记得将咱们的公众号 加星标置…

wget 命令用法详解

wget是在Linux下开发的开放源代码的软件&#xff0c;作者是Hrvoje Niksic&#xff0c;后来被移植到包括Windows在内的各个平台上。它有以下功能和特点&#xff1a; &#xff08;1&#xff09;支持断点下传功能&#xff1b;这一点&#xff0c;也是网络蚂蚁和FlashGet当年最大的卖…

datetimepicker不可以选择当天之前_专访吴京:网上《战狼3》的消息我都不知道,大家可以选择不信...

搜狐娱乐讯 (哈麦/文)在2017爆火的《战狼2》之后&#xff0c;吴京演了《祖宗十九代》《流浪地球》《老师好》《银河补习班》《攀登者》《我和我的祖国》《我和我的家乡》《金刚川》八部电影&#xff0c;但是计划中的《战狼3》一直没有动静。不过&#xff0c;关于《战狼3》&…

机器人蛮王_盖伦:吊打我老婆,蛮王:我也是,他:被老婆打的不敢出塔

相遇就是缘分&#xff0c;你点开了我的文章&#xff0c;小编感到万分荣幸&#xff0c;感谢各位朋友。既然看到了我的文章&#xff0c;就说明我们还是有缘&#xff0c;希望大家可以帮我点点左上角的蓝色字体&#xff0c;小编给大家鞠躬了&#xff01;LOL如此好玩的原因&#xff…

栈 详解

官方定义是这样的&#xff1a;栈&#xff08;Stack&#xff09;是一个后进先出的线性表&#xff0c;它要求只在表尾进行删除和插入操作。 栈是一种重要的线性结构&#xff0c;可以这样讲&#xff0c;栈是线性表的一种具体表现形式&#xff0c;但是它在操作上有一些特殊的要求和…

android serialport new 软件退出_基于Android9.0,了解Android启动流程

先记住四个进程和三种方式。**四个进程**1.Launcher进程2.system_server进程3.App进程4.Zygote进程**三种方式**1.Binder方式2.Socket方式3.Handler方式点击桌面APP图标&#xff0c;Launcher调用startActivitySafely&#xff08;Launcher进程&#xff09;java/*** Default laun…

Objective-C 学习笔记

超类 即父类&#xff0c;通过 [super setName: "a"] 可以调用超类方法 复合 是指一个对象由其他多个对象组成 对象初始化 interface Car : NSObject (Engine *engine; ) endimplementation Car - (id) init {  //因init方法可能返回不同的对象&#xff0c;所以需要…

【转】使用命令行方式创建和启动android模拟器

原文网址&#xff1a;http://blog.csdn.net/tiandinilv/article/details/8953001 1、Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的移动设备。Android的模拟器是基于QEMU开发的&#xff0c;QEMU是一个有名的开源虚拟机项目&#xff08;详见http://bellard.org/qem…

centos7限制cpu使用_Linux系统进程CPU使用率限制脚本

一、背景近日在客户系统运维中发现&#xff0c;有系统在定时脚本执行期间会将Linux系统CPU利用率跑满&#xff0c;导致其他服务受到影响&#xff0c;故查阅资料发现有大神写的CPU利用率限制程序。地址&#xff1a;CPU Usage Limiter for Linux根据此编写脚本&#xff0c;配合定…