其他分享
首页 > 其他分享> > ECMA

ECMA

作者:互联网

保留小数位

Number.prototype.toFixed=function (d) { 
    var s=this+""; 
    if(!d)d=0; 
    if(s.indexOf(".")==-1)s+="."; 
    s+=new Array(d+1).join("0"); 
    if(new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+(d+1)+"})?)\\d*$").test(s)){
        var s="0"+RegExp.$2,pm=RegExp.$1,a=RegExp.$3.length,b=true;
        if(a==d+2){
            a=s.match(/\d/g); 
            if(parseInt(a[a.length-1])>4){
                for(var i=a.length-2;i>=0;i--){
                    a[i]=parseInt(a[i])+1;
                    if(a[i]==10){
                        a[i]=0;
                        b=i!=1;
                    }else break;
                }
            }
            s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");

        }if(b)s=s.substr(1); 
        return (pm+s).replace(/\.$/,"");
    }return this+"";

};
let a = 0.99456;
console.log(a.toFixed(3));

自增自减

<script>
          // 思考题:
        // var a = 1; 
        // var b = ++a + ++a; //2 + 3
        // console.log(b); // 5


        // var a = 1; 
        // var b = a++ + ++a; //1 + 3
        // console.log(b); //4   

        // var a = 1; 
        // var b = a++ + a++; //1 + 2
        // console.log(b); // 3  
        var a = 1; 
        var b = ++a + a++; //2 + 2
        console.log(b); // 4

        // 这个题目有技术含量的,自己下来练习
</script>

逻辑运算符

<script>
        // 练习1:
        var result = (4 >= 6 || '人' != '阿凡达' && !(12 * 2 == 144) && true);
        // false || true && true && true
        console.log(result);//true 

        // 练习2:
        var num = 10;
        var result2 = (5 == num / 2 && (2 + 2 * num).toString() === '22');
        // true && true
        console.log(result2);//true
</script>

闰年判断

var year = parseInt(prompt('请输入年份'));
ifyear % 4 == 0 && year % 100 != 0 || year % 100 == 0 && year % 400 == 0) {
    alert('是闰年');
} else {
    alert('是平年');
}

判断这一天是这一年的第几天

输入年月日,判断这一天是这一年的第几天1999/9/9
<script>
    function isYear(year) {			//判断平年闰年
        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
    }
    function getDay(year, month, day) {
        var days = day;			//储存对应参数
        if(month == 1) {		//判断输入月份是1直接返回天数
            return days;
        }
        var arr = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];//执行到这里,说明用户输入的不是一月份
        for(var i = 0; i < month - 1; i++) {
            days += arr[i];
        }
        if(isYear(year) && month > 2) {		//是否是闰年,只有超过2月份才加+1
            days++;
        }
        return days;
    }
    console.log(getDay(2002, 3, 2));
</script>

奇数偶数判断

var a = Number(prompt('请输入一个数字'));
if(a % 2 == 0) {
    alert('偶数');
} else {
    alert('奇数');
}

//计算1-100之间奇数和偶数的和			
//对比%2得偶数 加法这样可以在控制台打印出所有偶数跟奇数的数字
<script>
    var even = 2;			//偶数变量条件
    var odd = 1;			//奇数变量条件
    var sum_even = 0;		//偶数循环体
    var sum_odd = 0;		//偶数循环体
    while(even <= 100) {	//偶数循环条件
        sum_even += even;	//执行循环体
        even += 2;			//自增
    }
    while(odd <= 100) {		//奇数循环条件
        sum_odd += odd;		//执行循环体
        odd += 2;			//自增
    }
    console.log("1-100之间的奇数和是:" + sum_odd, "1-100之间偶数和是:" + sum_even);
</script>

if判断组合使用

var age = Number(prompt('请输入年龄'));
if(age >= 18 && age < 70) {
    alert('可以考取驾照');
} else {
    alert('年龄不符合要求');
}

判断成绩

if-else多条件分支

var score = Number(prompt('请输入成绩'));
if(score >= 90) {
    alert('S级');
} else if(score > 80 && score < 90) {
    alert('A级');
} else if(score > 70 && score < 80) {
    alert('B级');
} else if(score > 60 && score < 70) {
    alert('C级');
} else {
    alert("不及格");
}

BMI身体指数

BMI指数是用体重 除以 身高的平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的标准

BIM值 分档
低于18.5 过瘦
18.5~24 正常
24~28 过胖
28~32 肥胖
>=32 非常肥胖
<script>
    let weight = Number(prompt('请输入你的体重,以公斤为单位'));
    let height = Number(prompt('请输入你的身高,以米为单位'));
    //计算BMI身体指数  pow开方根
    let bmi = weight / Math.pow(height, 2);
    alert('您的BMI指数是' + bmi);
</script>

水仙花

