JavaScript內置對象Math與String詳細介紹
Math對象
js內置數學對象 不是一個構造函數 所以不需要使用new來調用 而是直接使用裡面的屬性和方法即可
- Math.PI 圓周率
- Math.floor 向下取整 小數點直接省略
- Math.ceil 向上取整 有小數點直接+1
- Math.round 四舍五入 就近原則(-1.5 結果是 -1)
- Math.abs() 絕對值就是這數字到原點(0)的距離有隱式轉換 會把字符串轉成數字 不是數字的字符串NaN
- Math.max() 最大值 Math.min() 最小值 要傳入要比較的參數(數組) 其中有 非數字的 就返回NaN 不寫參數直接返回Infinity-無窮大 -Infinity-負的無窮大
代碼演示 順便封裝一個建議的取最大最小值的函數
console.log(Math.PI) // 一個屬性 圓周率 console.log(Math.max(1,2,3)) // 其中有 非數字的 是NaN console.log(Math.max()) // -Infinity 什麼都沒有 負的無窮大 var myMath = { PI:Math.PI, max:function(){ var max = arguments[0] for(var i = 0;i < arguments.length;i++){ if(max < arguments[i]){ max = arguments[i] } } return max }, min:function(){ var min = arguments[0] for(var i = 0;i < arguments.length;i++){ if(min > arguments[i]){ min = arguments[i] } } return min } } console.log(myMath.PI) 圓周率 console.log(myMath.max(-1,5,0)) 5 console.log(myMath.min(-1,5,0)) -1 console.log(Math.floor(1.9)) 向下取整 結果 1 console.log(Math.ceil(1.1)) 向上取整 結果 2
Math獲取隨機數
Math.random() 不用填寫參數 對象隨機數方法 返回一個隨機的小數 0 =< x <1
官方推薦寫法得到兩個數之間的隨機整數 並且包括這兩個數
Math.floor(Math.random() * (max – min +1)) +min
console.log(Math.random()) function getRandom(min,max){ return Math.floor(Math.random() * (max - min +1)) +min; } // 隨機點餐 var food = [ '烤肉飯', '懷府源拉面', '相思味快餐', '清風炒面', '燴面', '餄烙面', '麻辣香鍋', '山西刀削面', '哨子面', '蜀蜀的粉', '旋轉小火鍋', '小過道快餐', '美團雙人餐', '油潑面', ] console.log("明天中午吃" + food[getRandom(0,food.length-1)]) // 三次機會猜牌點 function getRandom(min,max){ return Math.floor(Math.random() * (max - min +1)) +min; } var num = getRandom(1,13) var i = 0 while(i<3){ var aaa = prompt("猜猜是哪一張撲克牌(1-13)") if(aaa > num){ alert("猜大瞭") }else if(aaa < num){ alert("猜小瞭") }else if(aaa = num){ alert("猜對瞭") break } i++; } if(i >= 3){ alert('三次機會已經用完') } console.log("答案是"+num) console.log("你猜的結果"+aaa)
String對象
srting.indexOf('xx'):查找xx在string 第一次出現的索引值 可傳入第二個參數 從被檢索的哪一處開始向後查詢 可以使用while 循環 進行字段 全部檢索
var article = "後購玉者引眾人評理,眾人皆言二人有約不守,有言無信。\n匠人自覺面頰臊熱,躬身拱手曰:餘琢玉十七載,未嘗失信於人,此玉誓死必琢之!\n青年雖有苦卻難言,憤然離席曰:吾借刀筆,撰雕玉之文以明心志,告辭!\n眾購玉者重金求玉而不得,遭人恥笑,胸中大悲,不能自已。\n今人評曰:玉不琢,不成器。人無信不立,業無信不興。\n二人背信毀約,購玉者何錯之有?\n世人籲二人冰釋前嫌,合力琢玉成器,棠玉既成,以約交付,方為正道。\n匠人攜青年,青年助匠人,顧百姓之安危,救民眾於水火,創絕世之佳作,流芳百世!" console.log(article) var index = article.indexOf("青年"),index2 = article.indexOf("匠人") var appear1 = [],appear2 = [] while(index !== -1){ appear1.push(index) index = article.indexOf("青年",index+1) } console.log("青年出現瞭" +appear1.length + "次") console.log("分別在" + appear1) while(index2 !== -1){ appear2.push(index2) index2 = article.indexOf("匠人",index2+1) } console.log("匠人出現瞭" +appear2.length + "次") console.log("分別在" + appear2)
// 根據位置返回字符
console.log(article.charAt(156))
// ASCII 碼 鍵盤對應的碼 判斷用戶按下瞭哪一個鍵
console.log(article.charCodeAt(156))
// H5 新增
console.log(article[99])
// 文中出現最多的字符串
var o ={}
for(var i = 0;i<article.length;i++){
var chars = article.charAt(i)
if(o[chars]){
o[chars]++
}else{
o[chars] = 1
}
}
console.log(o)
//2. 遍歷對象
var max = 0
var ch = ""
for(var k in o){
// k 得到的是 屬性名
// o[k] 得到的是屬性值
if(o[k] > max){
max = o[k]
ch = k
}
}
console.log("出現次數最多是" + ch +"它出現瞭" + max + "次")
// 字符串的拼接和截取 var myName = "wusonggang" console.log(myName.concat("WEB")) // 一般用加號多一些 // 2.substr(起始的位置,要截取的長度) console.log(article.substr(84,10)) // 3.slice(起始的位置,截取最後的位置) console.log(article.slice(129,199)) // 3.substring(起始的位置,截取最後的位置) console.log(article.substring(77,111)) // 替換字符 console.log(article.replace("青年","JAVD")) // 隻會替換第一個 // 用 條件判斷 全部替換 while(article.indexOf("匠人") !== -1){ article = article.replace("匠人","阿鋼") } console.log(article) // 字符轉換為數組 split('分隔符') 和join 對應 var str7 = "red,pink,black" console.log(str7.split(",")) var str8 = "red&pink&black" console.log(str8.split("&")) var str9 = "WuSongGang" console.log(str9.toLowerCase())// 全部小寫 console.log(str9.toUpperCase())// 全部大寫
到此這篇關於JavaScript內置對象Math與String詳細介紹的文章就介紹到這瞭,更多相關JS Math與String內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- JavaScript的內置對象Math和字符串詳解
- JS字符串分割方法整理匯總示例講解(3種截取方法和6個輔助方法)
- JavaScript中隨機數方法 Math.random()
- JS截取字符串的三種方法詳解
- 利用JavaScript為句子加標題的3種方法示例