本文详细介绍JavaScript中Math和String内置对象的核心用法。涵盖Math的取整、极值、随机数生成及封装方法,以及String的索引查找、字符获取、子串截取、替换与分割等操作,附带完整代码示例。
Math对象
JavaScript内置的数学对象并非构造函数,因此无需使用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)) 向上取整 结果 2Math对象获取随机数
Math.random():无需参数,返回一个介于0(包含)到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对象
string.indexOf('xx'):查找子串'string'中第一次出现'xx'的索引值。可传入第二个参数指定从哪一处开始向后查询,也可结合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))
// HTML5 新增特性
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内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!