js内置数学对象 不是一个构造函数 所以不需要使用new来调用 而是直接使用里面的属性和方法即可
代码演示 顺便封装一个建议的取最大最小值的函数
- 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.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)
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
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())// 全部大写