js中的一些简单问题

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页面中引入即可
 异步:多个人做多件事
同步:一个人有顺序的做多件事 script标签中有两个属性:async defer 都输异步
async属性的值就是自己:页面加载时就开始下载那个文件,下载完毕后立刻执行
defer属性的值就是自己:页面中其他内容全部加载完毕后,他才开始下载并执行
一般在html的标签中如果属性和值就是自己,并且只有一个,那么值就可以省略 <script >
alert("你是不是傻");
alert("你真傻");
alert("哈哈哈");
</script>
<script async="async" src="24cs.js">//异步一般放到一个空标签中,如果标签里面写东西,显示不出来
//alert("你是不是傻");
//alert("你真傻");
//alert("哈哈哈");
</script>
交换两个变量的值
1 <script>
//交换两个变量的值《必须是数值型的才可以用一下三种方法》
//1.第三方变量的方式
var num1=10;
var num2=20;
var temp=num1; //temp 10
num1=num2; //num1 20
num2=temp; //num2 10
console.log(num1,num2); //2.使用加减法
var num1=10;
var num2=20;
num1=num1+num2; //num1 30
num2=num1-num2; //num2 10
num1=num1-num2; //num1 20
console.log(num1,num2); //3.位运算 异或运算 二进制 不同为1 相同为0
var num1=10; //1010 10
var num2=20; //10100 20
num1=num1^num2; //11110 30
num2=num1^num2; // 1010 10
num1=num1^num2; //10100 20
console.log(num1,num2);
</script>
//变量的声明及数据类型
1 <script>
//变量名命名的规范:由字母,下划线或者$符号开头,中间包含字母,下划线或者$符号、或者数字;
// 变量名要有意义,最好用单词,如果单词不会用拼音,千万不要用简写的方式
//变量名都要小写的,如果这个变量名是多个单词组合的,那么第一个单词的第一个字母要小写,后面的单词的第一个字母要大写--驼峰命名法 //变量声明可以一次性声明多个变量
// var num=10,i=10;
</script>
<script>
//JS中的原始数据类型:Number,Boolean,Null,undefined,Object
//null类型的值只有一个就是null
//undefined类型的值只有一个undefined ---未定义
//boolean(bool)布尔类型,值只有两个:true false 1或者0 真或者假
//var sex=1;//男
// var sex=0;//女 //什么情况下变量的值为undefined,结果为undefined
//如果一个函数没有明确的返回值,接受结果了,也是undefined(讲函数的时候会讲解)
var num;
console.log(num);//undefined var num=null;
console.log(num); //null //显示变量的类型用什么? tydeof 两种写法:typeof 变量名,typeof(变量名)
var num=10;
var str="尤溪";
var flag=false;
var def; var nul=null;//有疑问? var obj=new Object(); console.log(typeof num);//number
console.log(typeof str);//string
console.log(typeof flag);//boolean
console.log(typeof def);//undefined console.log(typeof (nul));//object
console.log(String(nul));//null console.log(typeof obj);//object //如果想要使用变量,最好先判断这个变量的类型是不是undefined或者这个变量的值是不是null
var def;
if(typeof (def)=='undefined'||def==null){
console.log("变量没有意义,不能参与运算");
}else{
console.log("可以使用");
} console.log(10); //
var num=10;
console.log(typeof num); //number console.log(undefined+10); //NaN // console.log(isNaN(125de));//浏览器报错了 console.log(isNaN===isNaN);//true 没有意义,千万不要这样写 var num=10;
var num2=90.4;
console.log(typeof num); //number
console.log(typeof num2);//number
//如果一个变量的值是 八进制 十进制 十六进制
var number=0xc;//0x开头的是十六进制
console.log(number);//是以十进制方式输出 var number=020;//八进制
console.log(num1);//以十进制显示 //不要用小数验证小数
var num1=0.1;
var num2=0.2;
var sum=num1+num2;
console.log(sum);//结果不是0.3 结果显示0.30000000000000004 console.log(Number.MAX_VALUE);//最大值 肯定在比较大小的时候用 结果显示1.7976931348623157e+308
console.log(Number.MIN_VALUE);//最小值 结果显示5e-324 //字符串:string类型,可以用单引号也可以用双引号
//字符串特性:不可变
var str="你好";
str[0]="哦";
console.log(str);//你好
str="我好";
console.log(str);//我好 var str1="你好我好大家好,好好学习,天天向上";
console.log(str1.length);//字符串的长度17 var str1="真";
var str2="好";
console.log(str1+str2);//真好 +用在两个字符串中间叫拼接也叫连接 var str1="23";
var str2=10;
console.log(str2+str1);//2310 +一个字符串和一个数字也是拼接 var str1="10";
var str2=15;
console.log(str2-str1);//5 如果是减号,那么字符串中是数字会进行运算
</script>
其他类型转布尔类型
1 <script>
// 布尔类型:true false
console.log(Boolean(10));//true
console.log(Boolean(1));//true
console.log(Boolean(0));//false console.log(Boolean("hi"));//true
console.log(Boolean(""));//空字符串 false
console.log(Boolean(" "));//true console.log(Boolean(undefined));//false
console.log(Boolean(null));//false var obj=new Object();//创建对象
console.log(Boolean(obj));//true var obj=new Object();//创建对象
obj=null;
console.log(Boolean(obj));//false
</script>
数据类型
1 <script>
/*数据类型转换
其他类型转数字类型
其他类型转字符串类型
其他类型转布尔类型*/
//其他类型转数字类型---Number(变量) parseInt(变量) parseFloat(变量)
console.log(parseInt("23"));//
console.log(parseInt("23.5"));//
console.log(parseInt("23rf"));//
console.log(parseInt("fe23"));//NaN
console.log(parseInt("23.8.9"));//
console.log(parseInt(true));//NaN
console.log(parseInt(null));//NaN console.log( parseFloat("23"));//
console.log( parseFloat("23.5.6"));//23.5
console.log( parseFloat("fd23.5"));//NaN
console.log( parseFloat("23.9fdf"));//23.9
console.log( parseFloat("000023"));// console.log(Number("45"));//
console.log(Number("45.5"));//45.5
console.log(Number("045"));//
console.log(Number("45.5.6"));//NaN
console.log(Number("45f"));//NaN
console.log(Number("f45"));//NaN //其他类型转字符串类型
var num=10;
console.log(num);//
console.log(typeof num.toString());//string var num;
console.log(num.toString());
console.log(String(num)); var num=null;
console.log(typeof num.toString());
console.log(typeof String(num)); </script>
运算符

 <script>
