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内容请搜索阿兔在线工具以前的文章或继续浏览下面的相关文章希望大家以后多多支持阿兔在线工具!