水仙花数的个位、十位、百位的数字立方和等于原数

数字计算法
for(var i = 100; i < 1000; i++) {
    hundred = parseInt(i / 100);
    ten = parseInt(i / 10) % 10;
    individual = i % 10;
    if(hundred * hundred * hundred + ten * ten * ten + individual * individual * individual == i) {
        console.log(i);
    }
}

字符串计算法
<script>
    for(let i = 100; i <= 1000; i++) {
        var iStr = i.toString();
        let a = iStr.charAt(0);
        let b = iStr.charAt(1);
        let c = iStr.charAt(2);
        if(Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) {
            console.log(i);
        }
    }
</script>

游乐场门票

年龄大于等于10岁 年龄小于十岁
平日 300 140
周末 500 210
<script>
    let age = parseInt(prompt('请输入年龄'));
    let days = String(prompt('请输入星期几'));
    if(days.charAt(2) == '六' || days.charAt(2) == '天' || days.charAt(2) == '日') {
        if(age >= 10) {
            alert('门票价格为500元');
        } else {
            alert('门票价格为210元');
        }
    } else if(days.charAt(2) == '一' || days.charAt(2) == '二' || days.charAt(2) == '三' || days.charAt(2) == '四' || days.charAt(2) == '五') {
        if(age >= 10) {
            alert('门票价格为300元');
        } else {
            alert('门票价格为140元');
        }
    }
</script>

根据用户输入的月份显示对应的天数

(二月忽略平年闰年,直接默认28天)
var month = Number(prompt('请输入月份:'));
switch(month) {
    case 1:				复合写法,最后写执行代码块
    case 3:				对应数值
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        alert(month + '月有31天');
        break;
    case 2:
        alert(month + '月有28天');
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        alert(month + '月有30天');
        break;
    default:
        alert("你484撒?");
}

寻找100以内能被3整除,也能被5整除的数

<script>
    for(let i = 1; i < 100; i++) {
        if(i % 3 == 0 && i % 5 == 0) {
            console.log(i);
        }
    }
</script>

输入一个数字,得到这个数字的全部约数

<script>
    let n = Number(prompt('请输入数字'));
    for(let i = 1; i <= n; i++) {
        if(n % i == 0) {
            console.log(i);
        }
    }
</script>

计算1-100之间所有整数的和

var i = 1;
var sum = 0;
while(i <= 100){
	sum += i;//sum = i + sum;是一个意思,看赋值运算符的复合写法
	i++;
}
console.log(sum);//5050

for(var i = 1, sum = 0; i <= 100; i++) {
    sum += i;
}
console.log(sum);

计算1-100之间数字,除3余1,除4余2,除5余3

for(var i = 1; i <= 100; i++) {
    if(i % 3 == 1 && i % 4 == 2 && i % 5 == 3) {
        console.log(i);//58
    }
}

计算1-100之间奇数和偶数的和

//判断奇数偶数
function fn(sum) {
	if(sum % 2 == 0) {
	return "是偶数";
	}
	return "是奇数";
}
var flag = fn(21);
console.log(flag);



//对比%2得偶数 加法这样可以在控制台打印出所有偶数跟奇数的数字
<script>
    var even = 2;			//偶数变量条件
    var odd = 1;			//奇数变量条件
    var sum_even = 0;		//偶数循环体
    var sum_odd = 0;		//偶数循环体
    while(even <= 100) {	//偶数循环条件
        sum_even += even;	//执行循环体
        even += 2;			//自增
    }
    while(odd <= 100) {		//奇数循环条件
        sum_odd += odd;		//执行循环体
        odd += 2;			//自增
    }
    console.log("1-100之间的奇数和是:" + sum_odd, "1-100之间偶数和是:" + sum_even);
</script>


<script>			
    var  sum1 = 0, sum2 = 0;
    for(var i = 1; i <= 100; i++) {
        if(i % 2 ==0) {
        sum1 += i;
        } else {
        sum2 += i;
        }
    }
    console.log('1-100之间奇数和是:' + sum2, '1-100之间偶数和是:' + sum1);
</script>



求200-300之间所有奇数的和
var i = 200;
var sum = 0;
while(i <= 300) {
	if(i % 2 ==0) {			//反向思维,把偶数跳过
	i++;					//奇数循环相加就是
	continue;
	}
	sum += i;
	i++;
}
console.log(sum);//12500

100-200得累加值,跳过所有个位数3的数
var i = 100;
var sum = 0;
while(i <= 200) {
	if(i % 10 == 3) {
		i++;
		continue;
	}
	sum += i;
	i++;
}
console.log(sum);//13670

计算1-100能被3整除的数的和

<script>
    var sum = 0;
    for(var i = 0; i <= 100; i++) {
        if(i % 3 == 0) {
            sum += i;
        }
    }
    console.log(sum);
</script>

阶乘

