1.JavaScript的组成: ECMAScript标准--基本的语法和对象 DOM:Document Object Model 文档对象模型 BOM:Broswer Object Model 浏览器对象模型 JavaScript:简称JS 2.JS是一门脚本语言:不需要编译 编译:把代码转换成计算机所认知的二进制 JS是一门弱类型语言,声明&变量都用var JS是一门动态类型语言:认知当前的这个变量到底是什么类型 JS是一门解释性语言 3.Javascript最初的目的:解决浏览器和服务器之间交互的问题 JS现在能做什么? 交互问题 特效 游戏 服务器端的开发 移动开发 4.HTML:行为 展示信息 CSS:样式 美化页面 JavaScript:结构 实现浏览器和服务器交互,有计算和验证的的能力 5.JS需要注意的问题: 变量有大小写之分; 弱类型语言,声明变量都用var 字符串用单引号或者双引号都可以 每行代码结束用分号
JS代码的位置: 1.内嵌方式,嵌入在html标签中 2.内部引用,直接在页面的script标签中写js代码 3.外部引用,js代码放在一个js文件中,然后在html页面中引入即可
1 异步:多个人做多件事 2 同步:一个人有顺序的做多件事 3 4 script标签中有两个属性:async defer 都输异步 5 async属性的值就是自己:页面加载时就开始下载那个文件,下载完毕后立刻执行 6 defer属性的值就是自己:页面中其他内容全部加载完毕后,他才开始下载并执行 7 一般在html的标签中如果属性和值就是自己,并且只有一个,那么值就可以省略 8 9 10 <script > 11 alert("你是不是傻"); 12 alert("你真傻"); 13 alert("哈哈哈"); 14 </script> 15 <script async="async" src="24cs.js">//异步一般放到一个空标签中,如果标签里面写东西,显示不出来 16 //alert("你是不是傻"); 17 //alert("你真傻"); 18 //alert("哈哈哈"); 19 </script>
交换两个变量的值
1 <script> 2 //交换两个变量的值《必须是数值型的才可以用一下三种方法》 3 //1.第三方变量的方式 4 var num1=10; 5 var num2=20; 6 var temp=num1; //temp 10 7 num1=num2; //num1 20 8 num2=temp; //num2 10 9 console.log(num1,num2); 10 11 //2.使用加减法 12 var num1=10; 13 var num2=20; 14 num1=num1+num2; //num1 30 15 num2=num1-num2; //num2 10 16 num1=num1-num2; //num1 20 17 console.log(num1,num2); 18 19 //3.位运算 异或运算 二进制 不同为1 相同为0 20 var num1=10; //1010 10 21 var num2=20; //10100 20 22 num1=num1^num2; //11110 30 23 num2=num1^num2; // 1010 10 24 num1=num1^num2; //10100 20 25 console.log(num1,num2); 26 </script>
//变量的声明及数据类型
1 <script> 2 //变量名命名的规范:由字母,下划线或者$符号开头,中间包含字母,下划线或者$符号、或者数字; 3 // 变量名要有意义,最好用单词,如果单词不会用拼音,千万不要用简写的方式 4 //变量名都要小写的,如果这个变量名是多个单词组合的,那么第一个单词的第一个字母要小写,后面的单词的第一个字母要大写--驼峰命名法 5 6 //变量声明可以一次性声明多个变量 7 // var num=10,i=10; 8 </script> 9 <script> 10 //JS中的原始数据类型:Number,Boolean,Null,undefined,Object 11 //null类型的值只有一个就是null 12 //undefined类型的值只有一个undefined ---未定义 13 //boolean(bool)布尔类型,值只有两个:true false 1或者0 真或者假 14 //var sex=1;//男 15 // var sex=0;//女 16 17 //什么情况下变量的值为undefined,结果为undefined 18 //如果一个函数没有明确的返回值,接受结果了,也是undefined(讲函数的时候会讲解) 19 var num; 20 console.log(num);//undefined 21 22 var num=null; 23 console.log(num); //null 24 25 26 27 //显示变量的类型用什么? tydeof 两种写法:typeof 变量名,typeof(变量名) 28 var num=10; 29 var str="尤溪"; 30 var flag=false; 31 var def; 32 33 var nul=null;//有疑问? 34 35 var obj=new Object(); 36 37 console.log(typeof num);//number 38 console.log(typeof str);//string 39 console.log(typeof flag);//boolean 40 console.log(typeof def);//undefined 41 42 console.log(typeof (nul));//object 43 console.log(String(nul));//null 44 45 console.log(typeof obj);//object 46 47 //如果想要使用变量,最好先判断这个变量的类型是不是undefined或者这个变量的值是不是null 48 var def; 49 if(typeof (def)=='undefined'||def==null){ 50 console.log("变量没有意义,不能参与运算"); 51 }else{ 52 console.log("可以使用"); 53 } 54 55 console.log(10); //10 56 var num=10; 57 console.log(typeof num); //number 58 59 console.log(undefined+10); //NaN 60 61 // console.log(isNaN(125de));//浏览器报错了 62 63 console.log(isNaN===isNaN);//true 没有意义,千万不要这样写 64 65 66 var num=10; 67 var num2=90.4; 68 console.log(typeof num); //number 69 console.log(typeof num2);//number 70 //如果一个变量的值是 八进制 十进制 十六进制 71 var number=0xc;//0x开头的是十六进制 72 console.log(number);//是以十进制方式输出 73 74 var number=020;//八进制 75 console.log(num1);//以十进制显示 76 77 //不要用小数验证小数 78 var num1=0.1; 79 var num2=0.2; 80 var sum=num1+num2; 81 console.log(sum);//结果不是0.3 结果显示0.30000000000000004 82 83 console.log(Number.MAX_VALUE);//最大值 肯定在比较大小的时候用 结果显示1.7976931348623157e+308 84 console.log(Number.MIN_VALUE);//最小值 结果显示5e-324 85 86 87 //字符串:string类型,可以用单引号也可以用双引号 88 //字符串特性:不可变 89 var str="你好"; 90 str[0]="哦"; 91 console.log(str);//你好 92 str="我好"; 93 console.log(str);//我好 94 95 var str1="你好我好大家好,好好学习,天天向上"; 96 console.log(str1.length);//字符串的长度17 97 98 var str1="真"; 99 var str2="好"; 100 console.log(str1+str2);//真好 +用在两个字符串中间叫拼接也叫连接 101 102 var str1="23"; 103 var str2=10; 104 console.log(str2+str1);//2310 +一个字符串和一个数字也是拼接 105 106 var str1="10"; 107 var str2=15; 108 console.log(str2-str1);//5 如果是减号,那么字符串中是数字会进行运算 109 </script>
其他类型转布尔类型
1 <script> 2 // 布尔类型:true false 3 console.log(Boolean(10));//true 4 console.log(Boolean(1));//true 5 console.log(Boolean(0));//false 6 7 console.log(Boolean("hi"));//true 8 console.log(Boolean(""));//空字符串 false 9 console.log(Boolean(" "));//true 10 11 console.log(Boolean(undefined));//false 12 console.log(Boolean(null));//false 13 14 var obj=new Object();//创建对象 15 console.log(Boolean(obj));//true 16 17 var obj=new Object();//创建对象 18 obj=null; 19 console.log(Boolean(obj));//false 20 </script>
数据类型
1 <script> 2 /*数据类型转换 3 其他类型转数字类型 4 其他类型转字符串类型 5 其他类型转布尔类型*/ 6 //其他类型转数字类型---Number(变量) parseInt(变量) parseFloat(变量) 7 console.log(parseInt("23"));//23 8 console.log(parseInt("23.5"));//23 9 console.log(parseInt("23rf"));//23 10 console.log(parseInt("fe23"));//NaN 11 console.log(parseInt("23.8.9"));//23 12 console.log(parseInt(true));//NaN 13 console.log(parseInt(null));//NaN 14 15 console.log( parseFloat("23"));//23 16 console.log( parseFloat("23.5.6"));//23.5 17 console.log( parseFloat("fd23.5"));//NaN 18 console.log( parseFloat("23.9fdf"));//23.9 19 console.log( parseFloat("000023"));//23 20 21 22 console.log(Number("45"));//45 23 console.log(Number("45.5"));//45.5 24 console.log(Number("045"));//45 25 console.log(Number("45.5.6"));//NaN 26 console.log(Number("45f"));//NaN 27 console.log(Number("f45"));//NaN 28 29 //其他类型转字符串类型 30 var num=10; 31 console.log(num);//10 32 console.log(typeof num.toString());//string 33 34 var num; 35 console.log(num.toString()); 36 console.log(String(num)); 37 38 var num=null; 39 console.log(typeof num.toString()); 40 console.log(typeof String(num)); 41 42 </script>
运算符 2 3 <script> 4 //算术运算符:+ - * / % 5 //算术运算符:首先是一个表达式,有算术运算符连接起来的表达式 6 //一元运算符:++ -- ++num num++ --num num-- 7 //只有一个操作符可以运算 8 //一元运算表达式:有一元运算符连接起来的表达式 9 //三元运算符: ? : 10 11 //复合运算符:+= -= *= /+ %= 12 //比较运算符:> < >= <= == === != !== 13 //比较运算符表达式的结果是布尔类型 14 //逻辑运算符:&&逻辑与 ||逻辑或 !逻辑非 15 //逻辑运算符表达式的结果为布尔型 16 //表达式1&&表达式2---》结果:有一个为false,整个结果为false 17 18 //表达式1||表达式2--->结果:有一个为true,整个结果为true 19 //!表达式1--->结果:如果表达式1为true,则结果为false,否则相反 20 21 var obj=new Object(); 22 var flag=true&&obj; 23 console.log(flag);//Object 24 25 // 后+ num++ 如果参与运算,先计算,计算后再加1 26 // 前+ ++num 如果参与运算,先加1,后计算 27 var num1=10; 28 var num2=++num1 +10; 29 console.log(num2);//21 30 console.log(num1);//11 31 32 33 </script>
分支结构
1 <script> 2 //流程控制:控制代码执行的顺序 3 4 //顺序结构:代码从上到下,从左到右(有时候从右向左)执行 5 //分支语句:if语句 ,if-else语句,if-else if-else if.. else语句,switch-case语句,三元表达式 6 //循环语句:while循环 ,do-while循环,for循环,for-in循环 7 </script>
1 //分支语句:if语句 ,if-else语句,if-else if-else if.. else语句,switch-case语句,三元表达式 2 3 /* 4 * if语句: 5 * 语法: 6 * if(表达式){ 7 * 代码段 8 * } 9 * 执行过程:先判断表达式的结果是true还是false,如果是true则执行里面的代码段,否则不执行大括号里面的代码,直接跳过,直接执行下面的内容 10 * 举例:判断年龄是否大于等于18,如果为真则提示你已经成年了 11 **/ 12 var age=18; 13 if(age>=18){ 14 console.log("你已经成年了"); 15 } 16 17 18 /* 19 * if-else语句: 20 * 语法: 21 * if(表达式){ 22 * 代码1 23 * }else{ 24 * 代码2 25 * } 26 * 执行过程:如果表达式的结果为true则执行代码1,否则执行代码2 27 * 28 * 举例:如果年龄大于等于18,提示你已经成年了。否则提示你未成年 29 * */ 30 var age=45; 31 if(age>=18){ 32 console.log("你应经成年了"); 33 }else{ 34 console.log("你未成年"); 35 } 36 37 38 /* 39 * 三元表达式的语法和执行过程: 40 * 表达式1?表达式2:表达式3; 41 * 举例: 42 * */ 43 var age=19; 44 var result=age>=18?"你成年了":"你未成年"; 45 console.log(result); 46 47 var num1=10; 48 var num2=20; 49 var num3=30; 50 var max=num1>num2?(num1>num3?num1:num3):(num2>num3?num2:num3);//30 51 52 /** 53 * if-else if-else:可以有多个else if 54 * 语法: 55 * if(表达式1){ 56 * 代码1 57 * }else if(表达式2){ 58 * 代码2 59 * }else if(表达式3){ 60 * 代码3 61 * }else{ 62 * 代码4 63 * } 64 * 执行过程:判断表达式1的结果,如果为true则执行代码1,否则执行表达式2,如果为true则执行代码代码2,否则执行表达式3,如果为true,则执行代码3,否则执行代码4 65 * 例子: 66 *获取数学成绩,如果成绩大于90分小于100分则提示您的级别为A 67 * 如果成绩在80-90(包含)之间则提示级别为B 68 * 如果成绩在70-80(包含)之间则提示级别为C 69 * 如果成绩在60-70(包含)之间则提示级别为D 70 * 如果成绩在60以下的(包含)之间则提示级别为E 71 */ 72 var score=50; 73 if(score>90&&score<=100){ 74 console.log("A"); 75 }else if(score>80){ 76 console.log("B"); 77 }else if(score>70){ 78 console.log("C"); 79 }else if(score>60){ 80 console.log("D"); 81 }else{ 82 console.log("E"); 83 } 84 85 //如果有一个分支就用if 86 //如果有两个分支则用if-else 87 //如果有多个分支可以用if-else if语句 88 89 /* 90 * switch-case语句: 91 * switch(表达式){ 92 * case 值1:代码1;break; 93 * case 值2:代码2;break; 94 * case 值3:代码3;break; 95 * case 值4:代码4;break; 96 * default:代码5;break; 97 * } 98 * 99 * 执行过程:获取表达式的值,和值1相比,如果匹配,则执行代码1,遇到break,整个switch-case语句结束,否则对比值2,匹配则执行代码2,以此类推,如果表达式的结果和case后面的值都不匹配则执行代码5 100 * 101 * 注意:switch后面的小括号里的表达式的值在和case后面的值对比的时候使用的是严格模式 102 * switch-case语句中的default可以省略 103 * 104 * 举例:根据级别显示相应的分数 105 * 106 * */ 107 var jiBie="C"; 108 switch (jiBie){ 109 case "A":console.log("90-100之间");break; 110 case "B":console.log("80-90之间");break; 111 case "C":console.log("70-80之间");break; 112 case "D":console.log("60-70之间");break; 113 default:console.log("不及格");break; 114 } 115 //根据时间判断今天的星期 116 var dt=new Date().getDay(); 117 switch (dt){ 118 case 1:console.log("星期一");break; 119 case 2:console.log("星期二");break; 120 case 3:console.log("星期三");break; 121 case 4:console.log("星期四");break; 122 case 5:console.log("星期五");break; 123 case 6:console.log("星期六");break; 124 case 0:console.log("星期日");break; 125 } 126 127 128 var num=31; 129 switch (num){ 130 case 31:console.log("1月份"); 131 case 31:console.log("3月份"); 132 case 31:console.log("5月份");break; 133 case 30:console.log("4月份");break; 134 } 135 </script>
1 //循环:一件事不停的做. 同一行代码不停的执行,执行多次 2 //循环结构: while循环,do-while循环,for循环,for-in循环 3 4 /* 5 * 6 * while循环 7 * 8 * 语法: 9 * 10 * var i=0;//计数器--记录循环的次数 11 * while(表达式){ 12 * 循环体---代码 13 * i++; 14 * } 15 * 执行过程: 16 * 先判断表达式是否成立,不成立则直接跳过循环 17 * 如果成立,则执行循环体,然后i++,之后回到表达式,继续判断表达式是否成立,如果成立则继续循环,否则跳出循环 18 */
1 /* 2 * while循环: 3 * var i=0; 4 * while(判断条件){ 5 * 代码; 6 * i++; 7 * } 8 * while循环特点:先判断,后执行,有可能一次循环都不执行 9 * 10 * 11 * do-while循环 12 * 语法: 13 * do{ 14 * 代码 15 * }while(表达式); 16 * 执行过程:先执行一次代码,再判断条件是否成立,不成立则跳出循环,成立则继续执行 17 * 特点:先执行一次代码,后判断,至少执行一次代码 18 * */ 19 //举例:账号和密码 20 var userName=""; 21 var userPwd=""; 22 do{ 23 userName=prompt("请输入你的账号:"); 24 userPwd=prompt("请输入你的密码:"); 25 }while(userName!="admin"||userPwd!="123456"); 26 console.log("登陆成功了");
break和continue
1 <script> 2 //break:跳出当前循环 3 //continue:继续下一个循环 4 //求100-200之间第一个能被7整除的数 5 var i=100; 6 while(i<=200){ 7 if(i%7==0){ 8 console.log(i);//显示能被7整除的数 9 break;//跳出当前循环 10 } 11 i++; 12 } 13 14 //求1-100之间所有的奇数的和---请您使用continue 15 var i=1; 16 var sum=0; 17 while(i<100){ 18 if(i%2!=0){ 19 sum+=i; 20 i++; 21 continue;//在循环遇到了continue,那么后面的代码不执行,直接跳到循环的条件的那个位置继续下一次循环 22 } 23 i++; 24 } 25 console.log(sum); 26 </script>