赞
踩
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>变量案例-弹出用户名</title> </head> <body> <script> // 1、输入用户姓名,存储到一个 myName 的变量中 var myName = prompt('请输入用户名') // 2、输出这个用户名 alert(myName) </script> </body> </html>
undefined
(未定义的);xxx is not defined
);<body>
<script>
var age = prompt("请输入你的年龄");
var str = '你今年已经' + age + '岁了';
alert(str)
</script>
</body>
<script>
// int num=10; java
// var num; //这里的num 我们是不确定属于哪种数据类型的
var num = 10; //num属于数字型
// js 的变量数据类型是只有程序在运行过程中,根据等号右边的值来确定的
// js是动态语言 变量的数据类型是可以变化的
var x = 10; // x 是数字型
x = 'pink'; //x 是字符串
</script>
//利用算数运算 - * / 来隐式转换;
<script>
console.log('12'-0);//隐式转换为 数字型12
console.log('123'-'120');
</script>
<body>
<!-- 此案例要求在页面中弹出一个输入框,我们输入出生年份后,能计算出我们的年龄 -->
<!--
案例分析:
1、弹出一个输入框(prompt),让用户输入出生年份(用户输入);
2、把用户输入的值用变量保存起来,然后用今年的年份减去变量值,结果就是现在的年龄(程序内部处理);
3、弹出警示框(alert),把计算的结果输出(输出结果);
-->
<script>
var year=prompt("请输入你的出生年份");
var age=2022-year;//按道理year取过来的是字符串型,做减法操作这里做了隐式转换;
alert('你的年龄是'+age+'岁');
</script>
</body>
<body>
<!-- 计算两个数的值,用户输入第一个值后,继续弹出第二个输入框并输入第二个值,最后通过弹出框口显示出两次输入值相加的结果 -->
<script>
var num1 = prompt("请输入第一个值");
var num2 = prompt("请输入第二个值");
var result = parseFloat(num1) + parseFloat(num2);
alert("你的结果是:" + result);
</script>
</body>
operator
)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号;JavaScript
中常用的运算符有:算数运算符、递增和递减运算符、比较运算符、逻辑运算符、赋值运算符;&&
表达式2;<body> <!-- 1、用我们的布尔值参与的逻辑运算 true && false == false; --> <script> // 3、逻辑与短路运算 // 3.1、逻辑与短路运算 如果表达式1结果为真,则返回表达式2; console.log(123 && 456);//456 // 3.2、逻辑与短路运算 如果第一个表达式的值为假,则返回表达式1; console.log(0 && 456);//0 // 如果有空的或者否定的为假(如:0、''、null、undefined、NaN),其余是真的; // 4、逻辑或短路运算 // 4.1、如果表达式1结果为真,则返回的是表达式1; console.log(123 || 456);//123 // 4.2、如果表达式1结果为假,则返回的是表达式2; console.log(0 || 456);//456 // 案例分析(123为真,直接返回123,后面的 num++ 就不再执行了,所以是结果是0) var num=0; console.log(123 || num++); console.log(num);//0 </script> </body>
<script>
var num = 10;
//num=num+1; num++
//num = num + 2; ==> num += 2;
num += 2;
console.log(num);//12
</script>
!
)优先级很高;JS
语言提供了两种分支结构语句:if
语句、switch
语句;if
分支语句、switch
分支语句、三元表达式)<body>
<!--
算法:能被4整除且不能整除100的为闰年(如2004年就是闰年,1901年不是闰年)或者能被400整除的就是闰年;
-->
<script>
var year=prompt("请输入年份:");
if(year % 4 ==0 && year % 100 !== 0 || year % 400 ==0){
alert("你输入的年份是闰年");
}else{
alert("你输入的年份是平年");
}
</script>
</body>
<body>
<!--
案例描述:用户输入数字,如果数字小于0,则在前面补零;如果数字大于0,则不需要补。
-->
<script>
var time = prompt("请输入一个0~59之间的一个数字");
var result = time < 10 ? "0" + time : time
alert(result);
</script>
</body>
switch
语句switch
语句;switch
是转换、开关的意思;case
小例子或者选项的意思;switch(表达式){
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
...
default:
执行最后的语句;
}
case
后面的选项值】相匹配,如果匹配上,就执行该case
里面的语句;如果都没有匹配上,那么执行default
里面的语句。switch(2){
case 1:
console.log("这是1");
break;
case 2:
console.log("这是2");;
break;
case 3:
console.log("这是3");;
break;
default:
console.log("没有匹配结果");;
}
switch
注意事项:num
的值和case
里面的值相匹配的时候是【全等】(必须是值和数据类型一致才可以);break
如果当前的case
里面没有break
,则不会退出switch
,而是继续执行下一个case
;<body> <script> var fruit = prompt("请输入水果:"); switch (fruit) { case '苹果': alert('苹果'); break; case '榴莲': alert('榴莲'); break; default: alert('没有此水果'); } </script> </body>
switch
语句和if else if
语句的区别:switch...case
语句通常处理case
为比较确定值的情况,而if...else...
语句更加灵活,常用于范围判断(大于、等于某个范围);switch
语句进行条件判断后直接执行到程序的条件语句,效率更高。而if...else...
语句有几种条件,就得判断多少次;if...else...
语句的执行效率比switch
语句高;switch
语句的执行效率比较高,而且结构更清晰;for
循环、while
循环、do while
循环)for
循环、while
循环、do while
循环;//for语法结构
for(初始化变量;条件表达式;操作表达式){
//循环体
}
//初始化变量:就是用var声明的一个普通变量,通常用于作为计数器使用;
//条件表达式:就是用来决定每一次循环是否继续执行,就是终止的条件;
//操作表达式:就是每次循环最后执行的代码,经常用于我们计数器变量进行更新(递增或者递减);
for
循环可以重复执行不同的代码,因为我们有计数器变量i的存在,i每次循环值都会变化;//我们想要输出1个人1~100岁
for(var i=1;i<=100;i++){
console.log('这个人今年'+i+'岁了');
}
for
循环重复某些相同操作。for
循环因为有了计数器的存在,我们还可以重复的执行某些操作,比如做一些算术运算;<body> <!-- 案例分析: 1、需要循环100次,我们需要一个计数器i; 2、我们需要一个存储结果的变量sum,但是初始值一定是0; 3、核心算法:1+2+3+4+...sum=sum+i; --> <script> var sum=0;//求和的变量 for(var i=0;i<=100;i++){ sum=sum+i; } console.log(sum); </script> </body>
<script> // 1、求1-100之间所有数的平均值; var sum = 0; var average = 0; for (var i = 1; i <= 100; i++) { sum = sum + i; } average = sum / 100; console.log(average);//50.5 // 2、求1-100之间所有偶数和奇数的和; var event = 0; var odd = 0; for (var i = 1; i <= 100; i++) { if (i % 2 == 0) { event = event + i; } else { odd = odd + i; } } console.log(event);//2550 console.log(odd);//2500 // 3、求1-100之间所有能被3整除的数字的和; var result = 0; for (var i = 1; i <= 100; i++) { if (i % 3 == 0) { result = result + i; } } console.log(result);//1683 </script>
<body> <!-- 要求用户输入班级人数,之后依次输入每个学生的成绩,最后打印出该班级总的成绩以及平均成绩 --> <script> var num = prompt('请输入班级总人数:'); var sum = 0; var average = 0; for (var i = 1; i <= num; i++) { var score = prompt('请输入第' + i + '个学生成绩'); // 因为从prompt取过来的数据是 字符串型的 需要装换为 数字型; sum = sum + parseFloat(score); } average = sum / num; alert('班级总的成绩是' + sum); alert('班级平均分是' + average); </script> </body>
<script>
var str = '';
for (var i = 1; i <= 5; i++) {
// console.log('⭐');
// 我们采用追加字符串的方式,这样可以打印到控制台上;
str = str + '⭐';
}
console.log(str);
</script>
var num = prompt('请输入星星个数');
var str = '';
for (var i = 0; i < num; i++) {
str = str + '⭐';
}
console.log(str);
for
循环for
循环语句中,可以再嵌套一个for
循环,这样的for
循环语句我们称之为双重for
循环; <script>
var str = '';
for (var i = 1; i <= 5; i++) {
for (var j = 1; j <= 5; j++) {
str = str + '⭐';
}
// 如果一行打印完毕5个星星,就要另起一行;(加 \n)
str = str + '\n';
}
console.log(str);
</script>
<script>
var row = prompt('请输入行数');
var column = prompt('请输入列数');
var str = '';
for (var i = 1; i <=row; i++) {
for (var j = 1; j <= column; j++) {
str = str + '⭐';
}
str = str + '\n';
}
console.log(str);
</script>
<script>
var str = '';
for (var i = 1; i <= 10; i++) {
for (var j = i; j <= 10; j++) {
str = str + '⭐';
}
str = str + '\n';
}
console.log(str);
</script>
while
循环while(条件表达式){循环体}
;true
,则执行循环体;否则,退出循环;var num=1;
while(num<=100){
console.log('你好');
num++;
}
while
循环案例<script> // 1、打印人的一生,从1岁到100岁; // var i=1; // while(i<=100){ // console.log('这个人今年'+i+'岁了'); // i++; // } // 2、计算1~100之间所有整数的和; // var i = 1; // var sum = 0; // while (i <= 100) { // sum = sum + i; // i++; // } // console.log(sum); // 3、弹出一个提示框,你爱我吗?如果输入我爱你,就提示结束,否则,一直询问; var message = prompt('你爱我吗?'); while (message !== '我爱你') { message = prompt('你爱我吗?'); } alert('我也爱你呀'); </script>
dowhile
循环dowhile
语句其实是while
语句的一个变体。该循环会先执行一次代码块,然后对条件表达式进行判断,如果条件为真,就会重复执行循环体,否则退出循环;do{
//循环体
}while(条件表达式)
while
不同的地方在于dowhile
先执行一次循环体,再判断条件;如果条件表达式结果为真,则继续执行循环体,否则退出循环;<script>
// 代码验证
var i = 1;
do {
console.log('你好');
i++;
} while (i <= 100)
</script>
dowhile
语句至少会执行一次循环体代码;dowhile
案例<script> // 1、代码验证 // var i = 1; // do { // console.log('你好'); // i++; // } while (i <= 100) // 2、打印人的一生,从1岁到100岁; // var i = 1; // do { // console.log('这个人今年'+i+'岁了'); // i++; // } while (i <= 100) // 3、计算1~100之间所有整数的和; // var i = 1; // var sum = 0; // do { // sum = sum + i; // i++; // } while (i <= 100) // console.log(sum); // 3、弹出一个提示框,你爱我吗?如果输入我爱你,就提示结束,否则,一直询问; do { var message = prompt('你爱我吗?'); } while (message !== '我爱你') alert('我也爱你呀'); </script>
for
、while
、dowhile
;for
;while
、dowhile
可以做更复杂的判断条件,比for
灵活一些;while
和dowhile
执行顺序不一样,while
先判断,后执行;dowhile
先执行一次,再判断执行;while
和dowhile
执行次数不一样, dowhile
至少会执行一次循环体,而while
可能一次也不执行;for
循环,它的写法更简洁直观;continue
和break
关键字continue
关键字continue
之后的代码就会少执行一次);continue
关键字案例<script> // continue关键字(退出本次,即当前次的循环;继续执行剩余次的循环) // for (var i = 1; i <= 5; i++) { // if (i === 3) { // continue; // 只要遇到continue就退出本次循环,直接跳到 // } // console.log(i);//1 2 4 5 // } // 案例:求1~100之间,除了能被7整除之外的整数和; var sum = 0; for (var i = 1; i <= 100; i++) { if (i % 7 == 0) { continue; } // sum = sum + i; sum += i; } console.log(sum); </script>
break
关键字break
关键字用于立即跳出整个循环(循环结束); // break关键字(退出整个循环)
for (var i = 1; i <= 5; i++) {
if (i == 3) {
break;//退出整个循环
}
console.log(i);// 1 2
}
<script> // 求数组[2,6,1,77,52,25,7]中的最大值; /* 案例分析: (1)、声明一个保存最大元素的变量max; (2)、默认最大值可以取数组中的第一个元素; (3)、遍历这个数组,把里面每个数组元素和max相比较; (4)、如果这个数组元素大于max就把这个数组元素存到max里面,否则继续下一轮比较; (5)、最后输出这个max; */ var arr = [2, 6, 1, 77, 52, 25, 7]; var max = arr[0]; for (var i = 1; i <= arr.length; i++) { if (max < arr[i]) { max = arr[i]; } } console.log(max); </script>
length
长度以及索引号增加数组长度;length
长度来实现数组扩容的目的;length
属性是可读写的;<script> // 1、新增数组元素-修改length长度; var arr = ['red', 'green', 'blue']; console.log(arr.length); arr.length = 5;//我们把数组长度修改为了5,里面应该有5个元素; console.log(arr);// ['red', 'green', 'blue', empty × 2] console.log(arr[3]);//undefined console.log(arr[4]);//undefined // 2、新增数组元素-通过修改数组索引新增数组元素;追加数组元素; // 之前索引号里面没有元素时是追加元素;有元素时是替换元素; var arr1 = ['red', 'blue', 'green']; arr1[3] = 'pink'; console.log(arr1);//['red', 'blue', 'green', 'pink'] arr1='有点意思'; console.log(arr1);//不能直接给数组名赋值,否则会覆盖掉以前的数据; </script>
<script>
var arr = [];
for (var i = 0; i < 10; i++) {
//arr=i; //不要直接给数组名赋值,否则以前的元素都没了;
arr[i] = i+1;
}
console.log(arr);// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
</script>
<script> // 将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新数组; var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]; var arr1 = []; var j = 0; for (var i = 0; i <= arr.length; i++) { // 新数组应该从0开始,一次递增; if (arr[i] >= 10) { // arr1[i] = arr[i]; //[empty × 4, 77, empty, 52, empty, 25] 原因:从第四个开始有值,当i=1,2,3时是没有值存进去的; arr1[j] = arr[i]; j++; //[77, 52, 25] } } console.log(arr1); </script>
// 筛选数组方法二:
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr1 = [];
for (var i = 0; i <= arr.length; i++) {
// 新数组应该从0开始,一次递增;
if (arr[i] >= 10) {
// arr1[i] = arr[i]; //[empty × 4, 77, empty, 52, empty, 25] 原因:从第四个开始有值,当i=1,2,3时是没有值存进去的;
arr1[arr1.length] = arr[i];//刚开始 arr1.length 就是0;数组的length会根据数组长度的变化而变化;
}
}
console.log(arr1);
<script> // 方法一: var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]; var newArr = []; // for (var i = 0; i < arr.length; i++) { // if (newArr.indexOf(arr[i]) === -1) { // newArr.push(arr[i]); // } // } // console.log(newArr); // 方法二: var mySet=new Set(arr);//利用了Set结构不能接收重复数据的特点; for(var val of mySet){ newArr.push(val); } console.log(newArr); </script>
<script>
// 要求:将数组['red','green','pink','blue',purper]的内容反过来存放;
var arr = ['red', 'green', 'pink', 'blue', 'purper'];
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
console.log(newArr);
</script>
var num1=10;
var num2=20;
var temp;
temp=num1;
num1=num2;
num2=temp;
console.log(num1,num2);
<script>
var arr = [5, 4, 3, 2, 1];
for (
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。