第一天:

在第一天接触js,主要学习了:

1.什么是JavaScript:是一门运行在客户端的脚本语言;

特点:弱类型,解释性,面向对象编程的语言;

弱类型:是由数据来决定数据类型;

强类型:先规定是什么数据类型 ,再放入指定的数据;

2.JavaScript的引入方式:

1. 内部:在body标签中 写上<script> 里面写上js代码 </script>;

2. 外部:在外面新建一个js文件,<script  src="js文件路径"> 里面不能再写任何js代码 </script>

3.js的三种输出方式和注释语句:

1.控制台输出:consolelog.(输出内容);                  最好用

2.弹出框:alert(输出内容);                                    会卡住页面 ,不推荐

3.document.write(输出内容);                                    绑定在某个元素上会替换页面,不推荐

4.注释语句://这是单行注释;

             /*

多行注释

                    */

4.变量和常量:

一:变量

1.变量是一个内存,在js运行时,在内存中创建出来。

2.变量语法:var 变量名(自取,关键字不行)=值;

"="号在js中是赋值的意思,"=="才是判断是否相等

                        列如:var count=10; var str="嫖哥";

                         中间可用,隔开创建多个变量;

3.声明了变量没赋值,则结果是undefined;未声明调用则报错;变量起名要见名知意。

二:常量

               1.语法:const 常量名=值;列如:const  pai=3.1415926;

                          特点:一旦声明并赋值,则不可更改。

5.算数运算符

1.取值:+  -  *  /   %;   //%在js中是取余的意思,即两数相除,取被除数的余数。

2.取余的作用:1.判断奇偶性:num%2==num是一个奇数;否则是偶数2.获取某个数值后面的数

3.运算符具有隐式装换:即两边有字符串会装换为数值,

4.+运算如果两边有字符串,则会变成字符串的拼接。其他运算如果字符串不是纯数值,则结果是nan。

6.js中的数据类型

1.原始类型:string (字符串) number(数值)  boolean(布尔值) undefined(默认值,未定义的) null(空);

2.对象类型:11个,暂时不学;

 

扩展:1.计算机舍入误差:num. tofixed(n),n是保留小数位数;

   2.if分支结构:只会选择一条路走;if(条件){  操作  }else{  操作 };

 

第二天

               数据类型转换:不同数据类型会根据参与运算进行转换

                       number+number=number;

                       string+number=string;

                       console. log(   typeof())   ;可查看当前数据是什么类型。

1.隐式转换:

1.   -  *  /  %  都会将字符串转换为数字再运算,但必须是纯数字,否则是NaN;

2.  +  运算只能两边是数字才是运算,否则是字符串的拼接;

3.  true和false 参与运算:true是1;false是0;

4. 判断输入是否是一个数字:!isNaN();

2.显示转换:

1.转字符串:var num=值, num.tostring();num 不能是  undefined  和  null  类型;(一般很少用)。

2.转数字:

1.转整数型: parseInt(值)同样:值只能是  str  和  num ;

原理:从左到右,读取字符。非数字时停止,不认识小数点,第一个就不认识,则转为NaN;

2.转浮点型:parseFloat(值)值只能是  str  和  num ;

原理同上:但认识小数点

3.函数:即方法

1.创建函数:

通过关键字:function   函数名(){  代码串   };

2.调用函数:

函数名()

3.创建带有参数的函数:

function  函数名 ( 形参1,形参1,...)  {  代码串 }

形参是一个变量,没 var 声明

调用函数时,传入实参,实参即形参的值。传入的实参必须和形参 一 一对应。

4.比较运算符:>  <  ==  >=  <=  ===(全等于)  !=(不等于)

判断运算符的结果只有两种:true  false

5.逻辑运算符:&&  ||  !

&&:全部条件满足,则为  true。其他为  false、

||:只要一个条件满足,则为  true,都不满足为  false

!:颠倒布尔值。

 

 

第三天

循环三要素:循环变量,循环条件,循环操作 ( 即循环体 )。

循环是反复执行相同的操作;

1.while 循环

1.语法:var  i =0; while( 循环条件){    循环体;  变量的改变; }

 原理:先判断循环条件,结果为true,执行循环,变量改变,再判断循环条件。直到判断条件为false,退出循环。

2.循环控制语句:

允许条件结束之前推出循环:语法:break;但只能放在循环中使用;

3.死循环:while(true){

                                               循环体         }

2.for 循环

1.  语法:for(循环变量(表达式1);循环条件(表达式2);变量增量(表达式3)){      循环体       }

2.  for 死循环:for(;;){    循环体    }

3.  表达式  1  和  3  可写多个,表达式 2 只能写 1 个

 3.数组:将多个数据统一保存起来

1.数组下标:从0开始到数组元素最大值 -1

 2.创建数组:

1.直接量方法:var array=[  元素1,元素2,元素3,...  ];

2.构造函数法:var array= new array(元素1,元素2,元素3,... );

3.访问数组:数组名[ 元素下标 ];

4.追加元素:数组名[ i下标]=新元素

5.数组属性:length

语法:数组名 .  length:获取数组的长度

6.循环遍历数组:for(var i= 0;i<数组名.length;i++){       数组名[ i ]    }

 

第四天(Dom)

1.获取元素:

1.通过id获取:var  elms= document /parent. getElementById( " id值 " );//返回的是一个对象,没找到对象返回的是  null

2.通过标签名获取:var  elms= document . getElementsByTagName( " 标签名 " );//返回的是一个伪数组集合   没找到对象返回的是一个空数组集合

集合是不可以自接用来操作的,要么通过下标拿到单个Dom对象;要么通过遍历数组拿到所用的对象

document可以改为某个确定的父元素:parent

3. html5新增: var elms= document . queryselector("选择器")列如:.max   .box  #nav

4.class名获取:var  elms= document . getElementsByClassName( " 类名值 " );

5.通过元素的关系来获取元素:详情见笔记

2.操作元素:

1.操作元素的内容

获取元素的内容:语法:elm. innerHTML;//一般用于判断条件

修改元素内容:语法:elms. innerHTML="新内容";

elms. innerText属性和上面差不多:区别是innerHTML能识别标签,但innerText只能识别纯文本,两者都只有双标签使用。

value:专门为单标签input准备的;

2.操作元素的属性

获取元素属性值:语法:elms . getAttribute( "属性名" );//一般用于判断条件

修改元素的属性值:语法:elms. setAttribute( "属性名","属性值" );

简化版操作: elms.  属性名;

elms.  属性名=  " 属性值 ";

简化版操作缺点:1.自定义属性不能操作;

                             2. class必须写为className;

3.操作元素的样式:该方法操作的是内联样式(优先级高,且不容易牵一发动全身)

获取元素的样式:语法:elms.  style.css属性名;//一般用于判断条件

操作元素的样式:语法:elms.  style.css属性名=“css属性值”;

特殊:css中的 — 线换成驼峰命名法:列如:border-top改成borderTop;

4.绑定事件新方法:

elms.  onclick=function(){   }

触发事件关键字:this        //当绑定了多个元素,触发的是当前点击的元素,