//算术运算符:+ - * / %
//算术运算符:首先是一个表达式,有算术运算符连接起来的表达式
//一元运算符:++ -- ++num num++ --num num--
//只有一个操作符可以运算
//一元运算表达式:有一元运算符连接起来的表达式
//三元运算符: ? : //复合运算符:+= -= *= /+ %=
//比较运算符:> < >= <= == === != !==
//比较运算符表达式的结果是布尔类型
//逻辑运算符:&&逻辑与 ||逻辑或 !逻辑非
//逻辑运算符表达式的结果为布尔型
//表达式1&&表达式2---》结果:有一个为false,整个结果为false //表达式1||表达式2--->结果:有一个为true,整个结果为true
//!表达式1--->结果:如果表达式1为true,则结果为false,否则相反 var obj=new Object();
var flag=true&&obj;
console.log(flag);//Object // 后+ num++ 如果参与运算,先计算,计算后再加1
// 前+ ++num 如果参与运算,先加1,后计算
var num1=10;
var num2=++num1 +10;
console.log(num2);//
console.log(num1);// </script>
分支结构

1 <script>
//流程控制:控制代码执行的顺序 //顺序结构:代码从上到下,从左到右(有时候从右向左)执行
//分支语句:if语句 ,if-else语句,if-else if-else if.. else语句,switch-case语句,三元表达式
//循环语句:while循环 ,do-while循环,for循环,for-in循环
</script>
  //分支语句:if语句 ,if-else语句,if-else if-else if.. else语句,switch-case语句,三元表达式

     /*
* if语句:
* 语法:
* if(表达式){
* 代码段
* }
* 执行过程:先判断表达式的结果是true还是false,如果是true则执行里面的代码段,否则不执行大括号里面的代码,直接跳过,直接执行下面的内容
* 举例:判断年龄是否大于等于18,如果为真则提示你已经成年了
**/
var age=18;
if(age>=18){
console.log("你已经成年了");
} /*
* if-else语句:
* 语法:
* if(表达式){
* 代码1
* }else{
* 代码2
* }
* 执行过程:如果表达式的结果为true则执行代码1,否则执行代码2
*
* 举例:如果年龄大于等于18,提示你已经成年了。否则提示你未成年
* */
var age=45;
if(age>=18){
console.log("你应经成年了");
}else{
console.log("你未成年");
} /*
* 三元表达式的语法和执行过程:
* 表达式1?表达式2:表达式3;
* 举例:
* */
var age=19;
var result=age>=18?"你成年了":"你未成年";
console.log(result); var num1=10;
var num2=20;
var num3=30;
var max=num1>num2?(num1>num3?num1:num3):(num2>num3?num2:num3);// /**
* if-else if-else:可以有多个else if
* 语法:
* if(表达式1){
* 代码1
* }else if(表达式2){
* 代码2
* }else if(表达式3){
* 代码3
* }else{
* 代码4
* }
* 执行过程:判断表达式1的结果,如果为true则执行代码1,否则执行表达式2,如果为true则执行代码代码2,否则执行表达式3,如果为true,则执行代码3,否则执行代码4
* 例子:
*获取数学成绩,如果成绩大于90分小于100分则提示您的级别为A
* 如果成绩在80-90(包含)之间则提示级别为B
* 如果成绩在70-80(包含)之间则提示级别为C
* 如果成绩在60-70(包含)之间则提示级别为D
* 如果成绩在60以下的(包含)之间则提示级别为E
*/
var score=50;
if(score>90&&score<=100){
console.log("A");
}else if(score>80){
console.log("B");
}else if(score>70){
console.log("C");
}else if(score>60){
console.log("D");
}else{
console.log("E");
} //如果有一个分支就用if
//如果有两个分支则用if-else
//如果有多个分支可以用if-else if语句 /*
* switch-case语句:
* switch(表达式){
* case 值1:代码1;break;
* case 值2:代码2;break;
* case 值3:代码3;break;
* case 值4:代码4;break;
* default:代码5;break;
* }
*
* 执行过程:获取表达式的值,和值1相比,如果匹配,则执行代码1,遇到break,整个switch-case语句结束,否则对比值2,匹配则执行代码2,以此类推,如果表达式的结果和case后面的值都不匹配则执行代码5
*
* 注意:switch后面的小括号里的表达式的值在和case后面的值对比的时候使用的是严格模式
* switch-case语句中的default可以省略
*
* 举例:根据级别显示相应的分数
*
* */
var jiBie="C";
switch (jiBie){
case "A":console.log("90-100之间");break;
case "B":console.log("80-90之间");break;
case "C":console.log("70-80之间");break;
case "D":console.log("60-70之间");break;
default:console.log("不及格");break;
}
//根据时间判断今天的星期
var dt=new Date().getDay();
switch (dt){
case 1:console.log("星期一");break;
case 2:console.log("星期二");break;
case 3:console.log("星期三");break;
case 4:console.log("星期四");break;
case 5:console.log("星期五");break;
case 6:console.log("星期六");break;
case 0:console.log("星期日");break;
} var num=31;
switch (num){
case 31:console.log("1月份");
case 31:console.log("3月份");
case 31:console.log("5月份");break;
case 30:console.log("4月份");break;
}
</script>
 //循环:一件事不停的做. 同一行代码不停的执行,执行多次
