, 控制台console.log打印多个值 ,用逗号隔开
var a = 1, b = 2 ;
console.log(a,b);
. 对象才有
()函数、优先级、if()、switch( )
注意:
代码块中只有一句话的时候,可以省略大括号
if() 只有一条语句,可以省略大括号
switch case 只有一条语句,可以省略大括号
//console.log()打印多个值
var a = 1,b = 2;
console.log(a, b);
//省略大括号
// if(1) alert(666); //666
if (0) alert(666);alert(777); //777
三目运算符
表达式: 条件?表达式1:表达式2
条件成立就执行表达式1,条件不成立就执行表达式2
//三目运算符是双分支的简易写法
var a = 2 ;
var b = 3;
var c ;
a > b ? c = a : c = b ;
console.log(c) ; // 3
循环语句
变量初始值
while(条件) {
循环做的事情
变量产生变化
}
注意:while有可能一次也不会执行
for(变量初始值 ; 循环条件 ; 变量变化) {
循环要做的事情
}
注意:初始值只读一次
执行流程:初始值---->判断条件---->循环---->变量变化
do{
}while(条件)
注意:do while 先做后判断。至少执行一次
//while循环,此时a>5条件不满足循环一次也不执行
var a = 0 ;
while(a > 5){
console.log(a) ;
a++;
}
//for循环
for(var b = 0 ; b <= 5 ;b++){
console.log(b) ; // 0 1 2 3 4 5
}
//do while循环,此时循环至少执行一次
var c = 0;
do{
console.log(c);
c++;
}while(c < 0) //0
训练:100以内能被3和7整除的奇数
//找到奇数
var count = 0 ;
for(var i = 0 ; i <= 100 ; i++){
if(i % 2 !== 0){
document.write(i+' ')
count++;
if(count % 5 === 0){
document.write('</br>')
}
}
}
//同时被3和7整除
for(var i = 1 ; i <= 100 ;i++){
if(i % 3 === 0 && i % 7 === 0){
document.write(i+' ');
}
}
训练:计算1000-2000之间的闰年,每10个换行 ,并且计算出一共有多少个闰年
// 方法一:
// 计数
var count = 0 ;
for(var y = 1000 ; y <= 2000 ; y++){
if(y % 4 === 0 && y % 100 !== 0 || y % 400 === 0){
document.write(y+' ')
count++;
//当需要统计的数量发生改变的时候,才做判断
if(count % 10 === 0){
document.write('<br>');
}
}
}
document.write('1000-2000之间的闰年有' + count + '个');
//方法二:
var count = 0;
for(var y = 1000 ; y <= 2000 ; y++){
if(y % 4 === 0 && y % 100 !== 0 || y % 400 === 0){
document.write(y+' ')
count++;
//当需要统计的数量发生改变的时候,才做判断
if(count === 10){
document.write('<br>');
count = 0;
}
}
}
训练:质数的判断
质数:只能被1和自己整除
合数:除了1和自己以外还能被其他数整除
var n = 121;
for(var i = 1 ; i < 121 ; i++){
if(n % i === 0){
alert('不是质数')
}
else{
alert('是质数')
}
}
//假设法 : 假设是一个质数
var num = 121
var flag = true ;
for(var i = 1 ;i < num ; i++ ){
if(i % num === 0){
flag = false ;
}
}
if(i === num){
alert('是质数')
}
else{
alert('不是质数')
}
break和continue
作用:使用break和continue能够优化性能
break : 结束整个循环
continue : 结束本次循环,下次循环继续
// break
for(var i = 0 ; i < 10 ; i++){
console.log(i);
if(i === 3){
break;
}
} // 0 1 2 3
//continue
for(var i = 0 ; i < 10 ; i++){
if(i === 3){
continue;
}
console.log(i);
} // 0 1 2 4 5 6 7 8 9
训练:判断一个数是不是质数:
方法一:
//判断质数
var n = 12 ;
//假设是一个质数
var flag = true ;
//找到她不是的证据
for(var i = 1 ; i <= n ; i++){
if(n % i === 0){
flag = false ;
// 如果找到了一个能被整除的数,表示这个数已经不是质数了,也就是知道了最终的结果,就不需要继续循环了
break ;
}
}
if(flag){
alert('是质数')
}
else{
alert('不是质数')
}
flag ? alert('是') : alert('不是') ;
方法二:
//质数的判断
// 如果循环提前结束,是因为找到了能被整除的数 -- 说明不是质数
// 如果循环正常结束,因为没有找到被整除的数 -- 说明是质数
var n = 7 ;
for(var i = 2 ; i < n ; i++){
if(n % i === 0){
break;
}
}
if(i === n){
alert('是质数')
}
else{
alert('不是质数')
}
循环的嵌套
外层循环走一下,内层循环走一圈 ------------------------>时针和分针的关系
外层控制打印的行数,内层控制打印的个数
// ****
// ****
// ****
// ****
// 外层 i 控制打印的行数
for(var i = 1 ; i <= 4 ; i++){
// 内层j控制打印*的个数
for(var j = 1 ; j < 4 ; j++){
document.write('*') ;
}
document.write('<br>') ;
}
打印三角形训练:
// *
// **
// ***
// ****
// *****
// i 控制行数
for(var i = 0 ; i <= 4 ; i++){
// 打印星星,星星的个数跟行数一样
for( var j =0 ;j <= i ; j++){
document.write('*')
}
// 打印换行
document.write('<br>')
}
// *****
// ****
// ***
// **
// *
for(var i = 0 ; i <= 5 ; i++){
for(var j = 0 ; j <= 5- i ; j++){
document.write('*')
}
document.write('<br>')
}
// *****
// ****
// ***
// **
// *
for(var i = 0 ; i <= 5 ; i++){
for(var j = 0 ; j <= i ; j++){
document.write(' ') ;
}
for(var k = 0 ; k <= 5 - i ; k ++){
document.write('*') ;
}
document.write('<br>')
}
训练九九乘法表:
<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>Document</title>
<style>
p {
display: flex;
}
span{
width: 90px;
text-align: center;
line-height: 40px;
border: 1px solid #000;
margin: 10px;
background-color: #ff0;
}
</style>
</head>
<body>
<script>
for(var i = 1 ; i <= 9 ; i++) {
document.write('<p>')
for(var j = 1 ; j <= i ; j++) {
document.write('<span>' + j + '*' + i + '=' + i * j + '</span>')
}
document.write('</p>')
}
</script>
</body>
循环的特殊语法
1.for可以改写成while的形式,但是注意分号不能省
//for语句改写while
var i = 0 ;
for( ; i < 10 ; ){
console.log(666) ;
i++ ;
}
2.for 第一个分号前面的代码只会执行一次,因此可以声明多个变量
for(var i = 0 , count = 0 ; i < 100 ; i++) {
if(i % 2) {
document.write(i + ' ')
count++;
if(count % 10 === 0) {
document.write('<br>')
}
}
}
死循环
for(;;) {
console.log(666); // 最简单的死循环
}
for 执行的效率更高一点,一般情况都使用for
for 倾向于已知循环次数 for(;😉
while 一般条件复杂(死循环) while(true)
do while 至少执行一次
for(;;){}
for(var i = 0 ; ; i++) {
console.log(i);
if(i === 9) {
break;
}
}
var i = 0 ;
while(true) {
console.log(666);
i++ ;
if(i === 10) {
break;
}
}