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