今天小編要跟大家分享的文章是關(guān)于Web前端工程師要掌握的JavaScript代碼片段(一)。正在從事web前端工作的小伙伴們來和小編一起看一看吧,希望本篇文章能夠?qū)φ趶氖聎eb前端工作的小伙伴們有所幫助。
專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)南和免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
1、Anagramsofstring(帶有重復(fù)項(xiàng))
使用遞歸。對(duì)于給定字符串中的每個(gè)字母,為字母創(chuàng)建字謎。使用map()將字母與每部分字謎組合,然后使用reduce()將所有字謎組合到一個(gè)數(shù)組中,最基本情況是字符串長(zhǎng)度等于2或1。
constanagrams=str={
if(str.length[str];
returnstr.split('').reduce((acc,letter,i)=
acc.concat(anagrams(str.slice(0,i)+str.slice(i+1)).map(val=
letter+val)),[]);
};
//anagrams('abc')-['abc','acb','bac','bca','cab','cba']
2、數(shù)組平均數(shù)
使用reduce()將每個(gè)值添加到累加器,初始值為0,總和除以數(shù)組長(zhǎng)度。
constaverage=arr=arr.reduce((acc,val)=acc+val,0)/
arr.length;
//average([1,2,3])-2
3、大寫每個(gè)單詞的首字母
使用replace()匹配每個(gè)單詞的第一個(gè)字符,并使用toUpperCase()來將其大寫。
constcapitalizeEveryWord=str=str.replace(/\b[a-z]/g,char=
char.toUpperCase());
//capitalizeEveryWord('helloworld!')-'HelloWorld!'
4、首字母大寫
使用slice(0,1)和toUpperCase()大寫第一個(gè)字母,slice(1)獲取字符串的其余部分。省略lowerRest參數(shù)以保持字符串的其余部分不變,或?qū)⑵湓O(shè)置為true以轉(zhuǎn)換為小寫。(注意:這和上一個(gè)示例不是同一件事情)
constcapitalize=(str,lowerRest=false)=
str.slice(0,1).toUpperCase()+(lowerRest?str.slice(1).toLowerCase():
str.slice(1));
//capitalize('myName',true)-'Myname'
5、檢查回文
將字符串轉(zhuǎn)換為toLowerCase(),并使用replace()從中刪除非字母的字符。然后,將其轉(zhuǎn)換為tolowerCase(),將('')拆分為單獨(dú)字符,reverse(),join(''),與原始的非反轉(zhuǎn)字符串進(jìn)行比較,然后將其轉(zhuǎn)換為tolowerCase()。
constpalindrome=str={
consts=str.toLowerCase().replace(/[\W_]/g,'');
returns===s.split('').reverse().join('');
}
//palindrome('tacocat')-true
6、計(jì)數(shù)數(shù)組中值的出現(xiàn)次數(shù)
每次遇到數(shù)組中的特定值時(shí),使用reduce()來遞增計(jì)數(shù)器。
constcountOccurrences=(arr,value)=arr.reduce((a,v)=v===
value?a+1:a+0,0);
//countOccurrences([1,1,2,1,2,3],1)-3
7、當(dāng)前URL
使用window.location.href來獲取當(dāng)前URL。
constcurrentUrl=_=window.location.href;
//currentUrl()-''
8、Curry
使用遞歸。如果提供的參數(shù)(args)數(shù)量足夠,則調(diào)用傳遞函數(shù)f,否則返回一個(gè)curried函數(shù)f。
constcurry=(fn,arity=fn.length,...args)=
arity
?fn(...args)
:curry.bind(null,fn,arity,...args);
//curry(Math.pow)(2)(10)-1024
//curry(Math.min,3)(10)(50)(2)-2
9、Deepflattenarray
使用遞歸,使用reduce()來獲取所有不是數(shù)組的元素,flatten每個(gè)元素都是數(shù)組。
constdeepFlatten=arr=
arr.reduce((a,v)=a.concat(Array.isArray(v)?deepFlatten(v):v),
[]);
//deepFlatten([1,[2],[[3],4],5])-[1,2,3,4,5]
10、數(shù)組之間的區(qū)別
從b創(chuàng)建一個(gè)Set,然后在a上使用Array.filter(),只保留b中不包含的值。
constdifference=(a,b)={consts=newSet(b);returna.filter(x
=!s.has(x));};
//difference([1,2,3],[1,2])-[3]
11、兩點(diǎn)之間的距離
使用Math.hypot()計(jì)算兩點(diǎn)之間的歐幾里德距離。
constdistance=(x0,y0,x1,y1)=Math.hypot(x1-x0,y1-y0);
//distance(1,1,2,3)-2.23606797749979
12、可以按數(shù)字整除
使用模運(yùn)算符(%)來檢查余數(shù)是否等于0。
constisDivisible=(dividend,divisor)=dividend%divisor===0;
//isDivisible(6,3)-true
13、轉(zhuǎn)義正則表達(dá)式
使用replace()來轉(zhuǎn)義特殊字符。
constescapeRegExp=str=str.replace(/[.*+?^${}()|[\]\\]/g,
'\\$');
//escapeRegExp('(test)')-\\(test\\)
14、偶數(shù)或奇數(shù)
使用Math.abs()將邏輯擴(kuò)展為負(fù)數(shù),使用模(%)運(yùn)算符進(jìn)行檢查。如果數(shù)字是偶數(shù),則返回true;如果數(shù)字是奇數(shù),則返回false。
constisEven=num=num%2===0;
//isEven(3)-false
15、階乘
使用遞歸。如果n小于或等于1,則返回1。否則返回n和n-1的階乘的乘積。
constfactorial=n=n
//factorial(6)-720
16、斐波那契數(shù)組生成器
創(chuàng)建一個(gè)特定長(zhǎng)度的空數(shù)組,初始化前兩個(gè)值(0和1)。使用Array.reduce()向數(shù)組中添加值,后面的一個(gè)數(shù)等于前面兩個(gè)數(shù)相加之和(前兩個(gè)除外)。
constfibonacci=n=
Array(n).fill(0).reduce((acc,val,i)=acc.concat(i1?acc[i-
1]+acc[i-2]:i),[]);
//fibonacci(5)-[0,1,1,2,3]
17、過濾數(shù)組中的非唯一值
將Array.filter()用于僅包含唯一值的數(shù)組。
constfilterNonUnique=arr=arr.filter(i=arr.indexOf(i)===
arr.lastIndexOf(i));
//filterNonUnique([1,2,2,3,4,4,5])-[1,3,5]
18、Flatten數(shù)組
使用reduce()來獲取數(shù)組中的所有元素,并使用concat()來使它們flatten。
constflatten=arr=arr.reduce((a,v)=a.concat(v),[]);
//flatten([1,[2],3,4])-[1,2,3,4]
19、從數(shù)組中獲取最大值
使用Math.max()與spread運(yùn)算符(...)結(jié)合得到數(shù)組中的最大值。
constarrayMax=arr=Math.max(...arr);
//arrayMax([10,1,5])-10
20、從數(shù)組中獲取最小值
使用Math.min()與spread運(yùn)算符(...)結(jié)合得到數(shù)組中的最小值。
constarrayMin=arr=Math.min(...arr);
//arrayMin([10,1,5])-1
21、獲取滾動(dòng)位置
如果已定義,請(qǐng)使用pageXOffset和pageYOffset,否則使用scrollLeft和scrollTop,可以省略el來使用window的默認(rèn)值。
constgetScrollPos=(el=window)=
({x:(el.pageXOffset!==undefined)?el.pageXOffset:el.scrollLeft,
y:(el.pageYOffset!==undefined)?el.pageYOffset:el.scrollTop});
//getScrollPos()-{x:0,y:200}
22、最大公約數(shù)(GCD)
使用遞歸?;厩闆r是當(dāng)y等于0時(shí)。在這種情況下,返回x。否則,返回y的GCD和x/y的其余部分。
constgcd=(x,y)=!y?x:gcd(y,x%y);
//gcd(8,36)-4
23、Headoflist
返回ARR[0]
consthead=arr=arr[0];
//head([1,2,3])-1
24、list初始化
返回arr.slice(0,-1)
constinitial=arr=arr.slice(0,-1);
//initial([1,2,3])-[1,2]
以上就是小編今天為大家分享的關(guān)于Web前端工程師要掌握的JavaScript代碼片段(一)的文章,希望本篇文章能夠?qū)φ趶氖聎eb前端工作的小伙伴們有所幫助。想要了解更多web前端相關(guān)知識(shí)和想要了解后面的代碼片段的小伙伴,記得關(guān)注北大青鳥web培訓(xùn)官網(wǎng)。
a是字符串,怎么能運(yùn)算呢?用parseFloat將字符串轉(zhuǎn)化為浮點(diǎn)數(shù)再進(jìn)行計(jì)算。
具體修改如下:
var a = "62223.56";
var c = parseFloat(a) % 10000;
浮點(diǎn)型在內(nèi)存中并不一定就是按照想想中那樣保存的。
多多少少會(huì)有不同。不如說0.23在內(nèi)存中可能是以0.222222222229的形式保存的。或者是以0.230000000000000001的形式保存的。這種現(xiàn)象目前我還不知道怎么避免。但是用浮點(diǎn)型有可能就會(huì)產(chǎn)生這樣的結(jié)果。
需要準(zhǔn)備的材料分別有:電腦、html編輯器、瀏覽器。
1、首先,打開html編輯器,新建html文件,例如:index.html。
2、以100和3為例,在index.html中的script標(biāo)簽,輸入js代碼:
var a = 100, b = 3;
if (a % b === 0) {
document.body.innerText = a + '能被' + b + '整除';
} else {
document.body.innerText = a + '不能被' + b + '整除';
}
3、瀏覽器運(yùn)行index.html頁面,此時(shí)打印出了兩個(gè)數(shù)是否整除的結(jié)果。
既然是被整除,應(yīng)該有至少2個(gè)數(shù)吧。既然你沒有代碼我就假設(shè)是x除以y(x/y)了。
然后你在script中用x%y,如果結(jié)果是0,則表示能被整除,如果不等于0那么就不能被整除。
這個(gè)其實(shí)和jquery沒什么大關(guān)系,不過如果你的2個(gè)值(x、y)需要用jquery獲取的話,那可能和jquery有點(diǎn)關(guān)系而已。
具體例子如下:
html
head
script
function aa(){
var x = $("#xxx").val();
var y = $("#yyy").val();
var z = x%y
if(z == 0){ //余數(shù)為0就代表能被整除
alert("可以被整除");
}else if(y == 0){
alert("非法,除數(shù)不能為0?。?!");
}else{
alert("不能被整除");
}
}
/script
/head
body
注:例:8÷2=4則2為除數(shù)。8為被除數(shù)。
被除數(shù)input type="text" value="" id="xxx"/
除數(shù)input type="text" value="" id="yyy"/
input type="button" value="計(jì)算" onclick="aa()"/
/body
/html
jQuery是一個(gè)快速、簡(jiǎn)潔的JavaScript框架,是繼Prototype之后又一個(gè)優(yōu)秀的JavaScript代碼庫(或JavaScript框架)。jQuery設(shè)計(jì)的宗旨是“write Less,Do More”,即倡導(dǎo)寫更少的代碼,做更多的事情。它封裝JavaScript常用的功能代碼,提供一種簡(jiǎn)便的JavaScript設(shè)計(jì)模式,優(yōu)化HTML文檔操作、事件處理、動(dòng)畫設(shè)計(jì)和Ajax交互。
jQuery的核心特性可以總結(jié)為:具有獨(dú)特的鏈?zhǔn)秸Z法和短小清晰的多功能接口;具有高效靈活的css選擇器,并且可對(duì)CSS選擇器進(jìn)行擴(kuò)展;擁有便捷的插件擴(kuò)展機(jī)制和豐富的插件。jQuery兼容各種主流瀏覽器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。
你先把這兩個(gè)數(shù)的商保存在一個(gè)變量里面,然后在將這個(gè)變量取一下整parseint(),在用這個(gè)數(shù)和被除數(shù)相乘看看是不是等于除數(shù)