JS的简单计算题

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title></title>
	<!--"一闪一闪亮晶晶,漫天都是小星星"统计字符串中每个字符串出现的次数-->
	<script>
		window.onload = function () {
			cishu();
			xiaoxingxing();
		}
		function xiaoxingxing() {
			var str = "一闪一闪亮晶晶,漫天都是小星星";
			//声明键值对,键放入每个文字,值放出现的次数
			//js中的键值对是使用对象的形式来使用的
			//				var v={'name:':'zhangsan','age':22};
			var jianzhidui = {};
			//遍历这个字符串,判断键值对中的键是否存在这个文字,如果存在就让他的值+1,不存在就新建键的属性,并设置出现的次数为1
			for (var i = 0; i < str.length; i++) {
				//如何去判断,得到每个文字
				var wz = str.charAt(i);
				if (jianzhidui[wz]) {
					jianzhidui[wz] += 1;
				} else {
					jianzhidui[wz] = 1;
				}
			}
			//遍历一下键值对
			for (var i in jianzhidui) {
				document.write(i + "出现了" + jianzhidui[i] + "次<br>");
			}
		}
		function cishu() {
			var str = "一闪一闪亮晶晶,满天都是小星星";
			var xing;
			var cnt = 0;
			//indexOf括号内的参数,第一个是需要寻找的变量,第二个是第一个变量的个数
			while ((xing = str.indexOf("星", xing)) != -1) {
				xing++;
				cnt++;
			}
			alert("星出现了" + cnt + "次");
		}
	</script>
	<!-- 输入的带有小数点的数对小数点后几位进行四舍五入 -->
	<script>
		const toFixed = (number, n) => {
			let numberStr = number + "";
			let reg = /^(-|\+)?(\d+(\.\d*)?|\.\d+)$/i;
			if (!reg.test(numberStr)) {
				alert('输⼊的数字格式不对');
				return;
			}
			let sign = numberStr.charAt(0) === '-' ? (numberStr = numberStr.slice(1), -1) : 1; // 判断是否是负数
			let pointIndex = numberStr.indexOf("."); // 记录⼩数点的位置
			if (pointIndex > -1) {
				numberStr = numberStr.replace(".", "");
			} else { // 没有⼩数点直接添加补0;
				numberStr += ".";
				numberStr += new Array(n).join('0');
				return numberStr;
			}
			let numberArray = numberStr.split(""); //转成数组
			let len = numberArray.length;
			let oldPointNum = len - pointIndex; // 获取原数据有多少位⼩数
			if (oldPointNum < n) { // 要保留的⼩数点⽐原来的要⼤,直接补0
				while (n - oldPointNum > 0) {
					numberArray.push(0);
					n--;
				}
			} else if (oldPointNum > n) { // 模拟四舍五⼊
				let i = oldPointNum - n; // 从倒数第i个数字开始⽐较
				let more = numberArray[len - i] >= 5 ? true : false;
				while (more) {
					i++;
					more = +numberArray[len - i] + 1 === 10 ? true : false; // 进位后判断是否等于10,是则继续进位
					numberArray[len - i] = more && i !== (len + 1) ? 0 : +numberArray[len - i] + 1; // 其他位置的数字进位直接变成0,第⼀位的例外
				}
				numberArray.length = len - (oldPointNum - n); // 截取多余的⼩数
			}
			numberArray.splice(pointIndex, 0, ".");
			return sign === -1 ? '-' + numberArray.join("") : numberArray.join("");
		};
		console.log(toFixed(3.890098, 1))
	</script>
	<!-- 经典易错面试题 -->
	<script>
		//1、实现add函数  add(2,5); // 7    add(2)(5); // 7
		function add(a) {
			return function (b) {
				return a + b;
			}
		}
		console.log(add(2)(5));


		//2、window.foo的值是什么
		window.foo = [];// 0 null NaN 结果都是bar
		window.foo || (window.foo = 'bar');
		console.log(window.foo); // bar

		//3、异步代码
		console.log('A');
		let f1 = new Promise((resolve, reject) => {
			console.log('B');
			setTimeout(() => console.log('C'), 0);
			resolve();
			console.log('D');
		});
		console.log('E');
		f1.then(() => console.log('F'));
		Promise.resolve().then(() => console.log('G')); // ABDEFGC
	</script>
</head>
<body>
</body>
</html>

倒计时

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>时钟和倒计时</title>
		<script>
			window.onload=function(){
				//setInterval(shizhong,1000);
				i=prompt("请输入倒计时的时间");
			}
			function shizhong(){
				var date=new Date();
				var year=date.getFullYear();//得到年份
                var month=date.getMonth();//得到月份需要+1
                var day=date.getDate();//得到日
                var xingqi =date.getDay();//得到周几(0代表周日)
                var hours=date.getHours();//得到小时,24小时制的
                var minute=date.getMinutes();//得到分钟
                var second=date.getSeconds();//得到秒
                var div1=document.getElementById("div1");
                div1.innerHTML="当前时间为:"+year+"年"+month+"月"+day+"日"+hours+":"+minute+":"+second;
			}
		    
		    var i;
		    function zhixingdaojishi(){
		    	i--;
		    	var div1=document.getElementById("div1");
		    	div1.innerHTML="倒计时还有"+i+"秒";
		    	if(i==0){
		    		alert("倒计时结束");
		    		zanting();
		    	}
		    }
		    var jieshou=null;//用来判断倒计时是否暂停的变量
		    function kaishi(){
		    	if(jieshou==null){
		    		jieshou=setInterval(zhixingdaojishi,1000);
		   		}
	    	}
		    function zanting(){
		    	clearInterval(jieshou);
		    	jieshou=null;
		    }
		   
		</script>
	</head>
	<body>
		<div id="div1"> </div>
		<input type="button" value="开始倒计时" onclick="kaishi()" />
		<input type="button" value="暂停" onclick="zanting()" />
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值