摘要:基礎(chǔ)知識(shí)數(shù)據(jù)類型轉(zhuǎn)換把其它數(shù)據(jù)類型轉(zhuǎn)換為類型在進(jìn)行加減乘除數(shù)學(xué)運(yùn)算的時(shí)候引用數(shù)據(jù)類型轉(zhuǎn)換數(shù)字通過(guò)方法把數(shù)組轉(zhuǎn)換為字符串,然后在調(diào)用把字符串轉(zhuǎn)換為數(shù)字中的數(shù)學(xué)運(yùn)算加減乘除除了加法有特殊性,其余的運(yùn)算符都是數(shù)學(xué)運(yùn)算,也就
JS基礎(chǔ)知識(shí) JavaScript 數(shù)據(jù)類型轉(zhuǎn)換
把其它數(shù)據(jù)類型轉(zhuǎn)換為number類型
isNaN 、Number、parseInt、parseFloat在進(jìn)行加減乘除數(shù)學(xué)運(yùn)算的時(shí)候
true->1 false->0 ""->0 "12"->12 "12px"->NaN/12 "candy"->NaN null->0 undefined-NaN {} /^$/ function(){}->NaN []->""->0 //=>引用數(shù)據(jù)類型轉(zhuǎn)換數(shù)字 //通過(guò)toString方法把數(shù)組轉(zhuǎn)換為字符串,然后在調(diào)用Number把字符串轉(zhuǎn)換為數(shù)字
JS中的數(shù)學(xué)運(yùn)算
+、-、*、/ 加減乘除除了加法有特殊性,其余的運(yùn)算符都是數(shù)學(xué)運(yùn)算,也就是遇到非數(shù)字類型,需要把其轉(zhuǎn)換為number在進(jìn)行運(yùn)算
加法的特殊性:
在遇到字符串的時(shí)候,+不是數(shù)學(xué)運(yùn)算,而是字符串拼接,只要不遇到字符串就是數(shù)學(xué)運(yùn)算
1-"1"->0; 10*null->0; 10/undefined ->NaN 10*[10]->100 1+"1"->"11" null+"1"->"null1" //=>字符串拼接:是把其它的值轉(zhuǎn)換為字符串然后在拼接 (toString) //=>其他數(shù)據(jù)類型的toString是直接的把值用單(雙)引號(hào)包起來(lái)即可,只有對(duì)象的有特殊性,對(duì)象.toString()==="[Object Object]" 1+null+undefined+[]+"candy"+null+undefined+[]+10 /* 1+null->1 1+true->2 2+undefined->NaN NaN+[]->NaN+""->"NaN" "NaN"+"candy->"NaNcandy" ... NaNCandynullundefined10 */
將其它數(shù)據(jù)類型轉(zhuǎn)換為布爾類型
Boolean、!、!!在條件判斷的時(shí)候,也是轉(zhuǎn)換為布爾類型,然后驗(yàn)證條件的真假
只有0、NaN、空字符串、null、undefined五個(gè)轉(zhuǎn)換為false,其余的都轉(zhuǎn)換為true
[]->true -1->true if(box){ //=>首先把box變量存儲(chǔ)的值獲取到,轉(zhuǎn)換為布爾類型,如果為true條件成立,反之不成立 } if(3+"3px"){ //=>條件成立 } if(3-"3px"){ //=>條件不成立:3-"3px"=NaN }
在使用==進(jìn)行比較的時(shí)候
在使用==進(jìn)行比較的時(shí)候,如果左右兩邊數(shù)據(jù)類型不相同,瀏覽器會(huì)默認(rèn)轉(zhuǎn)換為相同的類型,然后在比較(===不會(huì)這樣操作)
//=>對(duì)象和對(duì)象:比較的是空間地址,不是相同的空間,結(jié)果肯定是false []==[]->false var a={}; var b=a; a==b;=>true; //=>對(duì)象和數(shù)字:把對(duì)象轉(zhuǎn)換為數(shù)字 []==0->true ({})==NaN->false //NaN和自己不相等和其它任何值都不相等 //=>對(duì)象和字符串:把兩邊都轉(zhuǎn)換為數(shù)字比較的 []==""->true //=>對(duì)象和布爾:把兩邊都轉(zhuǎn)換數(shù)字 []==true//->0==1->false []==false//->0==0->true ![]==false//->![]把數(shù)組變?yōu)椴紶栐谌》?false->false==false->true //=>字符串和數(shù)字:字符串轉(zhuǎn)換為數(shù)字 //=>字符串和布爾:都轉(zhuǎn)為數(shù)字 //=>布爾和數(shù)字:布爾轉(zhuǎn)換為數(shù)字 //=>規(guī)律:兩個(gè)等號(hào)比較,左右兩邊數(shù)據(jù)值的類型不一樣,瀏覽器會(huì)把兩邊的類型都轉(zhuǎn)換為數(shù)字然后再比較,但是null和undefined除外 null==undefined->true nul===undefined->false null==0 ->false //null以及undefined和其它任何值都不相等Math中的常用方法
數(shù)學(xué)函數(shù):但是它是對(duì)象數(shù)據(jù)類型的
typeof Math->"object"
Math對(duì)象中給我們提供了很多常用操作數(shù)字的方法
console.dir(Math)查看所有方法
abs
Math.abs:取絕對(duì)值
Math.abs(12)->12 Math.abs(-12)->12
ceil/floor
Math.ceil:向上取整
Math.floor:向下去整
Math.ceil(12)->12 Math.ceil(12.1)->13 Math.ceil(12.9)->13 Math.ceil(-12.9)->-12 Math.ceil(-12.1)->-12 Math.floor(12)->12 Math.floor(12.1)->12 Math.floor(12.9)->12 Math.floor(-12.9)->-13 Math.floor(-12.1)->-13
round
Math.round:四舍五入
Math.round(12.3)->12 Math.round(12.5)->13 正數(shù)中5包含在向上 Math.round(-12.3)->-12 Math.round(-12.5)->-12 負(fù)數(shù)中5包含在向下 Math.round(-12.51)->-13
random
Math.random:獲取(0,1)之間的隨機(jī)小數(shù)
for(var i=0;i<100;i++){ console.log(Math.random()); } //=>需求:獲取[0,10]之間的隨機(jī)整數(shù) Math.round(Math.random()*10) //=>需求:獲取[1,10]之間的隨機(jī)整數(shù) Math.ceil(Math.random()*10)) //=>需求:獲取[3,15]之間的隨機(jī)數(shù) Math.round(Math.random()*12+3)
獲取[n,m]之間的隨機(jī)整數(shù)
Math.round(Math.random()*(m-n)+n)
max/min
Math.max(12,23,25);->25 Math.min(12,23,25);->12
PI
Math.PI->3.141592653589793
pow/sqrt
Math.pow:獲取一個(gè)值的多少次冪Math.sqrt:開(kāi)平方
Math.pow(10,2)->100 Math.sqrt(100)->10
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/95696.html
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
摘要:有興趣的同學(xué)可以查看之前發(fā)布的文章學(xué)習(xí)系列一學(xué)習(xí)實(shí)踐筆記附學(xué)習(xí)系列二學(xué)習(xí)實(shí)踐筆記附學(xué)習(xí)系列三和網(wǎng)絡(luò)傳輸相關(guān)知識(shí)的學(xué)習(xí)實(shí)踐學(xué)習(xí)系列四打包工具的使用學(xué)習(xí)系列五從來(lái)聊聊學(xué)習(xí)系列項(xiàng)目地址項(xiàng)目暫時(shí)有點(diǎn)亂,之后會(huì)進(jìn)行整理優(yōu)化。 上次學(xué)習(xí)了vue-router的使用,讓我能夠在各個(gè)頁(yè)面間切換,將頁(yè)面搭建了起來(lái)。這次則要學(xué)習(xí)vue的狀態(tài)管理模式——vuex。它類似于redux來(lái)應(yīng)用的全局狀態(tài)。 注:本...
摘要:更多資源請(qǐng)文章轉(zhuǎn)自月份前端資源分享的作用數(shù)組元素隨機(jī)化排序算法實(shí)現(xiàn)學(xué)習(xí)筆記數(shù)組隨機(jī)排序個(gè)變態(tài)題解析上個(gè)變態(tài)題解析下中的數(shù)字前端開(kāi)發(fā)筆記本過(guò)目不忘正則表達(dá)式聊一聊前端存儲(chǔ)那些事兒一鍵分享到各種寫(xiě)給剛?cè)腴T的前端工程師的前后端交互指南物聯(lián)網(wǎng)世界的 更多資源請(qǐng)Star:https://github.com/maidishike... 文章轉(zhuǎn)自:https://github.com/jsfr...
摘要:分開(kāi)配置的原因前端項(xiàng)目的開(kāi)發(fā)在開(kāi)發(fā)過(guò)程中和上線時(shí)需要的依賴是不同的,所以要求使用打包的時(shí)候要能夠在兩種情況下執(zhí)行不同的配置。在中的屬性中配置開(kāi)發(fā)打包命令和上線打包命令,指定不同的配置文件。 分開(kāi)配置的原因 前端項(xiàng)目的開(kāi)發(fā)在開(kāi)發(fā)過(guò)程中和上線時(shí)需要的依賴是不同的,所以要求使用webpack打包的時(shí)候要能夠在兩種情況下執(zhí)行不同的配置。帶來(lái)的好處是上線的項(xiàng)目不依賴開(kāi)發(fā)下的包,減少生產(chǎn)環(huán)境中所需...
摘要:因?yàn)楣ぷ髦幸恢痹谑褂?,也一直以?lái)想總結(jié)一下自己關(guān)于的一些知識(shí)經(jīng)驗(yàn)。于是把一些想法慢慢整理書(shū)寫(xiě)下來(lái),做成一本開(kāi)源免費(fèi)專業(yè)簡(jiǎn)單的入門級(jí)別的小書(shū),提供給社區(qū)。本書(shū)的后續(xù)可能會(huì)做成視頻版本,敬請(qǐng)期待。本作品采用署名禁止演繹國(guó)際許可協(xié)議進(jìn)行許可 React.js 小書(shū) 本文作者:胡子大哈本文原文:React.js 小書(shū) 轉(zhuǎn)載請(qǐng)注明出處,保留原文鏈接以及作者信息 在線閱讀:http://huzi...
閱讀 3546·2021-10-09 09:41
閱讀 2751·2021-10-08 10:18
閱讀 2188·2021-09-10 10:51
閱讀 2686·2021-09-10 10:50
閱讀 779·2021-09-09 09:33
閱讀 3386·2021-09-06 15:14
閱讀 3021·2019-08-30 11:06
閱讀 3251·2019-08-29 14:04