计算6的阶乘(1X2X3X4X5X6)
<script>
    var mul = 1;	
    var pro = 1;
    while(mul <= 6) {	
        pro = pro * mul;	
        mul++;				
    }
    console.log(pro);
</script>

<script>
    let n = prompt('请输入数字');
    let sum = 1;
    for(let i = 1; i <= n; i++) {
        sum *= i;
    }
    alert(sum);
</script>

累加器累乘器 圆周率π

π/2 = 1 + 1/3 + 1x2/3x5 + 1x2x3/3x5x7 + 1x2x3x4/3x5x7x9 + ... + 1x2x...xR/3x5x/...(2R+1) 莱布尼茨数公式

<script>
    let sum = 0;
    let item = 1;
    let n = Number(prompt('请输入要计算的数值'));
    for(let i = 1; i <= n; i++) {
        item *= i / (2 * i + 1);
        sum += item;
    }
    alert((1 + sum) * 2);
</script>

累加器除法

3/2 + 4/3 + 5/4 + ... + n+1/n 计算n算数的值

<script>
    let n = Number(prompt('请输入数字n'));
    let sum = 0;
    for(let i = 2; i <= n; i++) {
        sum += (i + 1) / i;
    }
    alert(sum.toFixed(2));
</script>

求100以内7的倍数

<script>
    var i = 1;
    while(i <= 100) {
        if(i % 7 == 0) {
            console.log(i);
        }
        i++;
    }
</script>

星星矩阵

1.7X5的星星矩阵
<script>
    for(j = 1; j <= 5; j++) {						//五次外循环
        for(var i = 1; i <= 7; i++) {				//七次内循环
            document.write('☆');					//这个不要用,只在学习中演示。重构网页界面,在网页中显示内容,可以输入文字跟html标签
        }							
        document.write('<br/>');					//内循环换行
    }
</script>

等腰直角三角形矩阵

<script>
    for(j = 1; j <= 9; j++) {
        for(var i = 1; i <= j; i++){
            document.write('☆');		//循环的内容
        }
        document.write("</br>");		 //换行
    }
</script>

乘法表

<script>
    document.write('<table cellspacing="9">');	//内嵌表格 cellspacing=9 表格间距
    for(j = 1; j <= 9; j++) {					//第一个循环
        document.write('<tr>');					//表格行
        for(var i = 1; i <= j; i++){			//第二个循环
            document.write('<td>' + i + '×' + j + '=' + i*j + '</td>');	
        }										//表格列跟列表的内容
        document.write("</tr>");
    }
    document.write('</table>');
</script>

寻找n * n > 456789的最小正整数

let n = 1;
while(n * n <= 456789) {
    n++;
}
console.log(n);

斐波那契数列求天数

第一天1个,第二天2个,第三天3个,以此类推。多少天才能大于500??

<script>
    let n = 1;
    let sum = 0;
    while(sum < 500) {
        sum += n;
        console.log(n);
        console.log(sum);
        n++;
    }
    console.log(n - 1);
</script>

随机得到[a,b]区间的随机数,不能为0

[-4,4]

<script>
    do {
        var dx = parseInt(Math.random() * 9) - 4;
        var dy = parseInt(Math.random() * 9) - 4;
    } while(dx == 0 && dy == 0);
    console.log(dx, dy);
</script>

猜字谜

<script>
    // 随机生成2-99的数字,让用户猜数字是几
    let answer = parseInt(Math.random() * 98) + 2;
    let min = 1;
    let max = 100;
    while(true) {
        let n = Number(prompt('请输入数字' + min + "~" + max));
        if(n <= min || n >= max) {
            alert('你输入的数字不再范围内');
            continue;
        }
        if(n > answer) {
            alert('你输入的数字太大了');
            max = n;
        } else if(n < answer) {
            alert('你输入的数字太小了');
            min = n;
        } else {
            alert('猜对了');
            break;
        }
    }
</script>

质数

能被1和它本身整除的数字

<script>
    cherry: for(let i = 2; i <= 100; i++) {
        for(let j = 2; j < i; j++) {
            if(i % j == 0) {
                continue cherry;
            }
        }
        console.log(i);
    }
</script>

雉兔同笼

<script>
    for(let i = 0; i <= 35; i++) {
        for(let j = 0; j <= 35; j++) {
            if(i + j == 35 && i * 2 + j * 4 == 94) {
                console.log('小鸡有' + i + '只,兔子有' + j + '只');
            }
        }
    }
    
    //两种方法
    for(let i = 0; i < 35; i++) {
        let j = 35 - i;
        if(i * 2 + j * 4 == 94) {
            console.log('小鸡有' + i + '只,兔子有' + j + '只');
        }
    }
</script>

标签:console,sum,alert,let,&&,var,ECMA
来源: https://www.cnblogs.com/kong777/p/16127722.html