Javascript教程第二章:运算符与流程控制
Javascript教程第二章:运算符与流程控制
一.运算符与流程控制
1.赋值运算符与算数运算符
前置和后置,++n和n++,在不参与其他运算的时候没有区别
let f = 2;
let n = 1;
let d = f + n++; //f+n,结果为3
let d = f + ++n; //先算++n,结果为4
2.短路运算的妙用
let a = 1; 正数为true
let b = 0; 0和负数为false
let f = a || b; JS中默认把从左到右的值第一个为true的值赋给f,所以此时f为1
let sex = prompt("请输入性别") || '保密'
此时当用户输入的时候,sex为用户输入的内容,当用户没有输入的时候为保密
3.网站协议接收验证
function query(el){
return document.querySelector(el);
}
query('#form').addEventListener('submit',function(event){
let user = query("[name = 'user']").value.trim();
let copyright = query("[name = 'copyright']").checked
let psw = query("[name = 'psw']");
if(!user || copyright == false || !psw){
alert("请输入用户名和密码,并仔细阅读协议")
event.preventDefault();
}
})
4.流程控制:使用ifelse判断密码强度
5.三元表达式
let hd = false ? 2 : 5;
switch使用注意事项
let error = error;
switch(error){
case "notice":
case "error":
console.log("警告或者提示消息");
break;
default:
console.log("其他类型的错误");
}
此时notice和error采用了相同的处理方式,无break则一直向下匹配
执行到default可以不写default
6.while循环控制
do{
consolo.log("先进来")
}while(false);
7.使用 for循环打印杨辉三角
//第一个for循环控制行数,第二个for循环控制*的数量
for(let i = 0;i < 10; i++){
for(let n = 0;n < i; n++){
document.write("*")
}
document.write("<br>")
}
//控制行数
for(let i = 0; i < 5; i++){
//打印空白
for(let kb = 4 - i; kb > 0; kb--){
document.write("<span>*</span>")
}
//打印*的个数
for(let m = i*2 - 1; m > 0; m--){
document.write("*");
}
//打印换行
document.write("<br>");
}
8.break-continue与 label标签的使用
1.continue : 进入下次循环
for(let i = 1; i <= 10; i++){
if(i % 2 ){
//不进行下面的代码,跳到下循环
continue;
}
console.log(i)
}
2.break : 终止所有循环
3.label标签:
houdunren: for(let i = 1; i <= 10; i++){
for(let n = 1; n <= 10; n++){
if(n % 2 == 0){
console.log(i,n);
}
if((n+i) > 18){
//当n+i > 18 的时候跳出最外层的循环
break houdunren;
}
}
}
9.for-in与for-of使用方法操作
数组循环(也可以遍历对象和DOM元素):
let houdunren = ["hdcs","houdunren"]
for(let key in houdunren){
console.log(houdunren[key])
}
for(let value of houdunren){
console.log(value)
}
Array.forEach(function(item,index,array){
console.log(item)
})
for in 取键值,for of取值;