From 84ed0cb55344598e1633e26a6f477a6f1de86fdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A2=E4=BD=B3=E5=87=AF?= <1368935475@qq.com> Date: Sun, 9 Oct 2022 22:28:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10.1 js\345\237\272\347\241\200.md" | 285 ++++++++++++++++++ 1 file changed, 285 insertions(+) create mode 100644 "04\345\215\242\344\275\263\345\207\257/\347\254\224\350\256\260/10.1 js\345\237\272\347\241\200.md" diff --git "a/04\345\215\242\344\275\263\345\207\257/\347\254\224\350\256\260/10.1 js\345\237\272\347\241\200.md" "b/04\345\215\242\344\275\263\345\207\257/\347\254\224\350\256\260/10.1 js\345\237\272\347\241\200.md" new file mode 100644 index 0000000..c260fe2 --- /dev/null +++ "b/04\345\215\242\344\275\263\345\207\257/\347\254\224\350\256\260/10.1 js\345\237\272\347\241\200.md" @@ -0,0 +1,285 @@ +一、JS代码编写位置 +(1)直接写在页面标签里面 + + + + + + 脚本代码的位置:直接写在页面标签里面 + + + + + + + +(2)写在外部JS文件中 + +外部的JS文件: + +alert("欢迎进入JavaScript编程的世界!"); +HTML文件: + + + + + + 脚本代码的位置:写在外部js文件中 + + + + + + + +二、将JS脚本代码作为A标签的属性值 + + + + + 将脚本代码作为a标签的属性值 + + + + 喜欢我就点击我吧 +

