两种将Javascript应用到网页的方式
行内js:
<input type="button" value="点击有惊喜" οnclick="javascript:alert('哈哈哈哈')">
外部引用:在html文件中引入外部的js文件<script src="外部js文件地址"></script>
内部引用:在heard中定义script标签,里面书写JS代码
<script>
alert("这是js的内部引入");
</script>
定义一个变量,变量的命名规则
js定义变量的三种方式:
- var 定义可以修改的变量,不初始化会输出undefined,不会报错
- const 定义定义不可修改,必须初始化的变量
- let 定义块级作用域的变量
变量的命名规则:
- 名称可包含字母、数字、下划线和美元符号
- 名称必须以字母开头
- 名称也可以 $ 和 _ 开头
- 名称对大小写敏感
- 保留字(比如 JavaScript 的关键词)无法用作变量名称
== 和 === 的区别
== 检查值相等,两边类型不同,再做值转换比较,返回结果 === 检查值和类型相等,不做类型转换,类型不同一定不等
JS简单数据类型,简要描述
js数据类型分为值类型(基本类型):string(字符型)用单引号或者双引号表示,number(数字型)表示数字的整数和浮点数,boolean(布尔型)false/true,null只有一个值表示空对象指针,undefined类型就是var声明变量未初始化,symbol创建的对象永远是唯一的,以及NaN是number的一种,非number。引用数据类型:object(对象),array(数组),function(函数)。
JS的算数运算符
一元运算符:
一元算术运算符包括一元加法(=+a)、一元减法(=-a)、递增(++)和递减(--)。只对一个表达式执行操作,并产生一个新值。
二元运算符:
二元运算符包括+,-,*,、/,%(求余)
JS比较运算符
> 大于运算符
< 小于运算符
<= 小于或者等于运算符
>= 大于或者等于运算符
== 相等运算符
=== 严格相等运算符
!= 不相等运算符
!== 严格不相等运算符
JS逻辑运算符
逻辑与,AND(&&) 逻辑或,OR(||) 逻辑非,NOT(!)
var i=100;i++;j=i++;y=++j;请问j和y分别是多少
理解i++和++j的区别,j和y都是102
计算下列算式,并将结果输出
324*(23+214)/(568-129)-11*(235-24) = -2146.084282460137
住房公积金缴纳金额与工资两者的关系是:住房公积金 = 税前工资 * 0.1 * 2 ;编写程序,让用户输入税前工资,弹出对应的公积金数额
var GZ = prompt("请输入税前工资", "")
var regPos = /^\d+(\.\d+)?$/; //非负浮点数
var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
if (regNeg.test(GZ) || regPos.test(GZ)) {
var GJZ = GZ * 0.1 * 2
alert(GJZ)
} else {
alert("请输入数字")
}
用JS计算下列算式,并将结果在弹出:
var a = Math.pow(23 + Math.pow(5, 7) / 45, 2)
编写程序,提示用户输入圆锥的底面半径和高,然后弹出它的体积,计算圆锥体积的公式是:体积V=1/3π半径2*高
var palf = prompt("请输底面积", "")
var height = prompt("请输高", "")
alert(1 / 3 * Math.PI * Math.pow(palf, 2) * height)
如果今天是星期二,那么1000天后是星期几?用户输入一个天数,计算这个天数后是星期几。
//0是星期天, 0-6表示星期天到星期六
var day = 2;
var d = prompt("请输入天数,计算多少天后为星期几", "");
var a = Math.floor(d % 7);
var now = a + day
alert(d + "天后是星期" + now)
用户输入一个三位数,弹出各个数位的和。
var a = prompt("请输入一个三位数数字,来计算数位相加的和","");
//获取个位上的数字
var b = a%10;
//获取十位上的数字
var c = parseInt((a%100)/10);
//获取百位上的数字
var d = parseInt(a/100);
var sc = b+c+d;
alert("你输入的三位数数字是"+a+",位数相加得"+sc);
用户输入一个数字,然后判断这个数字能否被5、6整除的情况,根据情况弹出下面4种警告框:
var number = prompt("请输入一个整数", "")
if (number % 5 == 0) {
alert(number + "能被5整数")
if (number % 6 == 0) {
alert(number + "能被5和6整数")
} else {
alert(number + "不能被6整除")
}
} else {
alert(number + "不能被5整除也不能被6整除")
}
用户输入一个数字,然后再输入一个数字。输入两个数字然后弹出警告框:
var one = prompt("输入一个整数", "")
var two = prompt("再输入一个整数", "")
if (one % 2 == 0 && two % 2 == 0) {
alert("这两个输奇偶相同")
} else if (one % 2 !== 0 && two % 2 !== 0) {
alert("这两个输奇偶相同")
} else {
alert("这两个输奇偶不相同")
}
用户输入一个年份,判断这个年是否是闰年。
var year = prompt("请输入一个年份", "") if (year % 100 != 0 && year % 400 == 0 || year % 4000){ alert(year + "是闰年") } else { alert(year + "不是闰年") }
推导循环执行的顺序,用文字进行说明,并推导出可能的结果。
for (var m = 1, n = 2; m + n < 25; m++) {
n += 3;
console.log(n);
console.log(m);
} 第一次循环:m=1,n=2;1+2<25,条件二满足执行循环语句,n=5,输出m为1的值,m++ 第二次循环:m=2,n=5;2+5<25,条件二满足执行循环语句,n=8,输出m为2的值,m++ 第三次循环:m=3,n=8;8+5<25,条件二满足执行循环语句,n=11,输出m为3的值,m++ 第四次循环:m=4,n=11;11+4<25,条件二满足执行循环语句,n=14,输出m为4的值,m++ 第五次循环:m=5,n=14;14+5<25,条件二满足执行循环语句,n=17,输出m为5的值,m++ 第六次循环:m=6,n=17;17+6<25,条件二满足执行循环语句,n=20,输出m为6的值,m++ 第七次循环:m=7,n=20;20+7<25,条件二不满足,退出循环
推导循环执行的顺序,用文字进行说明,并推导出可能的结果。
for(var i = 30 ; i > 5 ; i -= 7) { console.log(i--); } 第一次循环:i=30;30>5,条件二满足执行循环语句,输出i为30,执行i=30-1,执行条件三i=29-7=22 第二次循环:i=22;22>5,条件二满足执行循环语句,输出i为22,执行i=22-1,执行条件三i=21-7=14 第三次循环:i=14;14>5,条件二满足执行循环语句,输出i为14,执行i=14-1,执行条件三i=13-7=6 第四次循环:i=6;6>5,条件二满足执行循环语句,输出i为22,执行i=6-1,执行条件三i=5-7=-2 第五次循环:i=-2;-2>5,条件二不满足,退出循环
用户输入一个数字n,计算1+2+3+4+……n的和
var n = parseInt(prompt("请输入一个正整数"));
var num = 0;
for (var i = 1; i <= n; i++) {
num += i;
}
console.log(num);
用户输入一个整数n,计算n的阶乘。即n*(n-1)(n-2)……32*1
var n = parseInt(prompt("请输入一下正整数"));
var fa = 1;
for (var i = n; i >= 1; i--) {
fa *= i;
console.log(fa)
}
用户输入一个数字n计算
var total = 0;
var n = parseInt(prompt("请输入一下正整数"));
for (let index = 2; index <= n; index++) {
a = (index + 1) / index;
console.log(a)
total = total + a
console.log(total)
}
alert(total)
用户输入一个数字,在控制台中列出它的所有约数
var n = parseInt(prompt("请输入一个正整数"));
for(i = n ; i >= 1 ; i--){
if(n % i == 0){
console.log(i);
}
}
水仙花数是一种特殊的四位数,它的特点就是,每个数位的四次方和,等于它本身。请编程找出来。
/*水仙花数*/
var nUnit = 0;//个位
var nTen = 0; //十位
var nHundred = 0; //百位
var nKbit = 0; //千位
for(var i = 1000; i <= 9999; i++ )
{
nUnit = i % 10;
nTen = parseInt(i / 10) % 10;
nHundred = parseInt(i / 100) % 10;
nKbit = parseInt(i / 1000);
if(Math.pow(nUnit, 4) + Math.pow(nTen, 4) + Math.pow(nHundred, 4) + Math.pow(nKbit, 4) == i)
{
console.log(i);
}
}
如果一个数恰好等于它的约数之和,则称该数为“完美数”。
for (let i = 1; i <= 1000; i++) {
var sum = 0;
for (let j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
console.log(i);
}
}
用户输入一个数字,判断这个数字是否是质数
var num = parseInt(prompt("请输入一个数字", 2));
var count = true; //标记
for (var j = 2; j <= Math.sqrt(num); j++) {
//Math.sqrt(num) 取平方根 减少循环的次数
if (num % j == 0) {
count = false; //当有被整除的情况标记false
}
}
if (count == true) {
alert(num + "是质数");
} else {
alert(num + "不是质数");;
}
列出1~10000的所有质数
for (var i = 2; i <= 10000; i++) {
var count = true;
for (var j = 2; j < i; j++) {
if (i % j == 0) {
count = false; //当有被整除的情况标记true
}
}
if (count == true) {
console.log(i);
}
}
苹果3元一个,鸭梨2元一个,桃子1元一个。现在想用200元正好买100个水果,在控制台中列出所有可能性
apple = 0; //苹果
var pear = 0; //梨
var peach = 0; //桃子
for(apple = 0; apple <= 100; apple++)
{
for(pear = 0; pear <= 100; pear++)
{
for(peach = 0; peach <= 100; peach++)
{
if((apple * 3 + pear * 2 + peach * 1 == 200) && (apple + pear + peach) == 100)
{
console.log(apple, pear, peach);
}
}
}
有这样一个代码
switch (name) {
case "jt":
alert('金团网');
break;
case "ejt":
alert('金团相相贷');
break;
case "ejin":
alert("网上综合金融体验馆");
break;
default:
alert("金团网络典当");
}
请用if来实现上面的效果
if (name === "jt") {
if (name === "ejt") {
if (name === "ejin") {
alert("网上综合金融体验馆");
} else {
alert("金团网络典当");
}
} else {
alert('金团相相贷');
}
} else {
alert('金团网');
}
JS有几种循环,分别是什么
for循环又分4种
for循环 forEach for...in for...of while循环又两种
do...while while 总的算下来又六种循环
break和continue的区别是什么
break:直接终止循环,并跳出
continue:终止本次循环,跳过continue语句后面的内容,进行下一次循环
请用循环计算出 1+2+3+4+5+...+100的值
var result = 0;
for (var i = 0; i <= 100; i++) {
result += i;
}
console.log(result)
开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。判断测试者体重为标准体重还是超重还是偏瘦
HTML代码
<div>
<h1>输入数据</h1>
身高: <input type="text"><br>
体重: <input type="text"><br>
结果: <input type="text"><br>
<button>点击</button>
</div>
JS代码
<script>
const ino = document.querySelectorAll("input");
const buo = document.querySelector("button");
buo.onclick = function () {
let bz = ino[1].value - (ino[0].value - 108) * 2
if (bz > 10) {
ino[2].value = "偏胖"
} else if (bz < -10) {
ino[2].value = "偏瘦"
} else {
ino[2].value = "正常"
}
}
</script>
将下述代码使用switch写法的另一种方式实现,以及使用if判断实现一次
var grade = prompt("请输入分数");
switch (parseInt(grade / 10)) {
case 10:
case 9:
alert("你的成绩等级为优秀");
break;
case 8:
case 7:
case 6:
alert("你的成绩等级为良好");
break;
default:
alert("你的成绩等级为不及格,继续加油哦!");
}
switch的实现方式:
var grade = prompt("请输入分数");
switch (parseInt(grade / 10)) {
case 9:
alert("你的成绩等级为优秀");
break;
case 10:
alert("你的成绩等级为优秀");
break;
case 8:
alert("你的成绩等级为良好");
break;
case 7:
alert("你的成绩等级为良好");
break;
case 6:
alert("你的成绩等级为良好");
break;
default:
alert("你的成绩等级为不及格,继续加油哦!");
}
if 的实现方式
var grade = parseInt(prompt("请输入分数") / 10);
if (grade) {
if (grade >= 6) {
if (grade >= 9) {
alert("你的成绩等级为优秀");
} else {
alert("你的成绩等级为良好");
}
} else {
alert("你的成绩等级为不及格,继续加油哦!");
}
}
输入月份,显示当月天数(输入2月时需要再次输入年份判断是不是闰年后在显示当月天数)
var grade = parseInt(prompt("请输入月份"));
switch (grade) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
alert("当月有31天");
break;
case 2:
year = prompt("请再次输入年份");
if (year % 100 != 0 && year % 400 == 0 || year % 4000) {
alert(year + "是闰年" + "2月有29天")
} else {
alert(year + "不是闰年" + "2月有28天")
}
break;
case 4:
case 6:
case 9:
case 11:
alert("当月有30天");
break;
default:
zehngque
alert("请输入正确月份");
}