2018.9.11 JavaScript学习的总结

1.javascript是解释型语言,不要进行编译的语言

  ***编译:一次性把代码转换成cpu看得懂的语言,一行一行的进行执行

  ***解释:一行一行的解析,解析一行执行一行,解释没有编译那么快。

2.js的组成

  ***ECMAScript:js的语法的规范.

  ***DOM:js用来操作网页上的元素的API。

  ***BOM:js操作浏览器的部分功能API。

3.script的属性

  ***<script src="main.js"></script>:用来引入外部的的js便于后续的维护。

  ***<script type="text/javascript"></script>:用来告诉HTML为解释的文档。

  ***<script async="async"></script>:异步,多个人进行做多件事。

  ***<scritp sync="sync"></script>:同步,一个人有序做多件事。就是一步一步来。

  ***<script src="main.js" defer="defer"></script>:外部脚本的文档将会被延迟的进行显示,直到文档全部被解析完成才会去显示和解释执行外部脚本文档,和async还有很大的区别的。

  ********小练习***********

  ***进行交换两个数 的第一种方式:

  var num1=99; var num2=66; 

  var temp=num1;   num1=num2;  num2=temp;    

  console.log(num1);   console.log(num2); ------>输出的为 66 99

  ***第二种方式:

  num1=num1+num2; num2=num1-num2; num1=num1-num2;//注意这种小练习一定要烂熟于心

4.数据类型

  ***基本数据类型: Number  String  Boolean  Undefined Null

  ***复杂数据类型:Object  Array  Date

  ***查看当前的数据类型:typeof name或者 typeof (name)

这里要注意的是,在进行浮点数比较时候,要转换成*10或者*100进行比较,不然很容易就会出现精度问题

  例如:console.log(0.07*100) //这里输出的不是7而是 7.000000000000001

             console.log(0.1+0.2);//这里输出的也不是0.3而是0.30000000000000004

NaN:不是数值

  ***isNaN():就是任何不能转换数值的,进行转换的话就会发这个函数:例如:isNaN("red")//输出的是true

  一个小练习: var num=prompt("请输入一个数"); //会弹出一个输入框,得到您输入的东西进行判断!

                        if(isNaN(num)){ console.log("您输入的不是数值")

                       else{ console.log("您输入的是数值!")}

\t:表示四个空格    \:进行转义      \n:进行换行

字符串是不可变的,一旦创建,值的话就是不能改变了,如果说要往里添加,那么就会在栈中重新开辟一个新的内存空间

举个小栗子:var str="abc";    var str2=str+"123456";

                     console.log(str2);//这里的str2的话是重新开辟了空间的。

  ***  这里要注意的是: var a="abc" ; var b=234;  var c=a+b;//这里做字符串的拼接的话 ,数值会转换为字符串,然后一起作拼接!如果是相减的话就是转化成数值:var d=a-b;//结果为NaN因为abc不是数值。

NaN,unfined,0,null,空字符串,返回值都为false

  undefined:标识变量为赋值,这种类型字面量就一个数值undefined

类型的转换:

  ***转换成字符串:

          第一种方法:

          var age=16; console.log(age.tostring())

          tostring();//默认十进制  tostring(8);//八进制  tostring(16);//十六进制   tostring(2);//二进制

          ***这里要注意啦:null和undefined是没有tostring()方法的

          第二种方法:使用string()函数来进行转换null,undefined

          第三种方法:用字符串进行拼接。

****转换成数值:Number(), parseInt(), paserFloat(),

        Number():可以把任意数值进行转换成数组,如果要转换成字符串中有一个不是熟知的字符就会返回NaN;

      true:返回值为1   false:返回值为0;

下面有个经常遇到的小问题:

  ++a:表示先a++,在进行返回值;      ++a:表示先进行返回,在进行a=a+1;

逻辑运算符: &&有一个为false返回为false

                      || :有一个 为true就返回true

                      !进行取反;

  ***&&:如果两个操作数都不是boolean的类型,且左右两边都是true的话,则返回第二个操作数;如果有一个操作数是false的话那么返回的就是这个操作数的具体的值(注意不是返回false) 同理可得||的用法。

判断语句:switch主要用于多条件的时候把,其他的if比较简单。

  下面是一些小练习:

//进行输出1-100

for(var i=0;i<=100;i++){

console.log(i);

}

//打印1-100的和

var sum=0;

for(var j=0;j<=100;j++){

    sum=sum+j;

}

console.log(sum);

//求1-100之间所有的偶数和,所有的奇数的和

var oddSum=0;

//偶数和

var evenSum=0;

for(var i=1;i<=100;i++)

{

if(evenSum%2==0){

//先判断是否为偶数

evenSum+=i;

}else{

//奇数

oddSum+=i;

}

}

console.log("奇数和为:"+evenSum);

console.log("偶数和为:"+oddSum);

//求1-100 之间所有数的和,平均值

var sum=0,avg; //avg可以不用赋初值

for(var i=0;i<=100;i++){

sum+=i;

}

//求平均数

avg=sum/100;

console.log("1-100的平均数是:"+avg);

//年利率千分之三 5年后获得的本金是多少

var money=10000;//定义本金

var rate=0.003;//定义年利率

for(var i=1;i<=5;i++){

money +=money*rate;

}

console.log("五年后的本金为:"+money);

//这题的思想很重要

//关于兔子问题 这个 问题困扰我好久 规律是这样子的 1,1,2,3,5,8,13,21

var n1=1;

var n2=1;

for( var i=3;i<=12;i++){

//定义一个第三个月的对数

sum=n1+n2;

n1=n2;//往后移动了一位

n2=sum;//同理往后移动一位

}

console.log("第12个月的兔子的对数为:"+sum);


 

//进行打印9*9乘法口诀表

document.write("<table border='1px' cellpadding='0' cellspacing='0'>");

for(var i=1;i<=9;i++){//外循环控制行

document.write("<tr>")

for(var j=1;j<=i;j++){//内循环控制列

document.write("<td>");

document.write(i+"*"+j+"="+i*j);

document.write("</td>");

}

document.write("</tr>")

}

document.write("</table>")

//打印10行10列的正方形

for(var i=1;i<=10;i++){

for(var j=1;j<=10;j++){

document.write("☆");

}

document.write("<br/>");

}

//打印直角三角形

for(var i=1;i<=10;i++){

for(var j=1;j<=i;j++){

document.write("(* ̄︶ ̄)");

}

//进行分行处理

document.write("<br/>");

猜你喜欢

转载自blog.csdn.net/HANGSOME123/article/details/82624092
今日推荐