+ 喜欢我就点击我吧 + + +三、JS中数据类型和变量 +(1)JavaScript是弱类型语言,在定义变量的时候不用确定数据类型,在赋值的时候根据值自动确定其类型 。 + +(2)数据类型有:undefined,number,boolean,string,object + +(3) var是声明变量的关键字 。 + +(4)给变量命名的时候,需要遵循如下规则: + +​ 【1】 第一个字符必须是一个字母、下划线(_)或一个美元符号$。 + +​ 【2】 后面的字符可以是字母、下划线、美元符号或数字。 + +​ 【3】 区分大小写。 + +​ 【4】 不能与关键字同名 ,如while、for和if等。 + +代码演示: + +var msg; +alert(typeof msg); //undefined类型 +alert(typeof xyz); //undefined类型 +var num = 211; //number类型 +alert(typeof num); + +var num = 211.11; //number类型 +alert(typeof num); + +v = 2; +var y = 'a'; +var r = v * y; +//结果为not a number,但是数据类型仍然为number类型 +alert(r); //NaN +alert(typeof r); //number类型 +var flag = true; //boolean类型,取值只能是true或者false +alert(typeof flag); +var str = "JavaScript"; //string类型 +alert(typeof str); + +var str = 'JavaScript'; //string类型 +alert(typeof str); +var now = new Date(); //获取当前时间:object类型 +alert(now + "\n" + typeof now); + +var obj = null; +alert(typeof obj + "\n" + obj); //object类型 + +var arr = [11,22,33,44]; //object类型 +alert(typeof arr); + + +## 四、运算符 + +**(1)算数运算符** + + 算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。 + + 表格中的实例假设整数变量A的值为10,变量B的值为20: + +| 操作符 | 描述 | 例子 | +| :----- | :-------------------------------- | :------------------------------------ | +| + | 加法 - 相加运算符两侧的值 | A + B 等于 30 | +| - | 减法 - 左操作数减去右操作数 | A – B 等于 -10 | +| * | 乘法 - 相乘操作符两侧的值 | A * B等于200 | +| / | 除法 - 左操作数除以右操作数 | B / A等于2 | +| % | 取余 - 左操作数除以右操作数的余数 | B%A等于0 | +| ++ | 自增: 操作数的值增加1 | B++ 或 ++B 后B等于 21(区别详见下文) | +| -- | 自减: 操作数的值减少1 | B-- 或 --B 后B等于 19(区别详见下文) | + +其中+运算符,除了数学运算,还可以进行数据的拼接,例如: +var a = 10; var b = "10"; alert(a+b); //此处不进行数学运算,进行拼接,结果将打印1010 + + +此处和强类型语言不同,强类型语言例如C#,此结果应该为2,但是在JS中结果为2.5,例如: +var a = 5; var b = 2; alert(a/b); //将打印结果2.5 + + +自增++运算符和自减--运算符,符号写在前面和后面的区别如下: + +++在前,先自增,在运算; ++在后,先运算,在自增 (--运算符同理) +var a = 10; ++a; //或者a++,执行结果一样 alert(a); //打印11 + +var a = 10; var b = a++; alert(a); //打印结果11 alert(b); //打印结果10 + +var a = 10; var b = ++a; alert(a); //打印结果11 alert(b); //打印结果11 + + +**(2)赋值运算符** + +| 操作符 | 描述 | 例子 | +| :----- | :----------------------------------------------------------- | :--------------------------------------- | +| = | 简单的赋值运算符,将右操作数的值赋给左侧操作数 | C = A + B将把A + B得到的值赋给C | +| + = | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 | C + = A等价于C = C + A | +| - = | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 | C - = A等价于C = C - A | +| * = | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 | C * = A等价于C = C * A | +| / = | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 | C / = A,C 与 A 同类型时等价于 C = C / A | +| %= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 | C%= A等价于C = C%A | + +例如: +var a = 1; //正确 // =赋值运算符左边只能是变量,不能是数据常量。 1 = a; //错误 a + 1 = 2; //错误 + +var a = 10; var b = 5; a += b; // 等价 a = a + b; alert(a); //打印15 alert(b); //打印5 + + +**(3)关系运算符** + +表格中的实例整数变量A的值为10,变量B的值为20: + +| 运算符 | 描述 | 例子 | +| :----- | :----------------------------------------------------------- | :--------------- | +| == | 检查如果两个操作数的值是否相等,如果相等则条件为真。 | (A == B)为假。 | +| != | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 | (A != B) 为真。 | +| > | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 | (A> B)为假。 | +| < | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 | (A = | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 | (A> = B)为假。 | +| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 | (A <= B)为真。 | + +=与==的区别: +a = b; //代表将b的值赋给a a == b //代表比较a和b的值是否相等 + + +**(4)逻辑运算符** + +下表列出了逻辑运算符的基本运算,假设布尔变量A为true,变量B为false + +| 操作符 | 描述 | 例子 | +| :----- | :----------------------------------------------------------- | :------------------ | +| && | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 | (A && B)为假。 | +| \| \| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 | (A \| \| B)为真。 | +| ! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 | !(A && B)为真。 | + +例如: +var a = 20; var b = 500; alert(a > b && a > 0); //打印false alert(a > b || a > 0); //打印true alert(!(a > b || a > 0)); //打印false + + +**(5)三目运算符** + + 该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。 + +**条件表达式 ?结果1 :结果2** (表达式成立,执行结果1,否则执行结果2),例如: +var a = 10; var b = 20; var c = a > b ? a : b; alert(c); //此处打印20 + + +## 五、选择分支结构 + +**(1)IF单分支结构** + +获取当前日期,判断当前日期是否为自己的生日,如果是则提示"生日快乐" +var now = new Date(); var nowMonth = now.getMonth(); var nowDay = now.getDate(); if(nowMonth+1==6 && nowDay==22) //月份从0开始编号 alert("生日快乐!"); + + +**(2)IF双分支** + +获取当前时间,判断是否为星期六,星期日,如果是提示"我要出去浪",否则提示"努力工作" +var now = new Date(); var nowWeek = now.getDay(); //星期从0开始编号,并且星期天是一个星期第一天 if(nowWeek == 0 || nowWeek == 6) alert("我要出去浪!"); else alert("努力工作!"); + + +**(3)if多分支** + +获取当前时间,如果0点-12点提示:早上好;如果12点-14点提示:中午好;如果14点-18点提示:下午好;剩下时间提示:晚上好。 +var now = new Date(); var nowHour = now.getHours(); if(nowHour < 12) alert("早上好!"); else if(nowHour < 14) alert("中午好!"); else if(nowHour < 18) alert("下午好!"); else alert("晚上好!"); + + +**(4)if嵌套** + +获取当前时间: + +如果是工作日(星期一到星期五) + +​ 10点之前提示:"开会中..." 10点之后提示:"努力敲代码中..." + +如果是双休日(星期六星期天) + +​ 10点之前提示:"还在睡梦中..." 10点之后提示:"游戏中..." +var now = new Date(); var nowWeek = now.getDay(); var nowHour = now.getHours(); if(nowWeek >=1 && nowWeek <=5) { if(nowHour < 10) alert("开会中..."); else alert("努力敲代码中..."); } else { if(nowHour < 10) alert("还在睡梦中..."); else alert("游戏中..."); } + + +**(5)switch case结构** + +获取当前时间星期几,自动提示当天的课表信息,课表如下: + +星期一:语文、体育、英语 +星期二:数学、化学、计算机 +星期三:政治、历史、物理 +星期四:语文、数学、英语 +星期五:计算机、英语、美术 +星期六和星期天:休息 +var now = new Date(); var nowWeek = now.getDay(); switch(nowWeek) { case 1: alert("语文、体育、英语"); break; case 2: alert("数学、化学、计算机"); break; case 3: alert("政治、历史、物理"); break; case 4: alert("语文、数学、英语"); break; case 5: alert("计算机、英语、美术"); break; default: alert("休息"); break; } + + +## 六、循环结构 + +**(1)while循环和do...while循环** + +while循环打印1-10. +var i = 1; while(i <= 10) { document.write(i+" +") i++; } + + +do...while循环打印1-100. +var i = 1; do { document.write(i+" +") i++; }while(i <= 10); + + +while和do...while区别: + +【1】while先判断后执行,do...while先执行后判断 + +【2】如果将上述程序修改成var i = 11,while循环将一次都不执行,而do...while会至少执行一次。 + +**利用while或do...while循环解决如下问题:** + +假设迟到一次罚款10元,第二次罚款20元,第三次40元,依次翻倍罚款,计算迟到第几次的时候总罚款金额会超过10000元,并显示总罚款金额。 +var fakuan = 10; var sum = 10; var i = 1; do { i++; fakuan = fakuan*2; sum = sum + fakuan }while(sum < 10000); alert("第" + i + "次罚款总金额超过10000,罚款总金额为:" + sum); + + +**(2)for循环** + +for循环打印1-10: +for(var i = 1;i<= 10;i++) { document.write(i+" +"); } + + +**使用for循环打印九九乘法表:** +for(var i = 1;i<=9;i++) { for(var j = 1;j<=i;j++) { document.write(i + "" + j + "=" + ij); if(i*j <=9) document.write(" "); else document.write(" "); } document.write(" +"); } + + +**(3)break和continue** + +break和continue区别: + +【1】break:退出整个循环 + +【2】continue:退出本次循环,马上进入下一次循环 -- Gitee