js第一周复习 1输出方式; console.log(); document.write(); alert(); 2 变量和常量: 变量:var 变量名=值; 常量: const 常量名=值;一旦创建不允许修改 3算术运算符:+ -* / % 4数据类型: 1原始/基本/值类型:string,Number,Boolean,Undefined,Null 2引用/对象(属性和方法)类型:11种 如 Array/Function 5数据类型的转换 1隐式转换 算数运算带有隐式转换:默认转为数字,然后运算 2特殊:+ 运算,如果碰到字符串,变成了拼接 3- * /% 可以把纯数字字符串转化为数字 在计算 但凡有一个非数字 则为NAN 4true-1 false-0 undefined-NaN Null-0 5NAN不是一个数字,但是是数字类型 1全是缺点 参与任何算术运算都为NAN 2参与任何比较都为false,自己都不认识自己 3解决 !isNAN(XX) true-xx为数字 false-xx为NAN 2显示转化:强制转换 隐式转换不满足的时候用 1转字符串:var str=x.toString(); x 不能为undefined和null,不支持. 一般不用 页面上获取都为字符串 2转数字:var num=parseInt/Float(str); 专门把字符串转化为数字使用的 parseInt不认识小数点 parseFloat认识第一个小数点 如果一来就不认识就为NAN 3Nunber(x);x可以是万能的 还不如 *1 /1 -0
6函数;方法;需要预定义的,可也反复使用的代码段-要么用户触发一次执行一次,要么就是程序员调用一次执行一次 1、创建: function 函数名(形参,...){ 函数体; }2、调用: 1、程序员在JS里面调好:函数名(实参,...);
2、绑定在页面元素上:<any on事件名="函数名()"> - HTML(内容)和CSS(样式)和JS(行为)要分离 7 1比较运算符:> < >= <= == != 2逻辑运算符:&& || ! 3结果都是布尔值,
8分支结构:根据条件不同走不通的路. 1if(条件){ 操作 } 2if(条件){ 操作 }else{默认操作} 3if(条件){ 操作 }else if(条件){操作} else{默认操作} 9循环结构:会根据条件的满足情况,满足就一直操作 ,直到不满足停下 1、var i=0; while(i<10){ console.log(i); i++; }
2、for(var i=0;i<10;i++){ console.log(i); }
3、死循环: while(true){} for(;;){}
4、循环流程控制语句:退出循环:break; 10数组:一个变量可以保存多个数据,以后也可以拿出来使用 1、创建: 直接量:var arr=[1,2,3,4]; 构造函数:var arr=new Array(1,2,3,4);
2、使用 访问:arr[i] 添加:arr[i]=新值;//i处已经有人了,则为替换 3数组三大不限制: 1、不限制长度 2、不限制类型 3、不限制下标越界
4、数组的属性:arr.length - 得到长度 1、缩容:arr.length-=n; 2、向末尾添加元素:arr[arr.length]=新值; 3、获取倒数第n个元素:arr[arr.length-n];
5、遍历数组: for(var i=0;i<arr.length;i++){ arr[i];//当前次元素 } 11、DOM:树根是document,不需要我们程序员创建,直接可用,一个页面只有一个document 1、查找元素 1、通过HTML的特点 ID:var elem=document.getElementById("id值"); - 单个元素,没找到为null 标签/class名:var elems=document/parent.getElementsByTag/ClassName("标签/class名"); - 集合,没找到为空集合
2通过节点之间的关系: 父:elem.parentNode; 子:elem.children; - 集合,没找到为空集合 第一个元素儿子:elem.firstElementChild; 最后一个元素儿子:elem.lastElementChild; 前一个元素兄弟:elem.previousElementSibling; 后一个元素兄弟:elem.nextElementSibling; 单个元素可以直接做操作,但是集合不行: 1、要么加下标拿到某一个 2、要么遍历拿到每一个
3 操作元素: 1、内容:innerHTML/innerText/value(转为input准备的) 获取:elem.xxxx 设置:elem.xxxx="新内容" 2、属性: 获取:elem.getAttribute("属性名")简化:elem.属性名 设置:elem.setAttribute("属性名","属性值")简化:elem.属性名="属性值"
简化版有两个小缺陷:1、自定义属性不能操作 2、class必须写为className
建议:优先使用简化版,简化版做不到的操作在用复杂版代替
3样式;js操作 现在学的是内联样式
获取: elem.style.css属性名;
设置: elem.style.css属性名=“css属性值”;
特殊:css属性名有横线的改为小驼峰
获取是为了判断
设置是为了修改
4绑定事件 1单个元素 :elem.onclick=function(){
}
2多个元素:for(var i=0;i<elems.length;i++){
elems[i].onclick=function(){
}
}
3关键字this在1中是指这个元素
在2中指当前触发事件的元素