js第一天
变量常量,用于保存数据。可以用于后面使用 var 变量顾名思义就是可以改变的常量 例如 var i=1, i=2; 数值就会改为2 cont(const) 而const在赋予数值后就不再改变了,类似于我们现实中的π是目前公认的固定数值
算数运算符:就是我们数学常见的加减法
+ - * %(取余) 不同的是%的意思是n/x=y一般为我们设置的数值除以一个数剩余了几
数据类型的转换 隐式转换: 算数转换:默认转为数字,再进行运算
如果是字符串% - *会把字符串转为数字再运算,
如果是+那么会把内容拼接在一起
强制转换:
- parseInt Float(str/num) Number(x) 同隐式转换的效果一样,你啥好用的
函数 创建好可以反复使用 创建 function 函数名(形参...){函数体}
调用
函数(实参...)
elem.onclick=function(){函数名(实参)}
<elem onclick="函数名(实参...)"> </elem>
分支结构如果否则 if() if(){}else{} if(){}else if(){}else{}
循环:反复的执行,一次次的执行的,速度很快如果比较短看不见的
普通循环 这个普通循环一般不用for简单点 var i=0 while(i<0...){循环体,i++;}
普通的循环平常用这个for(var i=0;i<10;i++){循环体}
死循环:会无限循环需要使用break停止循环
while(ture/1){}死循环一般使用这个
for(;;){}死循环一般不用这个如果用()必须有两个分号
数组:一个内存空间保存多个数据 创建:var arr[元素..]
访问方式 arr【】 追加:arr【】=新元素; arr.length-=n;
length的使用小技巧
arr【arr.length-n】 arr【arr.length】=新元素; arr.length=n;
遍历数组:可以将数组中的所有数组给取出来执行相同 或 想似的操作 () 通常搭配上循环来使用 for(var i=0;i<数组.length;i++){数组【】}
DOM:Document Object Model - 专门操作网页文档
DOM树:把HTML看做了一个倒挂的树状结构,每一个元素、文本、属性、注释等等都会被视为一个DOM节点/元素/对象
树根:document对象(属性和方法),不需要我们自己创建,浏览器的js解释器负责创建,一个页面仅有一个
获取元素: 通过 HTML 特性: id:var elem=document.getElementById("id值"); 没找到返回是一个null class/标签名:var elems=document/parent.getElementsByClassName("class"); var elems=document/parent.getElementsByTagName("class"); 没找到返回是一个空集合【】
- 强调:1、集合不能直接用于操作 - 要么加下标获取某个,要么循环遍历获取所有 2、parent - 你已经提前找到的某个父亲*
通过 关系 : 父:xx.parentNode - 单个元素 子:xx.children - 集合 第一个儿子:xx.firstElementChild; - 单个元素 最后一个儿子:xx.lastElementChild; - 单个元素 前一个兄弟:xx.previousElementSibling; - 单个元素 后一个兄弟:xx.nextElementSibling; - 单个元素
操作元素: 内容:innerHTML(能够识别标签)/innerText(只能识别纯文本) - 获取和设置双标签的内容 * value - 获取和设置input的内容的
-
属性: getAttribute("属性名")/setAttribute("属性名","属性值") - 复杂,但是无敌
-
简化版:elem.属性名; elem.属性名="属性值"; 注意:1、class需要写为className 2、自定义属性不能操作,只能操作标属性* -
样式:操作内联样式 elem.style.css属性名; elem.style.css属性名="css属性值";
-
css属性名的写法,在js里需要换做驼峰命名法: border-top-width borderTopWidth
绑定事件的新方式: xx.onclick=function(){ this->xx; } * for(var i=0;i<arr.length;i++){ arr[i].onclick=function(){ this->当前触发的元素 } }