1.js是啥:js是一个由js引擎进行翻译的面向对象的翻译型脚本语言;特点是由上到下依次翻译运行,遇到错误会停止。 2.变量和常量 变量就是用来保存动态数据的值 语法 var+变量名 常量是一个固定值,创造了以后值不会改变。 语法是const+常量名; 注意:变量名命名规范不以数字开头,不使用特殊符号,_可以; 3.算数运算符:+ — / * % %取余,常用来判断奇偶;
- 俩个数字直接相加得到的数字;
- 如果和字符串相加,就是拼接效果。
-
数据类型
string "" 颜色是黑色 number 数字 !isNaN() 常用来判断用户恶意输入,是否输入了数字 Boolean 取值有true,fasle undefind 未定义的,通常是声明变量未赋值; null 通常用来清空内存
5,数据类型的转换 1.算数运算符的隐式转换, 1,算数运算+ 俩边都为数字才能计算, 当有一边是字符串则为拼接; 2.当* / - %字符碰到纯数字的字符串也可以转换为数字, 如果有非数字输出NaN; true->1 false->0 undefined->NaN null->0 '100'->100 '100px'->NaN NaN不是一个数字,但是是数字类型,参与运算都会得到NaN; 2.强制转换 var str=parseInt/Float(str);取整,取到小数点后面 var str=Number(); 6.函数的定义 一段代码段,可重复执行; 创建函数, function 函数名(形参...){} 调用函数 函数名(实参...)
7.分支结构 根据条件进行判断决定执行哪段代码;
条件判断
1.比较符 == > < != (判断是俩个== 赋值是一个=)
返回结果:true false
2.逻辑运算符 &&且都满足返回true; ||或者一个条件满足就返回true;
3.if(){}; if()else{};
8.循环结构:根据条件判断代码执行几次;
while(循环条件)
{ 循环体,循环变量的变化}
通常不知道用户输入几次时,适用于while循环搭配break停止循环
for(var 变量=值;循环条件,循环变量变化){
循环体}
do(循环体)while{条件表达式}
先执行一边循环体,在判断一次
三者区别:1.三个循环多数情况下都可以相互替代作用
2.如果只是用来记次数,跟数字相关的,三者使用基本相同,但是更喜欢用for
3.while和do while可以做更复杂的判断条件,比for循环灵活一些;
4.do while先执行一次再判断 while是先判断再执行;
9.数组:就是一个储存很多数据的储存空间;
9-1.创建 var arr=[数据];
var arr=new Array(数据);
9-2数组下标从0开始
arr[i]
9-3 数组的长度arr.length;
1.向数组末尾添加数据 arr.length=[数据];
2.访问数组第N个:arr[arr.length-N];
3.删除数组数据:arr.length=arr.length-N 删除数组第N个;
4.如果索引号里面的数组元素有,会替换原来元素; 不能直接给数组名赋值,否则会覆盖所有的数据
遍历数组
for(var i =0;i<arr.length;i++){}
拿到数组每一个;注意是小于数组的长度,因为数组角标从0开始;
注意俩者比较的时候,可以赋值一个变量等于arr[0],后面循环开启的时候就是var i=1; 因为不用自己和自己比;
*DOM操作 document object model:文档对象模型,专门用来操作HTML(css)文档的;
1.树根 document JS会自动创建,每个元素/对象/节点都可以通过树根得到;
2.*查找元素
通过id名获取
var arr=document.getElementById("")
通过标签名获取
var arr=document/已经找到的父元素.getElementByTagName/ClassName("")
注意:1.找到的是一个类数组的集合,没找到,返回一个空集合;
2.找到的DOM集合是不允许直接操作的,可以遍历每一个元素或者下标找到某一个元素;
3、不一定要从document上找,可以通过找到的某一个父元素,可以只找这个父元素下面的元素;
还有可以通过关系查找;
父亲:elem.parentNode(返回的是一个值)
儿子:elem.children(返回的是一个集合,很多儿子)
第一个儿子:elem.firstElementChild;
最后一个儿子:elem.lastElementChild;
上一个兄弟:elem.previousElementSibling;
下一个兄弟:elem.nextElementSibling;
3.**操作元素
操作元素之前需要先找到这个元素,我们才可以操作元素的属性,内容,样式;
1.先看看属性
得到属性:elem.getAttribute("属性名");(目前学到用来得到自定义属性时,得到选项卡显示内容b绑定时,可以先自定义点击事件a,然后拿到赋值给显示内容b的下标)
设置/修改属性:elem.setAttribute("属性名","属性值");
太麻烦了 omg
简化版
获取: elem.属性名;(获取不到自定义名)
修改: elem.属性名="属性名";
2.操作一下内容
获取:elem.innerHTML/innerText/Value(为input准备的);
设置:elem.innerHTML/innerText/value="新内容"
3.操作一下样式
获取:elem.style.css属性名;
设置:elem.style.css属性名="css属性值";
特殊:1.内联样式,不会牵一发动全身,优先级最高
2.css属性名:如果属性名带横线的要驼峰命名法;
3,获取时,只能获取到内联样式,获取不到样式表
4.添加class名是要写className;2015年后 改版;
绑定事件 在js绑定事件 elem.on事件名=function(){要做的操作} 要做的操作 this关键字:目前只能在这个事件中使用,是一个指针,不同的场景,指向不同; 计算器中的拓展知识点 eval(str) ex: elem.innerHTML=eval(elem.innerHTML);