//循环结构: while循环,do-while循环,for循环,for-in循环 /*
*
* while循环
*
* 语法:
*
* var i=0;//计数器--记录循环的次数
* while(表达式){
* 循环体---代码
* i++;
* }
* 执行过程:
* 先判断表达式是否成立,不成立则直接跳过循环
* 如果成立,则执行循环体,然后i++,之后回到表达式,继续判断表达式是否成立,如果成立则继续循环,否则跳出循环
*/
 /*
* while循环:
* var i=0;
* while(判断条件){
* 代码;
* i++;
* }
* while循环特点:先判断,后执行,有可能一次循环都不执行
*
*
* do-while循环
* 语法:
* do{
* 代码
* }while(表达式);
* 执行过程:先执行一次代码,再判断条件是否成立,不成立则跳出循环,成立则继续执行
* 特点:先执行一次代码,后判断,至少执行一次代码
* */
//举例:账号和密码
var userName="";
var userPwd="";
do{
userName=prompt("请输入你的账号:");
userPwd=prompt("请输入你的密码:");
}while(userName!="admin"||userPwd!="123456");
console.log("登陆成功了");
break和continue 
1 <script>
//break:跳出当前循环
//continue:继续下一个循环
//求100-200之间第一个能被7整除的数
var i=100;
while(i<=200){
if(i%7==0){
console.log(i);//显示能被7整除的数
break;//跳出当前循环
}
i++;
} //求1-100之间所有的奇数的和---请您使用continue
var i=1;
var sum=0;
while(i<100){
if(i%2!=0){
sum+=i;
i++;
continue;//在循环遇到了continue,那么后面的代码不执行,直接跳到循环的条件的那个位置继续下一次循环
}
i++;
}
console.log(sum);
</script>

 

上一篇:Mac上安装与更新Ruby,Rails运行环境


下一篇:React虚拟DOM具体实现——利用节点json描述还原dom结构