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