首頁 > 軟體

JavaScript內建物件Math與String詳細介紹

2022-08-30 18:02:48

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內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com