第一天:
在第一天接触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 //当绑定了多个元素,触发的是当前点击的元素,